本文介紹如何通過Terraform購買並啟用KMS軟體密鑰管理執行個體。
概述
購買並啟用軟體密鑰管理執行個體時,您需要為該KMS執行個體綁定VPC以及交換器,也支援為該KMS執行個體關聯多個VPC。配置完成後產生CA執行個體認證,請您妥善儲存,在應用訪問KMS執行個體時需要配置該CA執行個體認證。
準備工作
-
準備 RAM 使用者及授權
為安全起見,我們強烈建議您使用 RAM 使用者而非阿里雲帳號(主帳號)來進行操作。
-
建立 RAM 使用者:具體操作方式請參見建立RAM使用者。
-
建立 AccessKey:為該 RAM 使用者建立並記錄 AccessKey。具體操作請參見建立AccessKey。
-
為 RAM 使用者授權:Terraform 需要擷取AliyunKMSFullAccess(管理Key Management Service)、AliyunVPCFullAccess(管理專用網路)和AliyunBSSFullAccess(管理費用中心BSS)才能建立和管理雲資源。為了遵循最小許可權原則,我們推薦使用以下自訂策略進行授權。具體操作方式請參見管理RAM使用者的許可權。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "vpc:CreateVpc", "vpc:CreateVSwitch", "vpc:DescribeNatGateways", "vpc:DeleteVpc", "vpc:DeleteVSwitch" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "vpc:DescribeVpcAttribute", "vpc:DescribeVSwitchAttributes", "vpc:DescribeRouteTableList" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "bss:*", "bssapi:*" ], "Resource": [ "*" ] } ] }
-
-
準備 Terraform 運行環境
可以選擇以下任一方式來運行 Terraform:
重要請確保 Terraform 版本不低於
v0.12.28。您可以通過運行terraform --version命令來檢查。-
Terraform Explorer:阿里雲提供的線上運行環境,無需安裝,登入後即可使用。適用於零成本、快速體驗的情境。
-
使用Terraform快速建立資源:Cloud Shell 中已預裝 Terraform 並配置好了身份憑證。適用於快速、便捷地在雲端運行命令的情境。
-
在本地安裝和配置Terraform:適用於網路連接較差或需要自訂開發環境的情境。
-
-
檢查 Aliyun/Alicloud Provider 版本
部分功能對 Aliyun/Alicloud Provider 的版本有特定要求,具體說明如下:
-
建立時設定自動續約:如需在建立 KMS 執行個體時就設定自動續約,Provider 版本不能低於
1.245.0。 -
修改為自動續約:如需將一個已有的手動續約 KMS 執行個體修改為自動續約,Provider 不能低於
1.257.0
-
使用的資源
-
alicloud_vpc:建立Virtual Private Cloud。
-
alicloud_vswitch:建立虛擬交換器(vSwitch)為VPC劃分一個或多個子網。
-
alicloud_zones:查詢可用性區域。
-
alicloud_kms_instance:購買並啟用KMS軟體密鑰管理執行個體。
本教程樣本包含的部分資源會產生一定費用,請在不需要時及時進行釋放或退訂。
通過Terraform購買並啟用軟體密鑰管理執行個體
本樣本將建立並啟用一個KMS執行個體。
當通過 Terraform 啟用軟體密鑰管理執行個體時,您只能配置一個 vSwitch。
-
建立一個工作目錄,並且在工作目錄中建立以下名為
main.tf的設定檔。main.tfTerraform主檔案,定義了將要部署的資源。variable "region" { default = "ap-southeast-1" } provider "alicloud" { region = var.region } variable "instance_name" { default = "tf-kms-vpc-172-16" } variable "instance_type" { default = "ecs.e-c1m2.large" } # 使用資料來源來擷取可用的可用性區域資訊。資源只能在指定的可用性區域內建立。 data "alicloud_zones" "default" { available_disk_category = "cloud_efficiency" available_resource_creation = "VSwitch" available_instance_type = var.instance_type } # 建立VPC resource "alicloud_vpc" "vpc" { vpc_name = var.instance_name cidr_block = "172.16.0.0/12" } # 建立一個Vswitch CIDR 塊為 172.16.0.0/12 resource "alicloud_vswitch" "vsw" { vpc_id = alicloud_vpc.vpc.id cidr_block = "172.16.0.0/21" zone_id = data.alicloud_zones.default.zones.0.id vswitch_name = "terraform-example-1" } # 建立KMS軟體密鑰管理執行個體,並使用網路參數啟動 resource "alicloud_kms_instance" "default" { # 軟體密鑰管理執行個體 product_version = "3" vpc_id = alicloud_vpc.vpc.id # 規定 KMS 執行個體所在的可用性區域,使用前面擷取的可用性區域 ID zone_ids = [ data.alicloud_zones.default.zones.0.id, data.alicloud_zones.default.zones.1.id ] # 交換器id vswitch_ids = [ alicloud_vswitch.vsw.id ] # 計算效能、密鑰數量、憑據數量、訪問管理數量 vpc_num = "1" key_num = "1000" secret_num = "100" spec = "1000" # 為KMS執行個體關聯其他VPC,選擇性參數 # 如果VPC與KMS執行個體的VPC屬於不同阿里雲帳號,您需要先共用交換器。 #bind_vpcs { #vpc_id = "vpc-j6cy0l32yz9ttxfy6****" #vswitch_id = "vsw-j6cv7rd1nz8x13ram****" #region_id = "ap-southeast-1" #vpc_owner_id = "119285303511****" #} #bind_vpcs { #vpc_id = "vpc-j6cy0l32yz9ttd7g3****" #vswitch_id = "vsw-3h4yrd1nz8x13ram****" #region_id = "ap-southeast-1" #vpc_owner_id = "119285303511****" #} } # 儲存KMS執行個體CA認證到本地檔案 resource "local_file" "ca_certificate_chain_pem" { content = alicloud_kms_instance.default.ca_certificate_chain_pem filename = "ca.pem" } -
執行以下命令,初始化
Terraform運行環境。terraform init返回如下資訊,表示Terraform初始化成功。
... Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes... -
建立執行計畫,並預覽變更。
terraform plan -
執行以下命令,建立KMS執行個體。
terraform apply在執行過程中,根據提示輸入
yes並按下Enter鍵,等待命令執行完成,若出現以下資訊,則表示KMS執行個體建立成功。Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes ... Apply complete! Resources: 4 added, 0 changed, 0 destroyed. -
驗證結果。
執行terraform show命令
您可以使用以下命令查詢Terraform已建立的資來源詳細資料:
terraform show登入Key Management Service控制台
登入Key Management Service控制台,查看已建立的KMS執行個體。在Key Management Service控制台的執行個體管理頁面,應用接入指南地區包含三個步驟:授權應用訪問、擷取執行個體CA認證和完成應用適配(其中後兩步需重點關注)。下方軟體密鑰管理頁簽中列出已建立的KMS執行個體,可查看各執行個體的密鑰數量、憑據數量、建立時間、付費方式及到期狀態,並可執行詳情、資源共用、續約等操作。
清理資源
當您不再需要上述通過Terraform建立或管理的資源時,請運行以下命令以釋放資源。關於terraform destroy的更多資訊,請參見常用命令。
terraform destroy
完整樣本
當前範例程式碼支援一鍵運行,您可以直接運行代碼。一鍵運行