Чтобы использовать секрет Yandex Lockbox в именованном окружении, выполните подготовку ниже, затем добавьте секрет в окружение. Так можно разделить доступ к значениям для staging и production или подключить общие секреты из окружения организации или проекта.
Перед началом работы
Если у вас еще нет секрета в Yandex Lockbox, создайте его. Сохраните названия ключей, которые добавили в секрет, — к ним вы будете обращаться из CI/CD.
Создайте сервисный аккаунт или используйте существующий. От его имени SourceCraft будет получать секрет из Yandex Lockbox.
Назначьте сервисному аккаунту рольlockbox.payloadViewer на секрет, созданный ранее, или на каталог с секретом. Эта роль позволяет читать значения версий секрета.
Если у вас еще нет сервисного подключения с доступом к Yandex Lockbox, создайте его. В настройках подключения используйте сервисный аккаунт, которому ранее назначили роль lockbox.payloadViewer.
На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.
Выберите репозиторий, в котором хотите создать секрет.
На странице репозитория в разделе Настройки репозитория перейдите в секцию Секреты.
На странице с секретами нажмите Новый секрет.
В открывшемся диалоге настройте секрет:
Выберите тип Yandex Lockbox.
В поле Название задайте название, по которому будете обращаться к секрету из CI/CD.
В поле Сервисное подключение выберите сервисное подключение, подготовленное ранее.
В поле Секрет Lockbox выберите секрет Yandex Lockbox.
(Опционально) Чтобы подключить только часть ключей, нажмите Выбрать ключи. В блоке Ключи payload нажмите названия нужных ключей, например DB_USER и DB_PASSWORD. Нужно выбрать хотя бы один ключ. Если не настраивать выбор, будут добавлены все ключи секрета.
Нажмите Добавить секрет.
Примечание
SourceCraft обращается к последней актуальной версии секрета в Yandex Lockbox.
В конфигурационном файле .sourcecraft/ci.yaml обратитесь к ключу из секрета Yandex Lockbox в формате ${{ secrets.<название_секрета_Lockbox>#<ключ>}}, например:
workflows:test-lockbox-workflow:tasks:-name:test-lockbox-taskenv:BOT_TOKEN:$not_var{{secrets.LOCKBOX_TEST#BOT_TOKEN}}cubes:-name:test-lockbox-taskscript:-|
if [ -n "$BOT_TOKEN" ]; then
echo "PASS: Lockbox key received"
else
echo "FAIL: Lockbox key is missing or empty"
exit 1
fi
В примере LOCKBOX_TEST — название секрета в SourceCraft, который ссылается на секрет Yandex Lockbox. Ключ BOT_TOKEN должен существовать в Yandex Lockbox и входить в выбранный набор ключей. Проверка выводит PASS или FAIL, не выводя само значение.
Проверить выполнение CI/CD-процесса
В зависимости от настроек, указанных в .sourcecraft/ci.yaml, выполните событие-триггер.
Проверьте выполнение CI/CD-процесса:
На странице репозитория в разделе Код перейдите в секцию CI/CD.
Выберите запущенный рабочий процесс (workflow).
На открывшейся странице будут отображены все задания (tasks) рабочего процесса, шаги задания — кубики (cubes), а также статусы и результаты выполнения.