Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Serverless Containers
  • Сопоставление с другими сервисами Yandex Cloud
    • Все инструкции
    • Получение IAM-токена сервисного аккаунта с помощью контейнера
      • Сделать ревизию активной
      • Изменить режим работы контейнера
      • Добавить переменные окружения
      • Указать облачную сеть
      • Передать секреты Yandex Lockbox
      • Посмотреть графики мониторинга
      • Миграция в зону ru-central1-d
      • Удалить контейнер
    • Просмотр операций с ресурсами сервиса
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Управление контейнером
  3. Передать секреты Yandex Lockbox

Передать секреты Yandex Lockbox в контейнер

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 11 июля 2025 г.

Примечание

Эта функциональность находится на стадии Preview.

Yandex Lockbox — сервис для хранения секретов. Передать секрет Yandex Lockbox в контейнер можно в переменной окружения.

Чтобы контейнер получил доступ к секрету, в настройках контейнера нужно указать сервисный аккаунт, у которого есть роли:

  • lockbox.payloadViewer на секрет (как назначить права доступа к секрету);
  • kms.keys.encrypterDecrypter на ключ шифрования, если секрет создан с использованием ключа Yandex Key Management Service (как назначить права доступа к ключу шифрования).

Секрет Lockbox, который передается в контейнер, кешируется в Serverless Containers. После того как сервисный аккаунт потеряет доступ к секрету, контейнер может хранить его до 5 минут.

При передаче секретов Yandex Lockbox создается новая ревизия контейнера. В существующую ревизию секреты передать нельзя.

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

  2. Откройте сервис Serverless Containers.

  3. Выберите контейнер, в который хотите передать секрет.

  4. Перейдите на вкладку Редактор.

  5. В открывшемся окне, в блоке Параметры образа, в поле Секреты Lockbox, укажите:

    • имя переменной окружения, в которой будет храниться секрет;
    • идентификатор секрета;
    • идентификатор версии секрета;
    • ключ одной из пар ключ-значение в версии секрета.
  6. Нажмите Добавить.

    В контейнер можно передать несколько секретов. Для этого еще раз нажмите Добавить.

  7. Нажмите кнопку Создать ревизию. Будет создана новая ревизия контейнера с указанными секретами.

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

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

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

Важно

Если в прошлую ревизию уже были переданы секреты, они перезапишутся.

yc serverless container revision deploy \
   --container-name test \
   --image cr.yandex/<идентификатор_реестра>/repository:tag \
   --cores 1 \
   --memory 1GB \
   --service-account-id <идентификатор_сервисного_аккаунта> \
   --secret environment-variable=<имя_переменной_окружения>,id=<идентификатор_секрета>,version-id=<идентификатор_версии_секрета>,key=<ключ_секрета>

Где:

  • --container-name — имя контейнера.

  • --image — URL Docker-образа.

  • --cores — количество ядер, которые доступны контейнеру.

  • --memory — требуемая память. По умолчанию — 128 МБ.

  • --service-account-id — идентификатор сервисного аккаунта, у которого есть роль lockbox.payloadViewer.

  • --secret:

    • environment-variable — имя переменной окружения, в которой будет храниться секрет;
    • id — идентификатор секрета;
    • version-id — идентификатор версии секрета;
    • key — ключ одной из пар ключ-значение в версии секрета.

    В контейнер можно передать несколько секретов. Для этого укажите параметр --secret необходимое количество раз.

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

  1. Откройте файл конфигурации Terraform и добавьте к описанию функции блок secrets:

    resource "yandex_serverless_container" "test-container" {
      name               = "<имя_контейнера>"
      memory             = <объем_памяти>
      service_account_id = "<идентификатор_сервисного_аккаунта>"
      secrets {
        id                   = "<идентификатор_секрета>"
        version_id           = "идентификатор_версии_секрета>"
        key                  = "<ключ_секрета_1>"
        environment_variable = "<имя_переменной_окружения_1>"
      }
      secrets {
        id                   = "<идентификатор_секрета>"
        version_id           = "<идентификатор_версии_секрета>"
        key                  = "<ключ_секрета_2>"
        environment_variable = "<имя_переменной_окружения_2>"
      }
      image {
        url = "<URL_Docker-образа>"
      }
    }
    

    Где:

    • secrets — блок с настройками секрета. Содержит параметры:
      • id — идентификатор секрета. Обязательный параметр.
      • version_id — идентификатор версии секрета. Обязательный параметр.
      • key — ключ одной из пар ключ-значение в версии секрета, который будет храниться в переменной окружения. Обязательный параметр.
      • environment_variable — имя переменной окружения, в которой будет храниться секрет. Обязательный параметр.

    Более подробную информацию о параметрах ресурса yandex_serverless_container см. в документации провайдера.

  2. Примените изменения:

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

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

      terraform validate
      

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

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

      terraform plan
      

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

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

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

Проверить изменение функции и ее настройки можно в консоли управления.

Чтобы передать секрет Yandex Lockbox в контейнер, воспользуйтесь методом REST API deployRevision для ресурса Container или вызовом gRPC API ContainerService/DeployRevision.

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

Предыдущая
Указать облачную сеть
Следующая
Смонтировать бакеты
Проект Яндекса
© 2025 ООО «Яндекс.Облако»