Key Management Service (KMS)是您的一站式密鑰管理和資料加密服務平台、一站式憑據安全管理平台,提供簡單、可靠、安全、合規的資料加密保護和憑據管理能力。本文為您介紹KMS的常見使用情境。
情境一:通過控制台建立免費的預設密鑰(主要金鑰),對ECS雲端硬碟、RDS資料或OSS資料加密
您無需購買KMS執行個體,在每個阿里雲帳號的每個地區下,KMS都提供了一個免費的預設密鑰(主要金鑰)用於雲產品服務端加密。以加密ECS系統硬碟為例介紹。
步驟一:建立預設密鑰(主要金鑰)
登入Key Management Service控制台,在頂部功能表列選擇地區資訊後,單擊实例管理頁面。
在实例管理頁面,單擊默认密钥管理頁簽。
單擊主要金鑰操作列的启用,在创建密钥頁簽完成配置項設定,然後單擊確定。
阿里云KMS:密鑰材料將由KMS產生。
外部:KMS不會產生密鑰材料,您需要將自己的密鑰材料匯入KMS。更多資訊,請參見匯入對稱金鑰材料。

配置項 | 說明 |
密钥别名 | 密鑰的別名標識符。支援英文字母、數字、底線(_)、短劃線(-)和正斜線(/)。 |
描述信息 | 密鑰的說明資訊。 |
高级选项 | 密鑰材料來源。 |
步驟二:建立ECS執行個體時加密系統硬碟
關於雲產品服務端密碼編譯集成KMS支援的密鑰類型以及詳細操作,請參考對應雲產品的相關文檔。
登入ECS管理主控台。
在左側導覽列,選擇。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
在執行個體頁面,單擊建立執行個體。
在基礎配置頁面,按以下步驟操作。
說明本步驟主要描述建立執行個體時如何配置加密選項,其餘配置說明,請參見自訂購買執行個體。
選擇合格地區和可用性區域、執行個體規格。
鏡像類型選擇公用鏡像或者自訂鏡像。
系統硬碟選擇ESSD雲端硬碟類型,並配置容量等資訊。
選中加密,並在下拉式清單中選擇在KMS控制台建立的預設密鑰(主要金鑰)。
說明目前華東5(南京-本地地區)、華東6(福州-本地地區)、泰國(曼穀)和韓國(首爾)地區不支援自選自訂密鑰(BYOK)。
加密後,用來加密雲端硬碟的KMS密鑰自動被綁定一個標籤,標籤鍵固定為
acs:ecs:disk-encryption,標籤值固定為true。您可以登入Key Management Service控制台,在实例管理頁面的默认密钥管理頁簽查看密鑰ID、密鑰標籤。
情境二:多個阿里雲帳號下的ECS、RDS、OSS雲產品,使用免費的預設密鑰(主要金鑰)加密
阿里雲帳號在每個地區都有一個免費的預設密鑰(主要金鑰)額度,當您需要對多個阿里雲帳號下的雲產品加密時,您可以在每個帳號下建立1個預設密鑰(主要金鑰),用該預設密鑰(主要金鑰)加密帳號下的雲產品。具體的架構圖如下:
情境三:使用Terraform建立免費的預設密鑰(主要金鑰)
準備工作
在本地使用Terraform
安裝的Terraform版本不低於v0.14。
說明安裝後您可以通過terraform --version命令查看Terraform版本,如果版本低於v0.14,請重新覆蓋安裝正確版本。
配置阿里雲帳號資訊。
方式一:建立環境變數,用於存放身份認證資訊(推薦)。
export ALICLOUD_ACCESS_KEY="******" export ALICLOUD_SECRET_KEY="******" export ALICLOUD_REGION="******"方式二:通過在設定檔的
provider代碼塊中指定身份認證資訊。provider "alicloud" { access_key = "******" secret_key = "******" region = "******" }
在Cloud Shell中使用Terraform
安裝的Terraform版本不低於v0.14,如果版本不滿足要求,請切換Terraform版本。更多資訊,請參見在Cloud Shell中使用Terraform和切換Terraform版本。
操作步驟
建立一個工作目錄,並且在工作目錄中建立以下名為main.tf和variables.tf的設定檔。
main.tf:Terraform主檔案,定義了將要部署的資源。
# 可以參考相關文檔(https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/kms_key)瞭解資源alicloud_kms_key的細節 resource "alicloud_kms_key" "key" { description = "${var.description}" } output "key_id" { value = alicloud_kms_key.key.id }variables.tf:包含可傳遞到main.tf的變數,可協助您自訂變數。
# KMS密鑰的描述資訊 variable "description" { default = "the new key" }
執行
terraform init命令初始化Terraform運行環境。執行
terraform plan命令產生資源規劃。執行
terraform apply命令建立密鑰。
情境四:建立一個憑據
您需要購買KMS執行個體後,才可以建立憑據。
步驟一:在控制台購買KMS執行個體
僅支援在控制台上購買KMS執行個體,不支援通過Terraform購買。
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
在实例管理頁面單擊创建实例,選擇要購買的KMS執行個體規格,單擊立即購買。
配置項
說明
網站
KMS執行個體所在地區所屬的網站。
密鑰管理類型
KMS執行個體類型。可選項:
軟體密鑰管理:支援構建專屬您的金鑰儲存區庫,提供資料加解密的能力,同時提供密鑰生命週期管理。
硬體密鑰管理:支援管理您購買的專屬密碼機叢集的密鑰,協助您快速構建雲上安全密鑰管理中心。提供的極簡應用加密介面,滿足您雲產品資料加密、應用系統資料加密的整體需求,是您理想的雲上一站式資料加密安全解決方案。
說明密鑰增值服務用於備份恢複KMS軟體密鑰管理執行個體的資料,更多資訊,請參見備份管理。
地區
KMS執行個體所在地區。更多資訊,請參見地區和接入地址。
計算效能
KMS執行個體的計算效能。關於效能資料的詳細介紹,請參見效能資料。
密鑰數量
KMS執行個體允許建立的最大密鑰數量。
憑據數量
KMS執行個體允許建立的最大憑據數量。
訪問管理數量
包含KMS執行個體關聯的VPC數量,以及資源使用者的數量。預設值為1個。
例如,您的KMS執行個體需要關聯3個VPC,並共用給2個資源使用者,那麼訪問管理數量配額最少為5才能滿足業務需求。
購買數量
購買的KMS執行個體數量。
重要通常您只需購買一個KMS執行個體,如需購買多個KMS執行個體,請通過工單聯絡商務經理。
購買時間長度
根據需要選擇購買時間長度。
說明您可以選中到期自動續約,當前KMS執行個體到期後將自動續約。
仔細閱讀並勾選服務合約,單擊去支付完成購買。
購買成功後,您需要等待1~5分鐘,即可在实例管理頁面看到您購買的KMS執行個體。
步驟二:啟用KMS執行個體
前提條件
已在KMS執行個體所屬地區建立VPC和交換器。具體操作,請參見建立專用網路和交換器或建立交換器。
重要請確保交換器預留了足夠的可用IP數,軟體密鑰管理執行個體需要預留1個,硬體密鑰管理執行個體需要預留5個。您可以登入專用網路管理主控台,在交換器頁面單擊目標交換器,在詳情頁面查看可用IP數。
如果您使用阿里雲中國站帳號購買非中國內地的KMS執行個體,或者使用阿里雲國際站帳號購買中國內地的KMS執行個體,請確保已開通雲解析PrivateZone。具體操作,請參見開通PrivateZone。
說明其他情境下會自動開通PrivateZone,無需您手動開通。
KMS執行個體網域名稱解析產生的費用由KMS承擔,您無需向雲解析PrivateZone付費。
啟用KMS硬體密鑰管理執行個體前,由於該執行個體需要串連您的密碼機叢集,請確保已購買和配置可供執行個體串連的密碼機叢集。具體操作,請參見配置KMS硬體密鑰管理執行個體的密碼機叢集。
啟用軟體密鑰管理執行個體
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
在软件密钥管理頁簽,定位到目標KMS執行個體,單擊操作列的启用。
在启用KMS实例對話方塊,完成各項配置後單擊確定。
配置項
說明
密管平台模式
預設為阿里云密管平台,無需修改。
私有库
預設為新建数据库,無需修改。
实例网络配置
VPC ID:KMS執行個體所在地區下的專用網路ID。
VSwitch ID:專用網路下的交換器ID。
請等待約30分鐘,然後重新整理頁面,當狀態變更為已启用時,表示KMS軟體密鑰管理執行個體啟用成功。
啟用硬體密鑰管理執行個體
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊硬件密钥管理頁簽,定位到目標KMS執行個體,單擊操作列的启用。
在连接密码机對話方塊,完成各項配置後,單擊连接密码机指定密碼機叢集。
配置項
說明
指定密码机集群
選擇您在Data Encryption Service中建立的密碼機叢集。
說明一個KMS硬體密鑰管理執行個體只能綁定一個密碼機叢集。
配置密码机访问凭据
用户名:密碼機操作員的使用者名稱(固定為
kmsuser)。口令:密碼機操作員的訪問口令。該口令是您在建立密碼機操作員時設定的口令。
安全域证书:PEM格式CA認證。登入Data Encryption Service控制台,單擊叢集的主密碼機執行個體ID後的
表徵圖,在叢集詳情對話方塊中下載ClusterOwnerCertificate,即為此處要上傳的安全域認證。
如果購買執行個體時選擇了憑據數量,請等待約30分鐘,然後重新整理頁面。如果未選擇憑據數量,請等待約10分鐘,然後重新整理頁面。當狀態變更為已启用時,表示KMS硬體密鑰管理執行個體啟用成功。
(可選)步驟三:查看KMS執行個體詳情
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
在实例管理頁面,單擊對應的執行個體頁簽。
定位到目標KMS執行個體,單擊操作列的管理,在執行個體詳情頁查看資訊。
步驟四:在KMS執行個體中建立一個密鑰
由於僅對稱金鑰支援加密憑據,如果該密鑰用於加密憑據,請建立一個對稱金鑰。
通過控制台建立
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
在密钥管理頁面,選擇实例ID,然後單擊创建密钥。
在创建密钥面板完成配置項設定,然後單擊確認。
配置項
說明
密钥类型
選擇要建立的密鑰是對稱金鑰還是非對稱金鑰。
重要如果您建立的密鑰用於加密憑據值,請選擇對稱金鑰。
密钥规格
密鑰的規格。
密鑰用途
密鑰的用途。取值:
Encrypt/Decrypt:資料加密和解密。
Sign/Verify:產生和驗證數位簽章。
密钥别名
密鑰的別名標識符。支援英文字母、數字、底線(_)、短劃線(-)和正斜線(/)。
標籤
包含標籤鍵和標籤值。關於標籤的詳細資料,請參見標籤概述。
描述信息
密鑰的說明資訊。
通過Terraform建立
準備工作
在本地使用Terraform
安裝的Terraform版本不低於v0.14。
說明安裝後您可以通過terraform --version命令查看Terraform版本,如果版本低於v0.14,請重新覆蓋安裝正確版本。
配置阿里雲帳號資訊。
方式一:建立環境變數,用於存放身份認證資訊(推薦)。
export ALICLOUD_ACCESS_KEY="******" export ALICLOUD_SECRET_KEY="******" export ALICLOUD_REGION="******"方式二:通過在設定檔的
provider代碼塊中指定身份認證資訊。provider "alicloud" { access_key = "******" secret_key = "******" region = "******" }
在Cloud Shell中使用Terraform
安裝的Terraform版本不低於v0.14,如果版本不滿足要求,請切換Terraform版本。更多資訊,請參見在Cloud Shell中使用Terraform和切換Terraform版本。
操作步驟
建立一個工作目錄,並且在工作目錄中建立以下名為main.tf和variables.tf的設定檔。
main.tf:Terraform主檔案,定義了將要部署的資源。
# 可以參考相關文檔(https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/kms_key)瞭解資源alicloud_kms_key的細節 resource "alicloud_kms_key" "key" { description = "${var.description}" dkms_instance_id = "${var.dkms_instance_id}" } output "key_id" { value = alicloud_kms_key.key.id }variables.tf:包含可傳遞到main.tf的變數,可協助您自訂變數。
# KMS密鑰的描述資訊 variable "description" { default = "the new key" } # 您的KMS執行個體Id variable "dkms_instance_id" { default = "kst-szz63292789pf2h******" }
執行
terraform init命令初始化Terraform運行環境。執行
terraform plan命令產生資源規劃。執行
terraform apply命令建立密鑰。
步驟五:在KMS執行個體中建立一個憑據
以建立通用憑據為例為您介紹。
通過控制台建立
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊通用凭据頁簽,選擇实例ID後,單擊创建凭据,完成各項配置後單擊確認。
配置項
說明
凭据名称
輸入自訂的憑據名稱。
设置凭据值
根據您要託管的敏感性資料類型,選擇凭据 键/值或纯文本。
初始版本号
憑據的初始版本號碼。預設為v1,也支援自訂版本號碼。
加密主密钥
選擇用於加密憑據值的密鑰。
重要密鑰和憑據需要屬於同一個KMS執行個體,且密鑰必須為對稱金鑰。關於KMS支援哪些對稱金鑰,請參見密鑰管理類型和密鑰規格。
如果是RAM使用者、RAM角色,需要具備使用加密主要金鑰執行GenerateDataKey操作的許可權。
標籤
包含標籤鍵和標籤值。關於標籤的詳細資料,請參見標籤概述。
描述信息
輸入憑據的描述資訊。
通過Terraform建立
建立一個工作目錄,並且在工作目錄中建立以下名為main.tf和variables.tf的設定檔。
main.tf:Terraform主檔案,定義了將要部署的資源。
# 可以參考相關文檔(https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/kms_secret)瞭解資源alicloud_kms_secret的細節 resource "alicloud_kms_secret" "secret" { description = "from terraform" secret_name = "${var.secret_name}" secret_data = "${var.ENV_SECRET_DATA}" version_id = "${var.version_id}" dkms_instance_id = "${var.dkms_instance_id}" encryption_key_id = "${var.encryption_key_id}" }variables.tf:包含可傳遞到main.tf的變數,可協助您自訂變數。
# 憑據名稱 variable "secret_name" { default = "secret_name_sample" } # 憑據版本資訊 variable "version_id" { default = "000000000001" } # 憑據值。 variable "ENV_SECRET_DATA" { # 您可以使用命令 "export TF_VAR_ENV_SECRET_DATA=xxxxxxxxxx" 來設定憑據值 或在TF提示時輸入。 # default = "Secret data sample." # sensitive設定為true,以使TF相關工具不展示憑據值內容。 sensitive = true } # 您的KMS執行個體Id variable "dkms_instance_id" { default = "kst-szz63292789pf2h******" } # 指定用於加密儲存憑據值的密鑰id。注意:要求密鑰在同一個KMS執行個體中。 variable "encryption_key_id" { default = "key-szz640fd91d99y1******" }
執行
terraform init命令初始化Terraform運行環境。執行
terraform plan命令產生資源規劃。執行
terraform apply命令建立憑據。
步驟六:在應用程式中整合憑據
憑據建立完成後,您可以在應用中整合憑據,協助您規避在代碼中寫入程式碼憑據帶來的敏感資訊泄露風險。關於代碼中如何整合憑據,請您參見SDK參考。
情境五:配置多VPC使用KMS執行個體
當您的業務應用部署在同地區的多個VPC時,您可以配置這些VPC使用同一個KMS執行個體。
VPC和KMS執行個體屬於同一個阿里雲帳號
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
在实例管理頁面,單擊對應的執行個體頁簽。
定位到目標KMS執行個體,單擊操作列的管理,在執行個體詳情頁面單擊配置VPC。
在配置专有网络對話方塊,選中待选专有网络中的VPC,單擊
表徵圖。在请选择需要绑定VPC的交换机對話方塊中,為每個VPC選擇一個交換器,單擊確定。
在配置专有网络頁面,單擊確定。
VPC和KMS執行個體屬於不同阿里雲帳號
以阿里雲帳號B、阿里雲帳號C下的應用程式,需要使用阿里雲帳號A的KMS執行個體中的資源為例。
配置資源共用,使阿里雲帳號A可以共用阿里雲帳號B、阿里雲帳號C中VPC的交換器資源。
說明關於資源共用的詳細操作,請參見將資源共用給任意帳號或僅在資來源目錄內共用資源。
使用阿里雲帳號A登入Key Management Service控制台,在頂部功能表列選擇地區資訊後,單擊实例管理頁面。
在实例管理頁面,單擊對應的執行個體頁簽。
定位到目標KMS執行個體,單擊操作列的管理,在執行個體詳情頁面單擊配置VPC。
在配置专有网络對話方塊,選中待选专有网络中的VPC,單擊
表徵圖。在请选择需要绑定VPC的交换机對話方塊中,為每個VPC選擇一個交換器,單擊確定。
在配置专有网络頁面,單擊确定。
情境六:多個阿里雲帳號共用憑據
如果您使用阿里雲帳號1購買了KMS執行個體(選購了憑據配額),您的阿里雲帳號2、阿里雲帳號3可以通過公網接入地址訪問阿里雲帳號1的KMS執行個體中的憑據。
在阿里雲帳號1下建立憑據。具體操作,請參見情境四:建立一個憑據。
阿里雲帳號2、阿里雲帳號3通過公網接入地址,使用阿里雲帳號1下建立的憑據。具體操作,請參見憑據用戶端、憑據JDBC用戶端或RAM憑據外掛程式。
關於公網接入地址,請參見地區和接入地址。
情境七:將KMS執行個體共用給資來源目錄的其他阿里雲帳號
共用KMS執行個體的阿里雲帳號必須是同一個企業實名認證主體,資源使用者可以使用來自共用的KMS執行個體,進行雲產品服務端加密。更多詳細資料,請參見多帳號共用KMS執行個體。
前提條件
已完成資來源目錄組織的建立。具體操作,請參見資來源目錄概述。
步驟一:資源所有者共用KMS執行個體
將KMS執行個體共用給其他阿里雲帳號時,建議單獨建立共用單元以控制資源使用者範圍,避免將該共用單元授權給過多的資源使用者。
在Key Management Service控制台操作
資源所有者登入Key Management Service控制台,在頂部功能表列選擇地區資訊後,在左側導覽列單擊实例管理。
在实例管理頁面,單擊對應的執行個體頁簽。
定位到目標KMS執行個體,單擊操作列的资源共享。
在添加到共用單元面板中單擊建立,單擊確定完成共用單元建立。

