Управление ключами KMS с Hashicorp Terraform
Terraform-провайдер для Yandex.Cloud поддерживает работу с ключами KMS.
Добавление ключа
Добавить ключ KMS можно с помощью блока yandex_kms_symmetric_key:
resource "yandex_kms_symmetric_key" "kms-key" {
lifecycle {
prevent_destroy = true
}
name = "example-symetric-key"
description = "description for key"
default_algorithm = "AES_256"
rotation_period = "8760h" // equal to 1 year
}
Важно
Удаление ключа KMS равносильно уничтожению всех зашифрованных с его помощью данных — без ключа восстановить данные не получится. Блок lifecycle
необходим, чтобы обезопасить ключ от удаления (например, командой terraform destroy
).
Управление доступом к ключу
Для управления доступом к ключу через Terraform назначьте необходимые роли на каталог, содержащий ключ.
Например, назначьте на сервисный аккаунт роль, дающую права шифровать и расшифровывать данные ключами из определенного каталога:
resource "yandex_resourcemanager_folder_iam_member" "admin" {
folder_id = "<ID каталога>"
role = "kms.keys.encrypterDecrypter"
member = "serviceAccount:<ID сервисного аккаунта>"
}