Секреты в Yandex Lockbox
Секрет
Секрет состоит из набора версий, в которых хранятся данные, такие как ключи API, пароли или токены. Версия содержит наборы ключей и значений. Ключ — это несекретное название для значения, по которому вы будете его идентифицировать. Значение — это секретные данные.
К секретам можно настраивать доступ, используя сервис Yandex Identity and Access Management. Доступные роли для разных сценариев использования описаны в разделе Управление доступом в Yandex Lockbox.
Секрет может находиться в активном и деактивированном состояниях. В активном состоянии возможен доступ как к метаданным, так и к содержимому секрета (парам ключ-значение). В деактивированном состоянии возможен доступ только к метаданным, содержимое секрета недоступно.
Тип секрета
Yandex Lockbox позволяет создавать секреты двух типов: генерируемые и пользовательские.
-
Генерируемый секрет — последовательность случайных символов, которая формируется автоматически. Вы можете настроить параметры генерации, такие как длина и состав символов. Генерируемые секреты подходят для паролей, которые не требуется задавать вручную, а также паролей с частой ротацией. Например, для доступа к базам данных, аутентификации на уровне микросервисов, в системах CI/CD и для других программных взаимодействий.
Также генерируемые секреты используются для хранения информации о подключениях к базам данных PostgreSQL, MySQL® и ClickHouse® с помощью Yandex Connection Manager. При этом секрет создается в Yandex Connection Manager, а хранится в Yandex Lockbox.
-
Пользовательский секрет создается вручную. Подходит для секретов, которые генерируются в сторонней системе. В качестве конфиденциального значения для пользовательского секрета можно указать не только строку, но и файл.
Если в качестве конфиденциального значения используется файл, то содержимое секрета возвращается в кодировке Base64
. Вы можете декодировать файл с помощью модуля base64 в Python или других инструментов.
Версия
В Yandex Lockbox секреты хранятся в виде версий. Каждая версия содержит метаданные и одну или больше пар ключ-значение, что позволяет отслеживать изменения и управлять жизненным циклом секрета.
Версию нельзя изменить после создания. Для любого изменения пар ключей-значений необходимо создать новую версию. Помимо создания новой версии секрета, можно создать версию на основе уже существующей с новыми значениями.
Единовременно может быть активна только одна версия секрета. Вы можете управлять активной версией секрета, добавляя новые версии или откатываясь к предыдущим.
К версиям секрета можно настроить доступ дополнительно к доступу к самому секрету. Для этого нужно назначить роль lockbox.admin
или lockbox.payloadViewer
. Подробнее об управлении доступом читайте в разделе Управление доступом Yandex Lockbox - Какие роли мне необходимы.
Шифрование секретов с помощью Yandex Key Management Service
С помощью Yandex Key Management Service можно создавать и управлять ключами шифрования, которые используются для защиты секретов в Yandex Lockbox.
Все секреты по умолчанию зашифрованы общим ключом. Однако, при создании секрета можно указать собственный ключ Yandex Key Management Service для шифрования секрета. Использование собственного ключа обладает следующими преимуществами:
- Снижаются риски при возможной компрометации общего ключа.
- Собственный ключ можно ротировать самостоятельно и управлять его версиями.
- При необходимости, собственный ключ можно удалить и таким образом гарантированно заблокировать доступ к зашифрованным данным.
- Можно получать аудитные логи событий, связанных с использованием ключа шифрования с помощью сервиса Yandex Audit Trails.
Если при создании секрета вы указали свой ключ KMS, необходимо назначить на этот секрет роли kms.keys.encrypterDecrypter и lockbox.payloadViewer. Они нужны для получения доступа к ключу, а также для шифрования и расшифровки.
Важно
Использование ключа Yandex Key Management Service при каждом обращении к зашифрованному им секрету тарифицируется как одна криптографическая операция. Цены за криптографические операции с ключом указаны в правилах тарификации Yandex Key Management Service.