Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Data Streams
    • Все руководства
    • Ввод данных в системы хранения
    • Умная обработка логов
    • Передача данных в микросервисных архитектурах
    • Сохранение данных в ClickHouse®
    • Репликация логов в Object Storage с помощью Fluent Bit
    • Репликация логов в Object Storage с помощью Data Streams
    • Миграция данных в Yandex Object Storage с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из очереди Data Streams в Managed Service for YDB
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Захват изменений YDB и поставка в YDS
    • Захват изменений PostgreSQL и поставка в YDS
    • Захват изменений MySQL® и поставка в YDS
      • Обзор
      • CLI
      • Terraform
    • Передача событий Yandex Cloud Postbox в Yandex Data Streams и их анализ с помощью Yandex DataLens
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Обработка аудитных логов Audit Trails
    • Обработка потока изменений Debezium
    • Загрузка аудитных логов в MaxPatrol SIEM
    • Поиск событий Yandex Cloud в Yandex Query
  • Управление доступом
  • Правила тарификации
  • Вопросы и ответы

В этой статье:

  • Перед началом работы
  • Необходимые платные ресурсы
  • Подготовьте окружение
  • Сохраните статический ключ доступа в секрет Yandex Lockbox
  • Используйте ключ из секрета Yandex Lockbox для работы с сервисом
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Хранение статического ключа доступа в секрете Yandex Lockbox
  3. CLI

Использование секрета Yandex Lockbox для хранения статического ключа доступа с помощью CLI

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Перед началом работы
    • Необходимые платные ресурсы
  • Подготовьте окружение
  • Сохраните статический ключ доступа в секрет Yandex Lockbox
  • Используйте ключ из секрета Yandex Lockbox для работы с сервисом
  • Как удалить созданные ресурсы

Чтобы использовать статический ключ доступа, сохраненный в секрете Yandex Lockbox, с помощью CLI:

  1. Подготовьте окружение.
  2. Сохраните статический ключ доступа в секрет Yandex Lockbox.
  3. Используйте ключ из секрета Yandex Lockbox для работы с сервисом.

Если созданные ресурсы вам больше не нужны, удалите их.

Перед началом работыПеред началом работы

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки инфраструктуры входят:

  • плата за хранение одной версии секрета Yandex Lockbox (см. тарифы Yandex Lockbox);
  • плата за хранение данных в Object Storage, операции с ними и исходящий трафик (плата не будет взиматься, если в бакете не будут храниться данные, см. тарифы Object Storage).

Подготовьте окружениеПодготовьте окружение

  1. Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

    По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  2. Установите утилиту командной строки AWS CLI.

    Настраивать утилиту на этом этапе не обязательно. Необходимые параметры, такие как идентификаторы и ключи доступа, будут описаны и использованы в командах и переменных окружения далее в этом руководстве.

Сохраните статический ключ доступа в секрет Yandex LockboxСохраните статический ключ доступа в секрет Yandex Lockbox

