---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - https://vibe.sourcecraft.dev/portal/docs/en/sourcecraft/operations/lockbox-integration.md
  - https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/lockbox-integration.md
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/lockbox-integration.md
    type: text/markdown
    title: Markdown version
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt
    rel: describedby
title: Настроить интеграцию с Yandex Lockbox
description: 'Инструкция по интеграции репозитория SourceCraft с Yandex Lockbox: создание секрета типа Lockbox и его использование в CI/CD-процессах.'
---
> **Documentation Index:** Fetch the complete configuration index at https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt


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

В [CI/CD](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md) SourceCraft вы можете использовать [секреты](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#secrets), значения которых хранятся в сервисе [Yandex Lockbox](https://yandex.cloud/ru/docs/lockbox/). SourceCraft обращается к ним через [сервисное подключение](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/service-connections.md).

<!-- source: ru/_includes/sourcecraft/lockbox-integration-note.md -->
С помощью интеграции с Yandex Lockbox вы можете:
* хранить секреты в Yandex Cloud, не дублируя их значения в SourceCraft;
* использовать полноценный менеджмент секретов с версионированием и гранулярными правами доступа;
* использовать одни и те же секреты в SourceCraft и в других сервисах Yandex Cloud.
<!-- endsource: ru/_includes/sourcecraft/lockbox-integration-note.md -->

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

1. [Подготовьтесь к работе](#before-you-begin)
1. [Создайте в SourceCraft секрет типа Lockbox](#create-lockbox-secret)
1. [Используйте значение секрета в CI/CD](#use-in-ci-cd)
1. [Проверить выполнение CI/CD-процесса](#check-ci-cd)

## Перед началом работы {#before-you-begin}

1. Если у вас еще нет секрета в Yandex Lockbox, [создайте его](https://yandex.cloud/ru/docs/lockbox/operations/secret-create). Сохраните названия ключей, которые добавили в секрет, — к ним вы будете обращаться из CI/CD.
1. [Создайте](https://yandex.cloud/ru/docs/iam/operations/sa/create) сервисный аккаунт или используйте существующий. От его имени SourceCraft будет получать секрет из Yandex Lockbox.
1. [Назначьте](https://yandex.cloud/ru/docs/iam/operations/sa/assign-role-for-sa) сервисному аккаунту [роль](https://yandex.cloud/ru/docs/lockbox/security/#lockbox-payloadViewer) `lockbox.payloadViewer` на секрет, созданный ранее, или на каталог с секретом. Эта роль позволяет читать значения версий секрета.
1. Если у вас еще нет [сервисного подключения](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/service-connections.md) с доступом к Yandex Lockbox, [создайте](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/service-connections.md) его. В настройках подключения используйте сервисный аккаунт, которому ранее назначили роль `lockbox.payloadViewer`.

## Создайте в SourceCraft секрет типа Lockbox {#create-lockbox-secret}

1. Откройте [главную страницу](https://sourcecraft.dev) SourceCraft.
1. На вкладке ![image](../../_assets/console-icons/house.svg) **Домой** в секции ![image](../../_assets/console-icons/layout-tabs.svg) **Ваша мастерская** перейдите в раздел ![image](../../_assets/console-icons/archive.svg) **Репозитории**.
1. Выберите репозиторий, в котором хотите создать секрет.
1. На странице репозитория в разделе ![image](../../_assets/console-icons/gear.svg) **Настройки репозитория** перейдите в секцию ![image](../../_assets/console-icons/vault.svg) **Секреты**.
1. На странице с секретами нажмите ![image](../../_assets/console-icons/plus.svg) **Новый секрет**.
1. В открывшемся окне:
    * В поле **Тип секрета** выберите **Lockbox**.
    * В поле **Название** введите название секрета. По этому названию вы будете обращаться к секрету из CI/CD.
    * В поле **Сервисное подключение** выберите сервисное подключение, подготовленное ранее.
    * В поле **Секрет Lockbox** выберите секрет Yandex Lockbox, созданный ранее.
1. Нажмите **Выбрать ключи**.
1. Отметьте ключи из секрета Yandex Lockbox, которые вы хотите использовать в CI/CD.
1. Нажмите **Создать**.

{% note info %}

SourceCraft обращается к последней актуальной [версии](https://yandex.cloud/ru/docs/lockbox/concepts/secret#version) секрета в Yandex Lockbox.

{% endnote %}

## Используйте значение секрета в CI/CD {#use-in-ci-cd}

1. [Настройте](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/ci-cd.md) CI/CD в репозитории.
1. В конфигурационном файле `.sourcecraft/ci.yaml` обратитесь к ключу из секрета Yandex Lockbox в формате `${{ secrets.<название_секрета_Lockbox>#<ключ>}}`, например:

    <!-- source: ru/_includes/sourcecraft/lockbox-secret-example.md -->
    ```yaml
    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`.
    <!-- endsource: ru/_includes/sourcecraft/lockbox-secret-example.md -->

## Проверить выполнение CI/CD-процесса {#check-ci-cd} 

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

    <!-- source: ru/_includes/sourcecraft/ci-cd/ui-overview.md -->
    1. На странице репозитория в разделе ![image](../../_assets/console-icons/code.svg) **Код** перейдите в секцию ![image](../../_assets/console-icons/arrows-3-rotate-right.svg) **CI/CD**.
    1. Выберите запущенный рабочий процесс (workflow).
    1. На открывшейся странице будут отображены все задания (tasks) рабочего процесса, шаги задания — кубики (cubes), а также статусы и результаты выполнения.
    <!-- endsource: ru/_includes/sourcecraft/ci-cd/ui-overview.md -->

### Смотри также {#see-also}

* [Секреты](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#secrets)
* [Управлять секретами в репозитории SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/secrets.md)
* [Настроить в SourceCraft сервисное подключение к Yandex Cloud](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/operations/service-connections.md)
* [Непрерывная интеграция и непрерывное развертывание в SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md)
* [Документация Yandex Lockbox](https://yandex.cloud/ru/docs/lockbox/)