配置項
說明
共用單元名稱
自訂共用單元的名稱。格式為中文字元、英文大小寫字元、數字及特殊字元(“.”、“_”或“-”),最長不允許超過50個字元。
關聯許可權
資源使用者的許可權。具體的許可權詳情,您可以在資源共用控制台上的許可權庫中查看。
AliyunRSDefaultPermissionKMSInstance:資源使用者可以使用密鑰進行雲產品服務端加密。
AliyunRSPermissionKMSInstanceReadWrite:資源使用者可以管理密鑰和使用密鑰進行雲產品服務端加密。
說明基於業務隔離、風險分散等考慮,建議您建立兩個共用單元,一個關聯許可權為AliyunRSPermissionKMSInstanceReadWrite僅用於管理密鑰,一個關聯許可權為AliyunRSDefaultPermissionKMSInstance使用密鑰進行雲產品服務端加密。
添加資源使用者
支援如下三種類型:
阿里雲帳號:輸入使用者ID(即阿里雲帳號UID),單擊添加後,將KMS執行個體共用給該阿里雲帳號。本文樣本採用該方式。
資來源目錄組織:輸入資來源目錄ID(以rd開頭,例如rd-Y4****),將KMS執行個體共用給該資來源目錄下的所有成員帳號。
如果該資來源目錄後續建立或邀請了新的阿里雲帳號,該KMS執行個體會自動共用給新的阿里雲帳號。
資源夾(組織單元):輸入資源夾ID(以fd開頭,例如fd-gLh1HJ****),將KMS執行個體共用給該資源夾下的所有成員帳號。
如果該資源夾後續建立或邀請了新的阿里雲帳號,該KMS執行個體會自動共用給新的阿里雲帳號。
重要資源使用者必須和資源所有者屬於同一個資來源目錄。關於資來源目錄、資源夾的更多資訊,請參見資來源目錄基本概念。
將KMS執行個體共用給資源使用者,會扣除KMS執行個體的訪問管理數量額度,因此在建立共用單元時,建議您將資源使用者的類型選擇為阿里雲帳號或資源夾(組織單元),避免共用給資來源目錄組織下所有成員造成KMS執行個體的額度過度使用和KMS執行個體密鑰資源非必要使用。
如果您在建立共用單元時未指定資源使用者,也可以在修改共用單元時指定。
KMS執行個體共用成功後,在KMS執行個體ID下方會顯示共享中。資源使用者登入Key Management Service控制台,可以查看到該KMS執行個體,在KMS執行個體ID下方會顯示来自共享。
在資源共用控制台操作
具體操作,請參見僅在資來源目錄內共用資源。
步驟二:資源使用者使用KMS執行個體
管理密鑰
當共用單元的許可權是AliyunRSPermissionKMSInstanceReadWrite時,資源使用者才可以管理密鑰。例如,建立密鑰、設定別名、添加標籤等。具體操作,請參見管理密鑰。
使用密鑰加解密
當共用單元的許可權是AliyunRSPermissionKMSInstanceReadWrite或AliyunRSDefaultPermissionKMSInstance時,資源使用者可在雲產品服務端加密中使用被共用的KMS執行個體中的密鑰。關於雲產品服務端加密的詳細資料,請參見雲產品整合KMS加密概述和支援整合KMS加密的雲產品。
更多操作
資源所有者修改共用單元
在Key Management Service控制台操作
登入Key Management Service控制台,在頂部功能表列選擇地區資訊後,在左側導覽列單擊实例管理。
在实例管理頁面,根據您的KMS執行個體類型,單擊软件密钥管理頁簽或硬件密钥管理頁簽。
定位到目標KMS執行個體,單擊操作的资源共享。
在添加到共用單元面板選擇共用單元,修改關聯許可權,或者單擊資源使用者的編輯添加或移除資源使用者,然後單擊確定。
在資源共用控制台操作
具體操作,請參見修改共用單元。
資源所有者刪除共用單元
刪除共用單元後,與該共用單元關聯的所有資源使用者都將失去對共用資源的存取權限,請謹慎操作。
僅支援在資源共用控制台操作。具體操作,請參見刪除共用單元。