Запретить доступ в бакет с помощью статических ключей
В Object Storage реализовано несколько механизмов для управления доступом к ресурсам. Алгоритм взаимодействия этих механизмов см. в Обзор способов управления доступом в Object Storage.
По умолчанию доступ к бакету можно получить с помощью статических ключей доступа. Вы можете отключить такой способ доступа и оставить только доступ с помощью IAM-токена или анонимно (если опция включена в настройках бакета).
Примечание
После запрета, доступ с помощью статических ключей будет прекращен для всех инструментов, которые их используют: AWS CLI, SDK и сторонние приложения. Также прекратится доступ с помощью эфемерных ключей, временных ключей доступа Security Token Service и подписанных (pre-signed) URL.
Минимально необходимая роль для запрета доступа с помощью статических ключей — storage.admin. См. описание роли.
Чтобы запретить доступ в бакет с помощью статических ключей:
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Посмотрите описание команды CLI для изменения бакета:
yc storage bucket update --help -
Получите список бакетов в каталоге по умолчанию:
yc storage bucket listРезультат:
+------------------+----------------------+-------------+-----------------------+---------------------+ | NAME | FOLDER ID | MAX SIZE | DEFAULT STORAGE CLASS | CREATED AT | +------------------+----------------------+-------------+-----------------------+---------------------+ | first-bucket | b1gmit33ngp6******** | 10737418240 | STANDARD | 2025-11-20 09:45:36 | +------------------+----------------------+-------------+-----------------------+---------------------+ -
Сохраните имя бакета (столбец
NAME), в котором нужно запретить доступ с помощью статических ключей. -
Запретите доступ в бакет с помощью статических ключей:
yc storage bucket update \ --name <имя_бакета> \ --disable-statickey-auth trueГде:
--name— имя бакета, в котором нужно запретить доступ с помощью статических ключей.--disable-statickey-auth— флаг для запрета доступа с помощью статических ключей. Принимает значениеtrueилиfalse.
Результат:
name: first-bucket folder_id: b1gmit33ngp6******** default_storage_class: STANDARD versioning: VERSIONING_DISABLED max_size: "53687091200" acl: {} created_at: "2022-12-16T13:58:18.933814Z" disabled_statickey_auth: true
Чтобы запретить доступ в бакет с помощью статических ключей, воспользуйтесь методом REST API update для ресурса Bucket или вызовом gRPC API BucketService/Update.
Выполните запрос:
curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <IAM-токен>" \
-d '{
"updateMask":"disabledStatickeyAuth",
"disabledStatickeyAuth":true
}' \
"https://storage.api.cloud.yandex.net/storage/v1/buckets/first-bucket"
Где:
<имя_бакета>— имя бакета, в котором нужно запретить доступ с помощью статических ключей.<IAM-токен>— IAM-токен пользователя с рольюstorage.adminна бакет.
Результат:
{
"done": true,
"metadata": {
"@type": "type.googleapis.com/yandex.cloud.storage.v1.UpdateBucketMetadata",
"name": "first-bucket"
},
"response": {
"@type": "type.googleapis.com/yandex.cloud.storage.v1.Bucket",
"acl": {},
"disabledStatickeyAuth": true,
"name": "first-bucket",
"folderId": "b1g07hj5r6i4********",
"defaultStorageClass": "STANDARD",
"versioning": "VERSIONING_DISABLED",
"maxSize": "53687091200",
"createdAt": "2025-11-20T09:45:36.230463Z",
"resourceId": "e3eruofcbqc2********"
},
"id": "e3enqoaug76p********",
"description": "update bucket",
"createdAt": "2025-12-22T20:47:01.424654Z",
"createdBy": "ajeb9l33h6mu********",
"modifiedAt": "2025-12-22T20:47:01.424654Z"
}
Отслеживайте статус операции по полю done.