Создать секрет
Чтобы создать секрет:
-
В консоли управления
выберите каталог, в котором будет создан секрет. -
Перейдите
в сервис Lockbox. -
Нажмите кнопку Создать секрет.
-
В поле Имя введите имя секрета.
-
(Опционально) Для разделения ресурсов на логические группы добавьте метку.
-
(Опционально) Включите опцию Запретить удаление секрета. Пока опция включена, удалить секрет невозможно. Не защищает содержимое секрета от изменения.
-
Выберите Тип секрета:
-
Генерируемый — значение формируется автоматически:
- В поле Ключ введите неконфиденциальный идентификатор.
- (Опционально) Разверните блок Параметры автоматической генерации и задайте параметры для конфиденциального значения (например, пароля).
-
Пользовательский — значение задается вручную:
-
В поле Ключ введите неконфиденциальный идентификатор.
-
В поле Значение введите конфиденциальные данные для хранения.
Чтобы добавить больше данных, нажмите кнопку Добавить ключ/значение и повторите шаги.
-
-
-
(Опционально) В поле Ключ KMS укажите существующий ключ или создайте новый.
Указанный ключ Yandex Key Management Service используется для шифрования секрета. Если вы не будете указывать ключ, секрет будет зашифрован специальным системным ключом.
Совет
Подробнее о преимуществах собственного ключа в разделе Шифрование секретов с помощью Yandex Key Management Service.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для создания секрета:
yc lockbox secret create --help -
Выполните команду:
yc lockbox secret create \ --name <имя_секрета> \ --description <описание_секрета> \ --payload "<массив_с_содержимым_секрета>" \ --cloud-id <идентификатор_облака> \ --folder-id <идентификатор_каталога> \ --deletion-protectionГде:
-
--name— имя секрета. Обязательный параметр. -
--description— описание секрета. Необязательный параметр. -
--payload— содержимое секрета в виде массива формата YAML или JSON.Вы можете передать одну или несколько пар ключ-значение секрета. Если пар несколько, перечислите их через запятую. Бинарные значения передавайте в кодировке Base64.
Например, для сохранения ключа
usernameс текстовым значениемmyusernameи ключаavatarс загруженным из файлаavatar.jpgзначением в бинарном формате можно указать:[{'key': 'username', 'text_value': 'myusername'},{'key': 'avatar', 'binary_value': $(base64 -w 0 ./avatar.jpg)}] -
--cloud-id— идентификатор облака, в котором будет создан секрет. -
--folder-id— идентификатор каталога, в котором будет создан секрет. -
--deletion-protection— защита от удаления секрета. Пока опция включена, удалить секрет невозможно. Не защищает содержимое секрета. Необязательный параметр.
Пример команды для создания секрета:
yc lockbox secret create \ --name sample-secret \ --description sample_secret \ --payload "[{'key': 'username', 'text_value': 'myusername'},{'key': 'avatar', 'binary_value': $(base64 -w 0 ./avatar.jpg)}]" \ --cloud-id b1gwa87mbaom******** \ --folder-id b1qt6g8ht345******** \ --deletion-protectionВ этом примере создается секрет с двумя ключами: один ключ с текстовым значением, другой — со значением в бинарном формате.
Результат:
id: e6q6nbjfu9m2******** folder_id: b1qt6g8ht345******** created_at: "2023-10-09T16:29:11.402Z" ... - username - avatar deletion_protection: true -
Ресурс yandex_lockbox_secret содержит только метаданные секрета: имя, описание, идентификатор и другие параметры. Чтобы сохранить содержимое, после создания секрета создайте его версию.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
resource "yandex_lockbox_secret" "my_secret" { name = "<имя_секрета>" description = "<описание_секрета>" folder_id = "<идентификатор_каталога>" kms_key_id = "<идентификатор_ключа_шифрования>" deletion_protection = <флаг_защиты_от_удаления> labels = { <ключ_метки_1> = "<значение_метки_1>", <ключ_метки_2> = "<значение_метки_2>" } }Где:
name— имя секрета. Обязательный параметр.description— описание секрета. Необязательный параметр.folder_id— идентификатор каталога, в котором будет создан секрет. Необязательный параметр.kms_key_id— идентификатор ключа шифрования Key Management Service. Указанный ключ Key Management Service используется для шифрования секрета. Если не указывать ключ Key Management Service, секрет будет зашифрован специальным системным ключом. Необязательный параметр.deletion_protection— флаг защиты от удаления. Для включения защиты укажите значениеtrue. Для отключения защиты —false. Значение по умолчаниюfalse. Необязательный параметр.labels— метка ресурса в формате<ключ>:"<значение>". Необязательный параметр.
Подробнее о параметрах ресурса
yandex_lockbox_secretв документации провайдера. -
Создайте ресурсы:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список планируемых изменений: ресурсы и/или выходные переменные. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
После этого в указанном каталоге будет создан секрет. Проверить появление секрета и его настройки можно в консоли управления
yc lockbox secret get <имя_секрета>
Чтобы создать секрет, воспользуйтесь методом REST API create для ресурса Secret или вызовом gRPC API SecretService/Create.
Совет
Для получения содержимого секрета пользователю или сервисному аккаунту нужна роль lockbox.payloadViewer на этот секрет. Подробнее в инструкции Настроить права доступа к секрету.
Если секрет зашифрован вашим ключом KMS, дополнительно нужна роль kms.keys.encrypterDecrypter на ключ шифрования. Подробнее в инструкции Настроить права доступа к ключу.