Управление метками бакета
Метки бакетов — это пары ключ-значение для логической маркировки бакетов.
Примечание
В терминологии Yandex Cloud для логической маркировки ресурсов используется понятие метка (label). Object Storage поддерживает совместимость с Amazon S3 API
Добавить или изменить метки
- В консоли управления
в списке сервисов выберите Object Storage и перейдите в бакет, в котором нужно добавить или изменить меткаи. - На панели слева выберите
Настройки. - Выберите вкладку Основные.
- Нажмите кнопку Добавить метку.
- Введите метку в формате
ключ: значение
. Чтобы изменить существующую метку, введите ее ключ и новое значение. - Нажмите Enter.
- Нажмите кнопку Сохранить.
Важно
В результате изменения настроек бакета существующий набор меток будет полностью перезаписан новым набором меток.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для изменения настроек бакета:
yc storage bucket update --help
-
Получите список бакетов в каталоге по умолчанию:
yc storage bucket list
Результат:
+------------------+----------------------+----------+-----------------------+---------------------+ | NAME | FOLDER ID | MAX SIZE | DEFAULT STORAGE CLASS | CREATED AT | +------------------+----------------------+----------+-----------------------+---------------------+ | my-bucket | b1gmit33ngp3******** | 10 | STANDARD | 2022-12-16 13:58:18 | +------------------+----------------------+----------+-----------------------+---------------------+
-
Добавьте метки, указав имя нужного бакета:
yc storage bucket update <имя_бакета> \ --tags <ключ_метки_1>=<значение_метки_1>,<ключ_метки_2>=<значение_метки_2>,...,<ключ_метки_n>=<значение_метки_n>
Где
--tags
— флаг для перечисления меток бакета в форматеключ=значение
.Результат:
name: my-bucket folder_id: b1gmit33ngp3******** default_storage_class: STANDARD versioning: VERSIONING_ENABLED acl: {} created_at: "2023-04-24T14:15:28.240705Z" tags: - key: key-tag value: key-value
Важно
В результате изменения настроек бакета существующий набор меток будет полностью перезаписан новым набором меток.
Если у вас еще нет интерфейса командной строки AWS CLI, установите и сконфигурируйте его.
В терминале выполните команду:
aws s3api put-bucket-tagging \
--bucket <имя_бакета> \
--tagging 'TagSet=[{Key=<ключ_метки>,Value=<значение_метки>},{Key=<ключ_метки>,Value=<значение_метки>}]' \
--endpoint-url=https://storage.yandexcloud.net
Где:
--bucket
— имя бакета.--tagging
— массив меток бакета, где:Key
— ключ метки, тип:string
.Value
— значение метки, тип:string
.
--endpoint-url
— эндпоинт Object Storage.
Важно
В результате изменения настроек бакета существующий набор меток будет полностью перезаписан новым набором меток.
Примечание
Terraform взаимодействует с Object Storage от имени сервисного аккаунта. Назначьте сервисному аккаунту нужную роль, например storage.admin
, на каталог, в котором будут создаваться ресурсы.
Terraform
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигурации Terraform и добавьте блок
tags
во фрагмент с описанием бакета:resource "yandex_storage_bucket" "test-bucket" { bucket = "<имя_бакета>" ... tags = { <ключ_метки_1> = "<значение_метки_1>" <ключ_метки_2> = "<значение_метки_2>" } ... }
Где
tags
— массив меток бакета в формате<ключ> = "<значение>"
.Более подробную информацию о параметрах ресурса
yandex_storage_bucket
в Terraform, см. в документации провайдера . -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
После этого к бакету будут добавлены метки. Проверить появление меток и настройки бакета можно в консоли управления
yc storage bucket get <имя_бакета> --full
Важно
В результате изменения настроек бакета существующий набор меток будет полностью перезаписан новым набором меток.
Чтобы добавить или изменить метки бакета, воспользуйтесь методом REST API update для ресурса Bucket, вызовом gRPC API BucketService/Update или методом S3 API putBucketTagging.
Пример вызова gRPC API
export IAM_TOKEN="<IAM-токен>"
grpcurl \
-H "Authorization: Bearer $IAM_TOKEN" \
-d '{"name": "test-bucket", "update_mask": {"paths": ["tags"]}, "tags": [{"key": "test-key", "value": "test-value"}]}' \
storage.api.cloud.yandex.net:443 \
yandex.cloud.storage.v1.BucketService/Update
Где:
IAM_TOKEN
— IAM-токен.name
— имя бакета.update_mask
— перечень параметров бакета, которые вы хотите изменить.tags
— перечень меток бакета.key
— ключ метки.value
— значение метки.
Результат:
{
"id": "e3e5fsr6076bo*******",
"description": "update bucket",
"createdAt": "2023-04-27T12:01:03.636597Z",
"createdBy": "ajelcjkv67arb*******",
"modifiedAt": "2023-04-27T12:01:03.636597Z",
"done": true,
"metadata": {"@type":"type.googleapis.com/yandex.cloud.storage.v1.UpdateBucketMetadata","name":"test-bucket"},
"response": {"@type":"type.googleapis.com/yandex.cloud.storage.v1.Bucket","acl":{},"createdAt":"2023-03-27T08:23:26.890770Z","defaultStorageClass":"STANDARD","folderId":"b1gsm0k26v1l2*******","maxSize":"53687091200","name":"test-bucket","tags":[{"key":"test-key","value":"test-value"}],"versioning":"VERSIONING_DISABLED"}
}
Посмотреть метки
- В консоли управления
в списке сервисов выберите Object Storage и перейдите в нужный бакет. - На панели слева выберите
Настройки. - Выберите вкладку Основные.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для получения информации о бакете:
yc storage bucket get --help
-
Получите список бакетов в каталоге по умолчанию:
yc storage bucket list
Результат:
+------------------+----------------------+----------+-----------------------+---------------------+ | NAME | FOLDER ID | MAX SIZE | DEFAULT STORAGE CLASS | CREATED AT | +------------------+----------------------+----------+-----------------------+---------------------+ | my-bucket | b1gmit33ngp3******** | 10 | STANDARD | 2022-12-16 13:58:18 | +------------------+----------------------+----------+-----------------------+---------------------+
-
Получите информацию о метках, указав имя нужного бакета:
yc storage bucket get <имя_бакета> --full
Результат:
name: my-bucket folder_id: b1gmit33ngp3******** default_storage_class: STANDARD ... tags: - key: key-tag value: key-value ...
Если у вас еще нет интерфейса командной строки AWS CLI, установите и сконфигурируйте его.
В терминале выполните команду:
aws s3api get-bucket-tagging \
--bucket <имя_бакета> \
--endpoint-url=https://storage.yandexcloud.net
Где:
--bucket
— имя бакета.--endpoint-url
— эндпоинт Object Storage.
Результат:
{
"TagSet": [
{
"Key": "test-key-1",
"Value": "test-value-1"
},
{
"Key": "test-key-2",
"Value": "test-value-2"
}
]
}
Чтобы посмотреть метки бакета, воспользуйтесь методом REST API get для ресурса Bucket, вызовом gRPC API BucketService/Get или методом S3 API getBucketTagging.
Пример вызова gRPC API
export IAM_TOKEN="<IAM-токен>"
grpcurl \
-H "Authorization: Bearer $IAM_TOKEN" \
-d '{"name": "test-bucket", "view": "VIEW_FULL"}' \
storage.api.cloud.yandex.net:443 \
yandex.cloud.storage.v1.BucketService/Get
Где:
IAM_TOKEN
— IAM-токен.name
— имя бакета.view
— объем предоставляемой информации,VIEW_FULL
— полная информация о бакете.
Результат:
{
"name": "test-bucket",
"folderId": "b1gsm0k26v1l2*******",
"anonymousAccessFlags": {
"read": true,
"list": true,
"configRead": true
},
"defaultStorageClass": "STANDARD",
"versioning": "VERSIONING_DISABLED",
"maxSize": "53687091200",
"acl": {
},
"createdAt": "2023-03-27T08:23:26.890770Z",
"websiteSettings": {
"redirectAllRequests": {
}
},
"tags": [
{
"key": "test-key",
"value": "test-value"
}
]
}
Удалить метки
- В консоли управления
в списке сервисов выберите Object Storage и перейдите в нужный бакет. - На панели слева выберите
Настройки. - Выберите вкладку Основные.
- Напротив нужной метки нажмите значок
. - Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для изменения настроек бакета:
yc storage bucket update --help
-
Получите список бакетов в каталоге по умолчанию:
yc storage bucket list
Результат:
+------------------+----------------------+----------+-----------------------+---------------------+ | NAME | FOLDER ID | MAX SIZE | DEFAULT STORAGE CLASS | CREATED AT | +------------------+----------------------+----------+-----------------------+---------------------+ | my-bucket | b1gmit33ngp3******** | 10 | STANDARD | 2022-12-16 13:58:18 | +------------------+----------------------+----------+-----------------------+---------------------+
-
Удалите метки, указав имя нужного бакета:
yc storage bucket update <имя_бакета> \ --remove-tags
Результат:
name: my-bucket folder_id: b1gmit33ngp3******** default_storage_class: STANDARD versioning: VERSIONING_ENABLED acl: {} created_at: "2023-04-24T14:15:28.240705Z"
Если у вас еще нет интерфейса командной строки AWS CLI, установите и сконфигурируйте его.
В терминале выполните команду:
aws s3api delete-bucket-tagging \
--bucket <имя_бакета> \
--endpoint-url=https://storage.yandexcloud.net
Где:
--bucket
— имя бакета.--endpoint-url
— эндпоинт Object Storage.
Примечание
Terraform взаимодействует с Object Storage от имени сервисного аккаунта. Назначьте сервисному аккаунту нужную роль, например storage.admin
, на каталог, в котором будут создаваться ресурсы.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигурации Terraform и удалите блок
tags
из фрагмента с описанием бакета.Пример описания тегов бакета в конфигурации Terraform
resource "yandex_storage_bucket" "test-bucket" { bucket = "<имя_бакета>" ... tags = { <ключ_метки_1> = "<значение_метки_1>" <ключ_метки_2> = "<значение_метки_2>" } ... }
-
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
После этого метки бакета будут удалены. Проверить удаление меток и настройки бакета можно в консоли управления
yc storage bucket get <имя_бакета> --full
Чтобы удалить метки бакета, воспользуйтесь методом REST API update для ресурса Bucket, вызовом gRPC API BucketService/Update или методом S3 API deleteBucketTagging.
Пример вызова gRPC API
export IAM_TOKEN="<IAM-токен>"
grpcurl \
-H "Authorization: Bearer $IAM_TOKEN" \
-d '{"name": "test-bucket", "update_mask": {"paths": ["tags"]}, "tags": []}' \
storage.api.cloud.yandex.net:443 \
yandex.cloud.storage.v1.BucketService/Update
Где:
IAM_TOKEN
— IAM-токен.name
— имя бакета.update_mask
— перечень параметров бакета, которые вы хотите изменить.tags
— перечень меток бакета.
Результат:
{
"id": "e3epc33apcche*******",
"description": "update bucket",
"createdAt": "2023-04-27T12:18:18.885391Z",
"createdBy": "ajelcjkv67arb*******",
"modifiedAt": "2023-04-27T12:18:18.885391Z",
"done": true,
"metadata": {"@type":"type.googleapis.com/yandex.cloud.storage.v1.UpdateBucketMetadata","name":"test-bucket-777"},
"response": {"@type":"type.googleapis.com/yandex.cloud.storage.v1.Bucket","acl":{},"createdAt":"2023-03-27T08:23:26.890770Z","defaultStorageClass":"STANDARD","folderId":"b1gsm0k26v1l2*******","maxSize":"53687091200","name":"test-bucket-777","versioning":"VERSIONING_DISABLED"}
}