Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Cloud Registry
    • Yandex AI Studio
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Video
    • Stackland
    • Yandex Cloud Router
    • Yandex Managed Service for Trino
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Yandex StoreDoc
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Managed Service for YDB
    • Managed Service for Sharded PostgreSQL
    • Managed Service for YTsaurus
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • SpeechKit
    • DataSphere
    • Vision OCR
    • Translate
    • Yandex Neurosupport
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • Cloud Desktop
    • GOST Gateway
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Container Registry
    • Managed Service for GitLab
    • SourceCraft
    • Managed Service for Prometheus®
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Message Queue
    • Serverless Integrations
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Yandex Cloud Trust
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Object Storage
    • Все инструкции
      • Создание бакета
      • Удаление бакета
      • Ограничение максимального размера бакета
      • Шифрование бакета
      • Управление жизненными циклами объектов
      • Управление конфигурацией CORS
      • Настройка прав доступа с помощью IAM
      • Редактирование ACL бакета
      • Управление политикой доступа
      • Настройка публичного доступа к бакету
      • Запретить доступ со статическими ключами
      • Доступ в бакет с помощью Security Token Service
      • Доступ в бакет с помощью эфемерного ключа доступа
      • Доступ в бакет с помощью сервисного подключения из VPC
      • Поиск чувствительных данных в бакете
      • Управление версионированием бакета
      • Включение механизма логирования
      • Управление блокировками версий объектов
      • Управление выгрузкой метаданных объектов
      • Управление метками бакета
      • Получение списка бакетов
      • Получение информации и статистики о бакете
      • Просмотр метрик бакета
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы
  1. Пошаговые инструкции
  2. Бакеты
  3. Доступ в бакет с помощью Security Token Service

Доступ в бакет с помощью Security Token Service

Статья создана
Yandex Cloud
Обновлена 9 июля 2026 г.
Открыть в Markdown

С помощью Security Token Service вы можете получить временные ключи для ограниченного доступа в бакеты Yandex Object Storage.

Временные ключи доступа в качестве способа аутентификации поддерживаются только в сервисе Object Storage.

У вас должны быть следующие минимальные роли:

  • для создания сервисного аккаунта и получения на него ключей доступа — iam.serviceAccounts.admin на каталог. Если вы хотите использовать существующий сервисный аккаунт, достаточно роли iam.serviceAccounts.admin на этот сервисный аккаунт.

  • для назначения сервисному аккаунту нужной роли — storage.admin на бакет или каталог. Альтернативно можно использовать разрешение FULL_CONTROL в ACL бакета.

Если у вас примитивная роль admin на каталог, назначать дополнительно роли не требуется.

