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
    • VibeCraft
    • Yandex Cloud Detection and Response
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • SmartCaptcha
    • 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
    • IoT Core
    • Data Streams
    • Serverless Containers
    • Cloud Notification Service
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Yandex Cloud Quota Manager
    • Cloud Apps
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Lockbox
  • Начало работы
  • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monium
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы

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

  • Создать секрет
  • Получить содержимое секрета
  • Роли, необходимые для получения секрета
  • Получите содержимое секрета
  • Практические сценарии

Начало работы с Yandex Lockbox

Статья создана
Yandex Cloud
Улучшена
Обновлена 2 ноября 2026 г.
Открыть в Markdown
  • Создать секрет
  • Получить содержимое секрета
    • Роли, необходимые для получения секрета
    • Получите содержимое секрета
  • Практические сценарии

Yandex Lockbox хранит пароли, ключи API и токены в зашифрованном виде и позволяет управлять доступом к ним. Приложения могут получать эти данные из сервиса, не сохраняя их в исходном коде.

Секрет хранит данные в виде пар ключ-значение. Например, password — название ключа, а пароль к базе данных — его значение. Данные хранятся в неизменяемых версиях: чтобы обновить пароль или добавить другую пару, создайте новую версию секрета.

В этом учебном примере вы создадите секрет с тестовыми данными и получите его содержимое. Это позволит попробовать Yandex Lockbox без подключения других сервисов и разработки приложения.

Создать секретСоздать секрет

Убедитесь, что вашей учетной записи назначена роль lockbox.editor на каталог, в котором вы создадите секрет.

Чтобы создать секрет:

Консоль управления
CLI
Terraform
API
  1. В консоли управления выберите каталог, в котором будет создан секрет.

  2. Перейдите в сервис Lockbox.

  3. Нажмите кнопку Создать секрет.

  4. В поле Имя введите имя секрета.

  5. (Опционально) Для разделения ресурсов на логические группы добавьте метку.

  6. (Опционально) Включите опцию Запретить удаление секрета. Пока опция включена, удалить секрет невозможно. Не защищает содержимое секрета от изменения.

  7. Выберите Тип секрета:

    • Генерируемый — значение формируется автоматически:

      • В поле Ключ введите неконфиденциальный идентификатор.
      • (Опционально) Разверните блок Параметры автоматической генерации и задайте параметры для конфиденциального значения (например, пароля).
    • Пользовательский — значение задается вручную:

      • В поле Ключ введите неконфиденциальный идентификатор.

      • В поле Значение введите конфиденциальные данные для хранения.

        Чтобы добавить больше данных, нажмите кнопку Добавить ключ/значение и повторите шаги.

  8. (Опционально) В поле Ключ KMS укажите существующий ключ или создайте новый.

    Указанный ключ Yandex Key Management Service используется для шифрования секрета. Если вы не будете указывать ключ, секрет будет зашифрован специальным системным ключом.

    Совет

    Подробнее о преимуществах собственного ключа в разделе Шифрование секретов с помощью Yandex Key Management Service.

  9. Нажмите кнопку Создать.

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

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

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

  1. Посмотрите описание команды CLI для создания секрета:

    yc lockbox secret create --help
    
  2. Выполните команду:

    yc lockbox secret create \
      --name <имя_секрета> \
      --description <описание_секрета> \
      --payload "<массив_с_содержимым_секрета>" \
      --cloud-id <идентификатор_облака> \
      --folder-id <идентификатор_каталога> \
      --deletion-protection
    

    Где:

    • --name — имя секрета. Обязательный параметр.

    • --description — описание секрета. Необязательный параметр.

    • --payload — содержимое секрета в виде массива формата YAML или JSON.

      Вы можете передать одну или несколько пар ключ-значение секрета. Если пар несколько, перечислите их через запятую. Бинарные значения передавайте в кодировке Base64.

      Например, для сохранения ключа username с текстовым значением myusername и ключа avatar с загруженным из файла avatar.jpg значением в бинарном формате можно указать:

      [{'key': 'username', 'text_value': 'myusername'},{'key': 'avatar', 'binary_value': $(base64 -w 0 ./avatar.jpg)}]

    • --cloud-id — идентификатор облака, в котором будет создан секрет.

    • --folder-id — идентификатор каталога, в котором будет создан секрет.

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

    Пример команды для создания секрета:

    yc lockbox secret create \
     --name sample-secret \
     --description sample_secret \
     --payload "[{'key': 'username', 'text_value': 'myusername'},{'key': 'avatar', 'binary_value': $(base64 -w 0 ./avatar.jpg)}]" \
     --cloud-id b1gwa87mbaom******** \
     --folder-id b1qt6g8ht345******** \
     --deletion-protection
    

    В этом примере создается секрет с двумя ключами: один ключ с текстовым значением, другой — со значением в бинарном формате.

    Результат:

    id: e6q6nbjfu9m2********
    folder_id: b1qt6g8ht345********
    created_at: "2023-10-09T16:29:11.402Z"
    ...
       - username
       - avatar
    deletion_protection: true
    