Yandex Cloud CLI
  1. Создайте сервисный аккаунт, например storage-bucket-sa, от имени которого будут выполняться операции в Object Storage:

    yc iam service-account create storage-bucket-sa
    

    Результат:

    done (1s)
    id: ajeplujf759j********
    folder_id: b1gt6g8ht345********
    created_at: "2024-05-07T19:18:37.244159066Z"
    name: storage-bucket-sa
    

    Сохраните идентификатор (id) созданного сервисного аккаунта, он понадобится при назначении сервисному аккаунту ролей.

    Подробнее о команде yc iam service-account create читайте в справочнике CLI.

  2. Назначьте созданному сервисному аккаунту роль storage.editor на каталог:

    yc resource-manager folder add-access-binding <имя_или_идентификатор_каталога> \
      --role storage.editor \
      --subject serviceAccount:<идентификатор_сервисного_аккаунта>
    

    Где:

    • <имя_или_идентификатор_каталога> — имя или идентификатор каталога, в котором создан сервисный аккаунт.
    • <идентификатор_сервисного_аккаунта> — идентификатор сервисного аккаунта, сохраненный ранее.

    Результат:

    done (2s)
    effective_deltas:
      - action: ADD
        access_binding:
          role_id: storage.editor
          subject:
            id: ajeplujf759j********
            type: serviceAccount
    

    Подробнее о команде yc resource-manager folder add-access-binding читайте в справочнике CLI.

  3. Аналогичным способом назначьте сервисному аккаунту роль lockbox.payloadViewer на каталог:

    yc resource-manager folder add-access-binding <имя_или_идентификатор_каталога> \
      --role lockbox.payloadViewer \
      --subject serviceAccount:<идентификатор_сервисного_аккаунта>
    
  4. Создайте для сервисного аккаунта статический ключ доступа. Для того чтобы не выводить на экран значение ключа, он будет сохранен в переменную STATIC_KEY:

    STATIC_KEY=$(yc iam access-key create --service-account-name storage-bucket-sa)
    

    Подробнее о команде yc iam access-key create читайте в справочнике CLI.

  5. Сохраните значения идентификатора ключа и секретного ключа в отдельные переменные KEY_ID и KEY_VALUE:

    KEY_ID=$(echo | awk '{if (match($0, "key_id: ")) {print substr($0, RSTART + 8, 25)}}' <<< "$STATIC_KEY") \
      && KEY_VALUE=$(echo | awk '{if (match($0, "secret: ")) {print substr($0, RSTART + 8, 40)}}' <<< "$STATIC_KEY")
    
  6. Создайте секрет Yandex Lockbox static-key, содержащий созданный статический ключ доступа:

    yc lockbox secret create \
      --name static-key \
      --payload "[{'key': $KEY_ID, 'text_value': $KEY_VALUE}]" \
      --cloud-id <идентификатор_облака> \
      --folder-id <идентификатор_каталога> \
      --deletion-protection
    

    Где:

    • --cloud-id — идентификатор облака, в котором был создан сервисный аккаунт.
    • --folder-id — идентификатор каталога, в котором был создан сервисный аккаунт.
    • --deletion-protection — защита от удаления секрета. Пока опция включена, удалить секрет невозможно. Необязательный параметр.

    Результат:

    done (1s)
    id: e6qk0c62b4ep********
    folder_id: b1gt6g8ht345********
    created_at: "2024-05-07T20:05:51.569Z"
    name: static-key
    status: ACTIVE
    current_version:
      id: e6qrsj2hi8ug********
      secret_id: e6qk0c62b4ep********
      created_at: "2024-05-07T20:05:51.569Z"
      status: ACTIVE
      payload_entry_keys:
        - YCAJEO4w80Zf5DERM********
    deletion_protection: true
    

    Подробнее о команде yc lockbox secret create читайте в справочнике CLI.

Теперь статический ключ доступа сервисного аккаунта сохранен внутри секрета Yandex Lockbox.

Используйте ключ из секрета Yandex Lockbox для работы с сервисомИспользуйте ключ из секрета Yandex Lockbox для работы с сервисом

Пример ниже разработан для выполнения в операционных системах MacOS и Linux. Чтобы выполнить его в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.

  1. Получите статический ключ доступа, сохраненный в секрете static-key. Для того чтобы не выводить на экран значение ключа, он будет сохранен в переменную SECRET:

    Yandex Cloud CLI
    SECRET=$(yc lockbox payload get static-key)
    

    Подробнее о команде yc lockbox payload get читайте в справочнике CLI.

  2. Сохраните идентификатор ключа, секретный ключ и значение региона размещения в переменные окружения AWS CLI:

    export AWS_ACCESS_KEY_ID=$(echo | awk '{if (match($0, "key: ")) {print substr($0, RSTART + 5, 25)}}' <<< "$SECRET") \
      && export AWS_SECRET_ACCESS_KEY=$(echo | awk '{if (match($0, "text_value: ")) {print substr($0, RSTART + 12, 40)}}' <<< "$SECRET") \
      && export AWS_DEFAULT_REGION="ru-central1"
    

    AWS CLI будет использовать созданные переменные окружения для аутентификации при выполнении операций с ресурсами сервиса.

  3. Создайте бакет в Object Storage, указав в команде уникальное имя бакета:

    AWS CLI
    aws --endpoint-url=https://storage.yandexcloud.net \
      s3 mb s3://<имя_бакета>
    

    Результат:

    make_bucket: my-first-bucket
    

    В результате будет создан новый бакет в Object Storage. При создании бакета используется статический ключ доступа, полученный из секрета Yandex Lockbox и сохраненный в переменные окружения.

    Вы также передать значения идентификатора ключа, секретного ключа и региона размещения непосредственно в каждой команде AWS CLI:

    AWS CLI
    AWS_ACCESS_KEY_ID=$(echo | awk '{if (match($0, "key: ")) {print substr($0, RSTART + 5, 25)}}' <<< "$SECRET") \
      AWS_SECRET_ACCESS_KEY=$(echo | awk '{if (match($0, "text_value: ")) {print substr($0, RSTART + 12, 40)}}' <<< "$SECRET") \
      AWS_DEFAULT_REGION="ru-central1" \
      aws --endpoint-url=https://storage.yandexcloud.net \
      s3 mb s3://<имя_бакета>
    

    Результат:

    make_bucket: my-first-bucket
    

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать использовать созданные ресурсы:

  1. Удалите секрет.
  2. Удалите бакет.

См. такжеСм. также

  • Использование секрета Yandex Lockbox для хранения статического ключа доступа с помощью Terraform

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

Предыдущая
Обзор
Следующая
Terraform
Проект Яндекса
© 2025 ООО «Яндекс.Облако»