Управление ключами
С помощью Key Management Service вы можете создавать, ротировать и удалять симметричные ключи шифрования.
Создать ключ
Чтобы создать новый ключ:
- Войдите в консоль управления
. - Выберите сервис Key Management Service.
- На панели слева выберите
Симметричные ключи. - Нажмите кнопку Создать ключ и задайте атрибуты ключа:
- Имя и опциональное описание в свободной форме.
- Алгоритм шифрования, например
AES-256
. - Период ротации (частота смены версии ключа по умолчанию).
- Нажмите кнопку Создать.
Вместе с ключом создается его первая версия: нажмите на ключ в списке, чтобы открыть страницу с его атрибутами.
Выполните команду:
yc kms symmetric-key create \
--name example-key \
--default-algorithm aes-256 \
--rotation-period 24h
Где:
--name
— имя ключа.--default-algorithm
— алгоритм шифрования:aes-128
,aes-192
илиaes-256
.--rotation-period
— период ротации ключа. Чтобы создать ключ без автоматической ротации, не указывайте параметр--rotation-period
.
Вместе с ключом создается его первая версия. Она указана в поле primary_version
.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать новый ключ:
-
Опишите в конфигурационном файле параметры ресурса
yandex_kms_symmetric_key
:resource "yandex_kms_symmetric_key" "key-a" { name = "<имя_ключа>" description = "<описание_ключа>" default_algorithm = "AES_128" rotation_period = "8760h" lifecycle { prevent_destroy = true } }
Где:
-
name
— имя ключа. Формат имени:- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
description
— описание ключа. -
default_algorithm
— алгоритм шифрования. Возможные значения:AES-128
,AES-192
илиAES-256
. -
rotation_period
— период ротации (частота смены версии ключа по умолчанию). Чтобы создать ключ без автоматической ротации, не указывайте параметрrotation_period
.
Важно
Удаление ключа KMS равносильно уничтожению всех зашифрованных с его помощью данных — без ключа восстановить данные не получится. Блок
lifecycle
необходим, чтобы обезопасить ключ от удаления (например, командойterraform destroy
).Более подробную информацию о параметрах ресурсов в Terraform см. в документации провайдера
. -
-
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
или с помощью команд CLI:yc kms symmetric-key list
Воспользуйтесь методом REST API create для ресурса SymmetricKey или вызовом gRPC API SymmetricKeyService/Create.
Изменить ключ
После создания ключа вы можете изменить любой из его атрибутов. Если вы измените алгоритм шифрования, то новый алгоритм будет использоваться начиная со следующей версии ключа. Чтобы сразу создать новую версию и сделать ее версией по умолчанию, ротируйте ключ.
Чтобы изменить ключ:
- Войдите в консоль управления
. - Выберите сервис Key Management Service.
- На панели слева выберите
Симметричные ключи. - В строке с нужным ключом нажмите значок
и выберите Редактировать. - Изменив атрибуты ключа, нажмите кнопку Сохранить.
Выполните команду:
yc kms symmetric-key update \
--name example-key \
--new-name example-key-2 \
--default-algorithm aes-128 \
--rotation-period 48h
Где:
--name
— имя ключа. Если в каталоге есть несколько ключей с одинаковыми именами, используйте идентификатор ключа.--new-name
— новое имя ключа.--default-algorithm
— алгоритм шифрования:aes-128
,aes-192
илиaes-256
.--rotation-period
— период ротации ключа. Чтобы отключить автоматическую ротацию измененного ключа, не указывайте параметр--rotation-period
.
Чтобы изменить ключ:
-
Откройте файл конфигурации Terraform и измените необходимые параметры ресурса
yandex_kms_symmetric_key
.Пример структуры конфигурационного файла:
... resource "yandex_kms_symmetric_key" "key-a" { name = "example-symmetric-key" description = "description for key" default_algorithm = "AES_128" rotation_period = "8760h" } ...
Более подробную информацию о параметрах ресурса
yandex_kms_symmetric_key
в Terraform см. в документации провайдера . -
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить изменение ключа можно в консоли управления
или с помощью команды CLI:yc kms symmetric-key get <имя_ключа>
Воспользуйтесь методом REST API update для ресурса SymmetricKey или вызовом gRPC API SymmetricKeyService/Update.
Ротировать ключ
При ротации ключа генерируется новая версия, которая сразу назначается версией по умолчанию. Вы можете настроить автоматическую периодическую ротацию, но также можете ротировать ключ вручную в любой момент.
Чтобы ротировать ключ:
- Войдите в консоль управления
. - Выберите сервис Key Management Service.
- На панели слева выберите
Симметричные ключи. - В строке с нужным ключом нажмите значок
и выберите Ротировать. - Подтвердите ротацию (убедитесь, что смена версии по умолчанию не повредит вашей работе).
Выполните команду, указав идентификатор или имя ключа:
yc kms symmetric-key rotate example-key
Воспользуйтесь методом REST API rotate для ресурса SymmetricKey или вызовом gRPC API SymmetricKeyService/Rotate.
Удалить ключ
При удалении ключа также удаляются все его версии. Ключ невозможно удалить сразу: версии помеченного на удаление ключа переходят в статус Scheduled For Destruction
на 3 дня. В это время версии ключей продолжают тарифицироваться. В течение этих 3 дней по запросу в техническую поддержку можно восстановить ключ вместе с его версиями.
Внимание
Через 3 дня после запроса на удаление ключа сам ключ и его версии удаляются безвозвратно: если у вас остались зашифрованные с помощью этого ключа данные, расшифровать их будет невозможно.
Чтобы удалить ключ:
- Войдите в консоль управления
. - Выберите сервис Key Management Service.
- На панели слева выберите
Симметричные ключи. - В строке с нужным ключом нажмите значок
и выберите Удалить. - В открывшемся окне нажмите кнопку Удалить.
Выполните команду, указав идентификатор или имя ключа:
yc kms symmetric-key delete example-key
Чтобы удалить ключ, созданный с помощью Terraform:
-
Откройте файл конфигураций Terraform и удалите фрагмент с описанием ключа.
Пример описания ключа в конфигурации Terraform:
... resource "yandex_kms_symmetric_key" "key-a" { name = "example-symmetric-key" description = "description for key" default_algorithm = "AES_128" rotation_period = "8760h" } ...
-
В командной строке перейдите в папку, где расположен файл конфигурации Terraform.
-
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.Проверить изменения можно в консоли управления
или с помощью команд CLI:yc kms symmetric-key list
Воспользуйтесь методом REST API delete для ресурса SymmetricKey или вызовом gRPC API SymmetricKeyService/Delete.