Управление версиями секрета
Управление версиями секрета позволяет:
- Создать новую версию пользовательского секрета.
- Создать новую версию генерируемого секрета.
- Получить информацию о версии.
- Создать версию на основе существующей.
- Откатиться к определенной версии.
- Запланировать удаление версии.
Создать новую версию пользовательского секрета
-
В консоли управления
выберите каталог, которому принадлежит секрет. -
В списке сервисов выберите сервис Lockbox.
-
Нажмите на имя нужного секрета.
-
В разделе Версии нажмите Добавить версию.
-
Добавьте следующие параметры:
- (Опционально) Описание — описание версии.
- Ключ — несекретное название для значения, по которому вы будете его идентифицировать.
- Значение — секретные данные в явном виде.
Вы можете создать несколько пар ключей и значений в одной версии.
-
Нажмите кнопку Добавить версию.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
resource "yandex_lockbox_secret_version_hashed" "my_version" { secret_id = "<идентификатор_секрета>" key_1 = "<ключ_секрета_1>" text_value_1 = "<значение_секрета_1>" key_2 = "<ключ_секрета_2>" text_value_2 = "<значение_секрета_2>" }
Где:
secret_id
— идентификатор секрета, для которого создается версия.- (Опционально)
description
— произвольный комментарий к версии секрета. key_N
— ключ секрета. Несекретное название для значения, по которому вы будете его идентифицировать.text_value_N
— секретные данные в явном виде.
Пары
key_N/text_value_N
нумеруются последовательно от 1 до 10 (поддерживается 10 пар). Если нужна только одна пара, используйтеkey_1/text_value_1
.Примечание
Рекомендуется использовать ресурс
yandex_lockbox_secret_version_hashed
, он хранит в состоянии Terraform значения в хешированном виде. Поддержка ресурсаyandex_lockbox_secret_version
остается.Более подробную информацию о ресурсе
yandex_lockbox_secret_version_hashed
см. в документации провайдера . -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминале слово
yes
и нажмите Enter.
-
После этого для указанного секрета будет создана версия. Проверить появление версии и ее настройки можно в консоли управления
yc lockbox secret list-versions <идентификатор_секрета>
Чтобы создать новую версию секрета, воспользуйтесь методом REST API addVersion для ресурса Secret или вызовом gRPC API SecretService/AddVersion.
Создать новую версию генерируемого секрета
- В консоли управления
выберите каталог, которому принадлежит секрет. - В списке сервисов выберите сервис Lockbox.
- Нажмите на имя нужного секрета.
- В разделе Версии нажмите Добавить версию.
- (Опционально) Добавьте Описание версии.
- (Опционально) Чтобы изменить другие параметры, нажмите Редактировать секрет и укажите:
-
Тип секрета — вы можете оставить генерируемый тип или выбрать пользовательский.
-
Ключ и Параметры автоматической генерации — для генерируемого типа секрета.
-
Ключ и Значение — для пользовательского типа секрета.
Вы можете создать несколько пар ключей и значений в одной версии.
-
- Нажмите кнопку Добавить версию или Сохранить.
Получить информацию о версии
- В консоли управления
выберите каталог, которому принадлежит секрет. - В списке сервисов выберите сервис Lockbox.
- Нажмите на имя нужного секрета.
- В разделе Версии будет показан список всех версий секрета и информация о них.
- Нажмите на нужную версию, чтобы получить информацию о ее парах ключ — значение.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для просмотра версий секрета:
yc lockbox secret list-version --help
-
Выполните команду:
yc lockbox secret list-version <имя_секрета>
Будет отображена информация обо всех версиях секрета, содержащая имена ключей. Значения версий секрета отображаться не будут.
Чтобы получить информацию о версии, воспользуйтесь методом REST API listVersions для ресурса Secret или вызовом gRPC API SecretService/ListVersions.
Создать версию на основе существующей
- В консоли управления
выберите каталог, которому принадлежит секрет. - В списке сервисов выберите сервис Lockbox.
- Нажмите на имя нужного секрета.
- В разделе Версии, напротив нужной версии нажмите
. - Выберите пункт Создать новую версию на основе этой.
- Измените или добавьте следующие параметры:
- (Опционально) Описание — описание версии.
- Ключ — несекретное название для значения, по которому вы будете его идентифицировать.
- Для пользовательского секрета Значение — секретные данные в явном виде.
Вы можете создать несколько пар ключей и значений в одной версии. - Для генерируемого секрета вы можете изменить ключ и параметры значения. Для этого нажмите Редактировать секрет и укажите новые параметры.
- Нажмите кнопку Добавить версию.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для создания новой версии секрета:
yc lockbox secret add-version --help
-
Выполните команду:
yc lockbox secret add-version <имя_секрета> \ --description <описание_версии_секрета> \ --payload "<массив_с_содержимым_версии_секрета>" \ --base-version-id <идентификатор_существующей_версии_секрета>
Где:
<имя_секрета>
— имя секрета, для которого создается версия.--description
— описание новой версии секрета (необязательно).--payload
— содержимое новой версии секрета в виде массива формата YAML или JSON.--base-version-id
— идентификатор версии секрета, на основе которой требуется создать новый секрет. Если параметр не указан, новая версия будет создана на основе текущей версии.
Результат:
id: e6qor8pe3ju7******** secret_id: e6qkkp3k29jf******** created_at: "2024-04-25T13:49:26.621Z" status: ACTIVE payload_entry_keys: - secret-key1 - secret-key2
Чтобы создать версию на основе существующей, воспользуйтесь методом REST API addVersion для ресурса Secret или вызовом gRPC API SecretService/AddVersion.
Изменить текущую версию
- В консоли управления
выберите каталог, которому принадлежит секрет. - В списке сервисов выберите сервис Lockbox.
- Нажмите на имя нужного секрета.
- В разделе Версии, напротив нужной версии нажмите
. - Выберите пункт Сделать текущей версией.
- Нажмите кнопку Сделать текущей версией.
Чтобы изменить текущую версию, воспользуйтесь методом REST API addVersion для ресурса Secret или вызовом gRPC API SecretService/AddVersion с указанием целевой версии.
Запланировать удаление версии
- В консоли управления
выберите каталог, которому принадлежит секрет. - В списке сервисов выберите сервис Lockbox.
- Нажмите на имя нужного секрета.
- В разделе Версии, напротив нужной версии нажмите
. - Выберите пункт Запланировать удаление.
- Введите время до удаления.
- Нажмите кнопку Запланировать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
-
Посмотрите описание команды CLI для планирования удаления версии:
yc lockbox secret schedule-version-destruction --help
-
Запланируйте удаление версии, указав имя секрета, идентификатор версии и время до удаления. Например 1 неделя —
168h
:yc lockbox secret schedule-version-destruction <имя_секрета> \ --version-id <идентификатор_версии> \ --pending-period 168h
Результат:
id: e6qor8pe3ju7******** secret_id: e6qkkp3k29jf******** created_at: "2023-11-08T13:14:34.676Z" destroy_at: "2023-11-15T17:06:28.795Z" status: SCHEDULED_FOR_DESTRUCTION payload_entry_keys: - secret-key
Чтобы запланировать удаление версии, удалите из конфигурационного файла описание ресурсов этой версии. Через Terraform нельзя задать время до удаления, время будет установлено по умолчанию — 7 дней.
Чтобы запланировать удаление версии, воспользуйтесь методом REST API scheduleVersionDestruction для ресурса Secret или вызовом gRPC API SecretService/ScheduleVersionDestruction.