Чтобы получить временный ключ доступа:

  1. Создайте сервисный аккаунт. Вы также можете использовать существующий сервисный аккаунт.

  2. Назначьте сервисному аккаунту нужную роль, например storage.viewer на бакет, к которому вы хотите получить доступ с помощью временного ключа, или каталог.

    Примечание

    Назначайте роль на каталог, если хотите с помощью сервисного аккаунта иметь доступ ко всем бакетам в каталоге.

    Выбранная роль должна включать в себя все разрешения, которые вы хотите предоставлять с помощью временных ключей.

    Совет

    Если сервисному аккаунту назначены роли в Object Storage на каталог, то пользователи с временными ключами получат доступ к просмотру бакетов в этом каталоге. Рекомендуем назначать сервисному аккаунту роли на конкретные бакеты, а не на каталог.

    В качестве альтернативы можно использовать разрешения ACL для бакета.

  3. Создайте статический ключ доступа для сервисного аккаунта.

  4. Установите и сконфигурируйте AWS Command Line Interface (AWS CLI).

  5. Опишите конфигурацию политики доступа в виде схемы данных формата JSON.

    Важно

    Одна политика доступа Security Token Service задается только для конкретного бакета. Нельзя использовать один временный ключ сразу для нескольких бакетов.

    Временные ключи Security Token Service наследуют права доступа сервисного аккаунта, но ограничиваются политикой доступа на уровне бакетов. Если задать в политике доступа для временного ключа разрешения на выполнение операций, которые не разрешены для сервисного аккаунта, операции не будут выполнены.

    Пример политики

    Эта политика позволяет пользователю с временным ключом получать объекты из указанного префикса бакета.

    {
      "Version": "2012-10-17",
      "Statement": {
        "Sid": "all",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::<имя_бакета>/<префикс>"
      }
    }
    

    Где:

    • Version — (опционально) версия описания политик доступа, например 2012-10-17.

    • Statement — правила политики доступа:

      • Sid — (опционально) пользовательский идентификатор правила, например: all, Statement Allow, Statement Deny.

      • Effect — запрет или разрешение запрошенного действия, возможные значения: Allow, Deny.

      • Principal — возможное значение: *. Параметр нужен для совместимости с AWS S3 API.

      • Action — действие, которое выполнится при срабатывании политики, например: s3:GetObject, s3:PutObject, *.

      • Resource — ресурс, с которым будет произведено действие, возможные значения:

        • arn:aws:s3:::<имя_бакета> — бакет.
        • arn:aws:s3:::<имя_бакета>/<ключ_объекта> — объект в бакете.
        • arn:aws:s3:::<имя_бакета>/<префикс>* — все объекты в бакете, ключи которых начинаются с префикса, например arn:aws:s3:::samplebucket/some/path/*. Префикс может быть пустым: arn:aws:s3:::samplebucket/* — тогда правило будет относиться ко всем объектам в бакете.

        Ресурс бакета не включает в себя ресурсы всех его объектов. Чтобы правило в политике доступа относилось к бакету и всем объектам, их нужно указать как отдельные ресурсы, например arn:aws:s3:::samplebucket и arn:aws:s3:::samplebucket/*.

      Если при создании временных ключей доступа применить политику доступа без правил, то доступ по временному ключу будет запрещен.

    Сохраните готовую конфигурацию в файле policy.json.

    Важно

    Проверка доступа по ACL объекта происходит после проверки политики Security Token Service. Поэтому если для сервисного аккаунта, через который вы получаете временные ключи доступа, настроены разрешения ACL на объекты в бакете, эти объекты станут доступны для запросов с временным ключом доступа, независимо от указанной политики. Подробнее на схеме взаимодействия механизмов управления доступом в Object Storage.

  6. Получите временный ключ доступа:

    AWS CLI

    Выполните команду:

    aws --endpoint https://sts.yandexcloud.net/ sts assume-role \
      --role-arn <произвольное_описание> \
      --role-session-name <имя_ключа> \
      --duration-seconds <время_жизни_ключа> \
      --policy file://policy.json
    

    Где:

    • --endpoint — эндпоинт Security Token Service.
    • --role-arn — произвольное описание длиной не менее 20 символов. Поддерживаются буквы латинского алфавита, цифры, символы _ и -.
    • --role-session-name — уникальное имя ключа. Поддерживаются буквы латинского алфавита, цифры, символы _ и -.
    • --duration-seconds — время жизни ключа в секундах, не более 43200.
    • --policy file:// — путь к файлу с политикой доступа.

    Подробнее о команде aws sts assume-role читайте в документации AWS.

    Результат:

    {
        "Credentials": {
            "AccessKeyId": "YCAJEkNuezZyt4b**********",
            "SecretAccessKey": "YCMUWwxFAnZ**********...",
            "SessionToken": "s1.9euelZqPjcj**********...",
            "Expiration": "2024-02-29T23:30:53+00:00"
        },
        "AssumedRoleUser": {
            "Arn": "a1234567891234567890/test-2"
        },
        "PackedPolicySize": 0,
        "SourceIdentity": ""
    }
    

    Где:

    • AccessKeyId — идентификатор ключа (совпадает с идентификатором статического ключа).
    • SecretAccessKey — секретный ключ.
    • SessionToken — токен сессии.

    Сохраните эти параметры.

  7. Добавьте полученные параметры временного ключа доступа в переменные окружения для пользователя, которому вы хотите выдать права доступа к бакету:

    export AWS_ACCESS_KEY_ID=<идентификатор_ключа>
    export AWS_SECRET_ACCESS_KEY=<секретный_ключ>
    export AWS_SESSION_TOKEN=<токен_сессии>
    
  8. Чтобы протестировать доступ к бакету, сохраните на клиентское устройство объект из префикса бакета, к которому был открыт доступ:

    AWS CLI
    aws --endpoint https://storage.yandexcloud.net s3 cp \
      s3://<имя_бакета>/<префикс><имя_объекта> ./
    

    Результат:

    download: s3://<имя_бакета>/<префикс><имя_объекта> to ./<имя_объекта>
    

Полезные ссылкиПолезные ссылки

  • Обзор способов управления доступом в Object Storage
  • Доступ к бакету с помощью эфемерного ключа доступа

Была ли статья полезна?

Предыдущая
Запретить доступ со статическими ключами
Следующая
Доступ в бакет с помощью эфемерного ключа доступа
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»