您可以通过Terraform创建并管理密钥。本文以创建密钥为例进行介绍。
概述
KMS支持您创建默认密钥(主密钥),该密钥不需要购买KMS实例即可创建,也支持您在KMS实例中创建密钥。关于密钥的更多信息,请参见密钥服务概述。
了解更多关于密钥管理的Terraform配置信息,请参见alicloud_kms_key。
使用限制
Terraform需要为0.14.0及以上版本,建议使用最新版本,您可以登录Terraform官网下载。
前提条件
使用RAM用户登录Terraform时,需要为该RAM用户授予AliyunKMSFullAccess(管理密钥管理服务)权限。具体操作,请参见为RAM用户授权。
创建默认密钥(主密钥)
创建一个工作目录,并且在工作目录中创建以下名为main.tf的配置文件。
main.tf:Terraform主文件,定义了将要部署的资源。
//创建默认密钥(主密钥) resource "alicloud_kms_key" "default_key_encrypt_decrypt" { description = "default_key_encrypt_decrypt description" key_usage = "ENCRYPT/DECRYPT" key_spec = "Aliyun_AES_256" origin = "Aliyun_KMS" pending_window_in_days = 7 tags = { "Environment" = "Production" "Name" = "KMS-01" "SupportTeam" = "PlatformEngineering" "Contact" = "group@example.com" } } //密钥别名为alias/default_key_encrypt_decrypt_alias,在整个阿里云账号下唯一。 resource "alicloud_kms_alias" "default_key_encrypt_decrypt_alias" { alias_name = "alias/default_key_encrypt_decrypt_alias" key_id = alicloud_kms_key.default_key_encrypt_decrypt.id }
执行
terraform init
命令初始化Terraform运行环境。执行
terraform plan
命令生成资源规划。执行
terraform apply
命令创建密钥。
在KMS实例中创建一个密钥
创建一个工作目录,并且在工作目录中创建以下名为main.tf的配置文件。
执行
terraform init
命令初始化Terraform运行环境。执行
terraform plan
命令生成资源规划。执行
terraform apply
命令创建密钥。
main.tf:Terraform主文件,定义了将要部署的资源。
//您需要已创建KMS实例kst-shh634e71ecu88d6e****
variable "soft_kms_instance" {
default = "kst-shh634e71ecu88d6e****"
}
//在kst-shh634e71ecu88d6e****实例中创建一个密钥
//密钥规格为Aliyun_AES_256,密钥用途是加密解密(ENCRYPT/DECRYPT)
resource "alicloud_kms_key" "kms_software_key_encrypt_decrypt" {
description = "default_key_encrypt_decrypt description"
key_usage = "ENCRYPT/DECRYPT"
key_spec = "Aliyun_AES_256"
dkms_instance_id = var.soft_kms_instance
pending_window_in_days = 7
tags = {
"Environment" = "Production"
"Name" = "KMS-01"
"SupportTeam" = "PlatformEngineering"
"Contact" = "aliyun@example.com"
}
}
//密钥别名为alias/kms_software_key_encrypt_decrypt,在整个阿里云账号下唯一。
resource "alicloud_kms_alias" "kms_software_key_encrypt_decrypt_alias" {
alias_name = "alias/kms_software_key_encrypt_decrypt"
key_id = alicloud_kms_key.kms_software_key_encrypt_decrypt.id
}