Ресурс yandex_lockbox_secret содержит только метаданные секрета: имя, описание, идентификатор и другие параметры. Чтобы сохранить содержимое, после создания секрета создайте его версию.

Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.

Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.

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

    resource "yandex_lockbox_secret" "my_secret" {
      name                = "<имя_секрета>"
      description         = "<описание_секрета>"
      folder_id           = "<идентификатор_каталога>"
      kms_key_id          = "<идентификатор_ключа_шифрования>"
      deletion_protection = <флаг_защиты_от_удаления>
      labels              = {
        <ключ_метки_1> = "<значение_метки_1>",
        <ключ_метки_2> = "<значение_метки_2>"
      }
    }
    

    Где:

    • name — имя секрета. Обязательный параметр.
    • description — описание секрета. Необязательный параметр.
    • folder_id — идентификатор каталога, в котором будет создан секрет. Необязательный параметр.
    • kms_key_id — идентификатор ключа шифрования Key Management Service. Указанный ключ Key Management Service используется для шифрования секрета. Если не указывать ключ Key Management Service, секрет будет зашифрован специальным системным ключом. Необязательный параметр.
    • deletion_protection — флаг защиты от удаления. Для включения защиты укажите значение true. Для отключения защиты — false. Значение по умолчанию false. Необязательный параметр.
    • labels — метка ресурса в формате <ключ>:"<значение>". Необязательный параметр.

    Подробнее о параметрах ресурса yandex_lockbox_secret в документации провайдера.

  2. Создайте ресурсы:

    1. В терминале перейдите в директорию с конфигурационным файлом.

    2. Проверьте корректность конфигурации с помощью команды:

      terraform validate
      

      Если конфигурация является корректной, появится сообщение:

      Success! The configuration is valid.
      
    3. Выполните команду:

      terraform plan
      

      В терминале будет выведен список планируемых изменений: ресурсы и/или выходные переменные. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

    4. Примените изменения конфигурации:

      terraform apply
      
    5. Подтвердите изменения: введите в терминале слово yes и нажмите Enter.

После этого в указанном каталоге будет создан секрет. Проверить появление секрета и его настройки можно в консоли управления или с помощью команды CLI:

yc lockbox secret get <имя_секрета>

Чтобы создать секрет, воспользуйтесь методом REST API create для ресурса Secret или вызовом gRPC API SecretService/Create.

Получить содержимое секретаПолучить содержимое секрета

Роли, необходимые для получения секретаРоли, необходимые для получения секрета

Для получения содержимого секрета пользователю или сервисному аккаунту нужна роль lockbox.payloadViewer на этот секрет. Подробнее в инструкции Настроить права доступа к секрету.

Если секрет зашифрован вашим ключом KMS, дополнительно нужна роль kms.keys.encrypterDecrypter на ключ шифрования. Подробнее в инструкции Настроить права доступа к ключу.

Получите содержимое секретаПолучите содержимое секрета

