Настроить интеграцию с Yandex Lockbox в SourceCraft

В CI/CD SourceCraft вы можете использовать секреты, значения которых хранятся в сервисе Yandex Lockbox. SourceCraft обращается к ним через сервисное подключение.

С помощью интеграции с Yandex Lockbox вы можете:

  • хранить секреты в Yandex Cloud, не дублируя их значения в SourceCraft;
  • использовать полноценный менеджмент секретов с версионированием и гранулярными правами доступа;
  • использовать одни и те же секреты в SourceCraft и в других сервисах Yandex Cloud.

Чтобы настроить интеграцию с Yandex Lockbox:

  1. Подготовьтесь к работе
  2. Создайте в SourceCraft секрет типа Lockbox
  3. Используйте значение секрета в CI/CD
  4. Проверить выполнение CI/CD-процесса

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

  1. Если у вас еще нет секрета в Yandex Lockbox, создайте его. Сохраните названия ключей, которые добавили в секрет, — к ним вы будете обращаться из CI/CD.
  2. Создайте сервисный аккаунт или используйте существующий. От его имени SourceCraft будет получать секрет из Yandex Lockbox.
  3. Назначьте сервисному аккаунту роль lockbox.payloadViewer на секрет, созданный ранее, или на каталог с секретом. Эта роль позволяет читать значения версий секрета.
  4. Если у вас еще нет сервисного подключения с доступом к Yandex Lockbox, создайте его. В настройках подключения используйте сервисный аккаунт, которому ранее назначили роль lockbox.payloadViewer.

Создайте в SourceCraft секрет типа Lockbox

  1. Откройте главную страницу SourceCraft.
  2. На вкладке Домой в секции Ваша мастерская перейдите в раздел Репозитории.
  3. Выберите репозиторий, в котором хотите создать секрет.
  4. На странице репозитория в разделе Настройки репозитория перейдите в секцию Секреты.
  5. На странице с секретами нажмите Новый секрет.
  6. В открывшемся окне:
    • В поле Тип секрета выберите Lockbox.
    • В поле Название введите название секрета. По этому названию вы будете обращаться к секрету из CI/CD.
    • В поле Сервисное подключение выберите сервисное подключение, подготовленное ранее.
    • В поле Секрет Lockbox выберите секрет Yandex Lockbox, созданный ранее.
  7. Нажмите Выбрать ключи.
  8. Отметьте ключи из секрета Yandex Lockbox, которые вы хотите использовать в CI/CD.
  9. Нажмите Создать.

Примечание

SourceCraft обращается к последней актуальной версии секрета в Yandex Lockbox.

Используйте значение секрета в CI/CD

  1. Настройте CI/CD в репозитории.

  2. В конфигурационном файле .sourcecraft/ci.yaml обратитесь к ключу из секрета Yandex Lockbox в формате ${{ secrets.<название_секрета_Lockbox>#<ключ>}}, например:

    workflows:
      test-lockbox-workflow:
        tasks:
          - name: test-lockbox-task
            cubes:
              - name: test-lockbox-task
                script:
                  - |
                    set -eou pipefail
                    echo "Testing lockbox"
                    echo ${{ secrets.lockbox-test#BOT_TOKEN }}
    

    В примере используется значение ключа BOT_TOKEN из секрета Yandex Lockbox lockbox-test.

Проверить выполнение CI/CD-процесса

  1. В зависимости от настроек, указанных в .sourcecraft/ci.yaml, выполните событие-триггер.

  2. Проверьте выполнение CI/CD-процесса:

    1. На странице репозитория в разделе Код перейдите в секцию CI/CD.
    2. Выберите запущенный рабочий процесс (workflow).
    3. На открывшейся странице будут отображены все задания (tasks) рабочего процесса, шаги задания — кубики (cubes), а также статусы и результаты выполнения.

Смотри также