创建密钥

您可以通过Terraform创建并管理密钥。本文以创建密钥为例进行介绍。

概述

KMS支持您创建默认密钥(主密钥),该密钥不需要购买KMS实例即可创建,也支持您在KMS实例中创建密钥。关于密钥的更多信息,请参见密钥服务概述

了解更多关于密钥管理的Terraform配置信息,请参见alicloud_kms_key

使用限制

Terraform需要为0.14.0及以上版本,建议使用最新版本,您可以登录Terraform官网下载。

前提条件

使用RAM用户登录Terraform时,需要为该RAM用户授予AliyunKMSFullAccess(管理密钥管理服务)权限。具体操作,请参见为RAM用户授权

创建默认密钥(主密钥)

  1. 创建一个工作目录,并且在工作目录中创建以下名为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
    }
  2. 执行terraform init命令初始化Terraform运行环境。

  3. 执行terraform plan命令生成资源规划。

  4. 执行terraform apply命令创建密钥。

在KMS实例中创建一个密钥

  1. 创建一个工作目录,并且在工作目录中创建以下名为main.tf的配置文件。

  2. 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
    }
  3. 执行terraform init命令初始化Terraform运行环境。

  4. 执行terraform plan命令生成资源规划。

  5. 执行terraform apply命令创建密钥。