Консоль управления
CLI
API
  1. В консоли управления выберите каталог, которому принадлежит секрет.
  2. Перейдите в сервис Lockbox.
  3. В меню слева выберите Секреты.
  4. Нажмите на имя нужного секрета.
  5. В разделе Версии нажмите на нужную версию секрета.

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

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

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

  1. Посмотрите описание команды CLI для получения содержимого секрета:

    yc lockbox payload get --help
    
  2. Получите идентификатор секрета (столбец ID в выводе команды):

    yc lockbox secret list
    

    Результат:

    +----------------------+-------------+------------+---------------------+----------------------+--------+
    |          ID          |    NAME     | KMS KEY ID |     CREATED AT      |  CURRENT VERSION ID  | STATUS |
    +----------------------+-------------+------------+---------------------+----------------------+--------+
    | e6qetpqfe8vvag9h7jkr | test-secret |            | 2023-12-06 15:12:13 | e6qdnt9t2qsdggusve4g | ACTIVE |
    +----------------------+-------------+------------+---------------------+----------------------+--------+
    
  3. Выполните команду:

    yc lockbox payload get \
      --id <идентификатор_секрета> \
      --key <ключ_секрета> \
      --version-id <идентификатор_версии_секрета>
    

    Где:

    • --id — идентификатор секрета. Обязательный параметр.
    • --key — ключ содержимого секрета для получения единственного значения. Необязательный параметр.
    • --version-id — идентификатор версии секрета. Необязательный параметр. По умолчанию используется текущая версия секрета.

    Пример команды для получения содержимого секрета:

    yc lockbox payload get \
      --id e6qetpqfe8vv******** \
      --version-id e6qqr7k79ecm********
    

    В этом примере возвращается содержимое секрета версии e6qqr7k79ecm********.

    Результат:

    version_id: e6qqr7k79ecm********
    entries:
      - key: first_key
        text_value: value_1
      - key: second_key
        text_value: value_2
    

    Если в качестве конфиденциального значения используется файл, то содержимое секрета возвращается в кодировке Base64. Вы можете декодировать файл с помощью утилиты base64 на Linux:

    base64 --decode <путь_к_файлу> > output.txt
    

При запросе без указания версии возвращается содержимое текущей версии секрета.

Чтобы получить содержимое секрета:

  1. Получите IAM-токен для аутентификации и сохраните его в переменную:

    export IAM_TOKEN=$(yc iam create-token)
    

    Также вы можете получить IAM-токен сервисного аккаунта изнутри ВМ, к которой он привязан. Для этого выполните запрос в сервис метаданных. Пример с использованием утилиты jq:

    export IAM_TOKEN=$(curl --header Metadata-Flavor:Google http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token | jq -r .access_token)
    
  2. Выполните запрос:

    curl \
      --request GET \
      --header "Authorization: Bearer ${IAM_TOKEN}" \
      https://payload.lockbox.api.cloud.yandex.net/lockbox/v1/secrets/<идентификатор_секрета>/payload
    

Если в качестве конфиденциального значения используется файл, то содержимое секрета возвращается в кодировке Base64. Вы можете декодировать файл с помощью модуля base64 в Python или других инструментов.

Вы можете управлять секретами и их содержимым не только при помощи консоли управления, CLI и API, но и с использованием SDK для популярных языков программирования. Подробнее в разделе Интерфейсы работы с сервисом.

Практические сценарииПрактические сценарии

Чтобы использовать секреты в приложениях и инфраструктуре, воспользуйтесь инструкциями:

  • Передача секрета в Cloud Functions — использование пароля или токена в функции через переменную окружения.
  • Синхронизация с секретами Managed Service for Kubernetes — получение данных из Yandex Lockbox с помощью External Secrets Operator.
  • Хранение паролей для GitLab CI — получение пароля из Yandex Lockbox при выполнении CI-скрипта.

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

Следующая
Все инструкции
Сделано на Gravity UI
Проект Яндекса
© 2026 ООО «Яндекс.Облако»