全部產品
Search
文件中心

Key Management Service:管理外部金鑰

更新時間:Dec 30, 2024

KMS外部金鑰管理執行個體支援將KMS密鑰與您雲外密鑰管理設施中的密鑰進行關聯,雲產品或應用通過引用KMS執行個體中的密鑰ID完成加解密操作,且加解密操作時雲外密鑰管理設施中的密鑰不會離開密鑰管理設施邊界,該功能也稱為持有自己的密鑰(Hold Your Own Key,HYOK)。本文介紹如何在KMS外部金鑰管理執行個體中建立外部金鑰。

說明

由於外部金鑰管理設施需要您自我維護,保障其安全性、可用性和穩定性,並承擔相關成本,對多數使用者而言,如果KMS軟體密鑰管理執行個體、硬體密鑰管理執行個體可以滿足您的安全、控制與監管要求,推薦您優先使用軟體密鑰管理執行個體或硬體密鑰管理執行個體。

KMS執行個體如何與外部金鑰管理設施通訊

KMS執行個體通過外部金鑰代理服務(XKI Proxy代理服務)串連雲外密鑰管理設施,該代理將所有請求從KMS執行個體傳輸到密鑰管理設施,並將來自密鑰管理設施的響應回傳到KMS執行個體。XKI Proxy代理服務的詳細介紹,請參見XKI Proxy伺服器

KMS執行個體支援通過公網或VPC終端節點服務與XKI Proxy代理服務串連。

  • 公網串連:KMS執行個體使用公網通過Internet串連到XKI Proxy代理服務,XKI Proxy代理服必須可以通過公網訪問。

  • VPC終端節點服務串連:通過PrivateLink,KMS執行個體使用VPC終端節點服務與XKI Proxy外部代理串連。

注意事項

  • 外部金鑰僅支援對稱金鑰,不支援非對稱金鑰。

  • 如果密鑰管理設施中的密鑰丟失或刪除,則通過對應KMS外部金鑰加密的密文將無法恢複。

  • 外部金鑰管理執行個體不支援匯入密鑰材料、密鑰輪轉、備份管理、跨地區同步。

  • KMS外部金鑰管理執行個體的密鑰在外部,KMS執行個體中只有密鑰的中繼資料,因此密鑰的版本管理也是在外部,您無法在KMS調用與密鑰版本相關的介面:

  • 通過外部金鑰管理執行個體進行密碼運算需要符合以下條件:

    • KMS外部金鑰管理執行個體中密鑰狀態必須是 Enabled

    • 外部金鑰代理服務(XKI Proxy代理服務)運行正確、配置正確,且狀態為已啟用(Connected)。

    • 外部金鑰代理服務(XKI Proxy代理服務)中的密鑰狀態必須是ENABLED

前提條件

  • 請確保已購買並啟用KMS外部金鑰管理執行個體。具體操作,請參見購買和啟用KMS執行個體

  • 請提前通過XKI Proxy代理服務,在密鑰管理設施中建立密鑰,並記錄密鑰ID。具體操作,請參見密鑰管理設施相關文檔。

建立外部金鑰

  1. 登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊资源 > 密钥管理

  2. 密钥管理頁面,單擊用户主密钥頁簽,实例ID選擇外部金鑰管理執行個體,單擊创建密钥

  3. 创建密钥面板,完成配置項設定,然後單擊確定

    配置項

    說明

    外部密钥ID

    通過XKI管理服務產生的密鑰的密鑰ID。

    說明

    支援使用同一個外部金鑰ID建立一個或多個KMS密鑰。

    密钥规格

    密鑰的規格。關於密鑰規格遵循的標準、密鑰演算法等詳細介紹,請參見密鑰管理類型和密鑰規格

    Aliyun_AES_256

    密钥用途

    密鑰的用途。

    Encrypt/Decrypt:資料加密和解密。

    密钥别名

    密鑰的別名標識符。支援英文字母、數字、底線(_)、短劃線(-)和正斜線(/)。

    標籤

    密鑰的標籤,方便您對密鑰進行分類管理。每個標籤由一個索引值對(Key:Value)組成,包含標籤鍵(Key)、標籤值(Value)。

    說明
    • 標籤鍵和標籤值的格式:最多支援128個字元,可以包含英文大小寫字母、數字、正斜線(/)、反斜線(\)、底線(_)、短劃線(-)、半形句號(.)、加號(+)、等號(=)、半形冒號(:)、字元at(@)。

    • 標籤鍵不能以aliyun或acs:開頭。

    • 每個密鑰最多可以設定20個標籤索引值對。

    描述信息

    密鑰的說明資訊。

    高级选项

    • 預設策略:如果密鑰由當前主帳號使用,或者資源共用單元中的主帳號使用,請選擇預設策略。

      • 執行個體未共用給其他帳號:僅當前主帳號能管理及使用密鑰。

      • 執行個體已共用給其他帳號:以主帳號1將KMS執行個體A共用給主帳號2為例介紹。

        • 主帳號1建立的密鑰:僅主帳號1能管理及使用密鑰。

        • 主帳號2建立的密鑰:主帳號1和主帳號2,都能管理及使用密鑰。

    • 自訂策略:如果密鑰需要授權給RAM使用者、RAM角色,或授權給其他帳號使用,請選擇自訂策略。

      重要

      選擇管理員、使用者時不消耗訪問管理數量配額。選擇其他帳號使用者時,會消耗KMS執行個體的訪問管理數量配額,按主帳號個數計算消耗的配額,如果您取消了授權,請等待約5分鐘,再查看配額,配額會返還。

      • 管理員:對密鑰進行管控類操作,不支援密碼運算操作。支援選擇當前主帳號下的RAM使用者和RAM角色。

        管理員支援的許可權列表

        {
        	"Statement": [
        		{
        			"Action": [
        				"kms:List*",
        				"kms:Describe*",
        				"kms:Create*",
        				"kms:Enable*",
        				"kms:Disable*",
        				"kms:Get*",
        				"kms:Set*",
        				"kms:Update*",
        				"kms:Delete*",
        				"kms:Cancel*",
        				"kms:TagResource",   
        				"kms:UntagResource", 
        				"kms:ImportKeyMaterial",
        				"kms:ScheduleKeyDeletion"
        			]
        		}
        	]
        }
      • 使用者:僅支援使用密鑰進行密碼運算操作。支援選擇當前主帳號下的RAM使用者和RAM角色。

        使用者支援的許可權列表

         {
            "Statement": [
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
        								"kms:GenerateDataKey",
        								"kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
        							  "kms:TagResource"
                    ]
                }
            ]
        }
      • 其他帳號使用者:使用密鑰進行加解密,可以是其他阿里雲帳號的RAM使用者或RAM角色。

        • RAM使用者:格式為acs:ram::<userId>:user/<ramuser>,例如acs:ram::119285303511****:user/testpolicyuser

        • RAM角色:格式為acs:ram::<userId>:role/<ramrole>,例如acs:ram::119285303511****:role/testpolicyrole

          說明

          授權給RAM使用者、RAM角色後,您仍需在存取控制RAM側,使用該RAM使用者、RAM角色的主帳號為其授權使用該密鑰,RAM使用者、RAM角色才能使用該密鑰。

          具體操作,請參見Key Management Service自訂權限原則參考為RAM使用者授權為RAM角色授權

        其他帳號使用者支援的許可權列表

         {
            "Statement": [
                {
                    "Action": [
                        "kms:Encrypt",
                        "kms:Decrypt",
        								"kms:GenerateDataKey",
        								"kms:GenerateAndExportDataKey",
                        "kms:AsymmetricEncrypt",
                        "kms:AsymmetricDecrypt",
                        "kms:DescribeKey",
                        "kms:DescribeKeyVersion",
                        "kms:ListKeyVersions",
                        "kms:ListAliasesByKeyId",
        							  "kms:TagResource"
                    ]
                }
            ]
        }

相關操作

禁用密鑰、開啟刪除保護、計劃刪除密鑰、密鑰關聯檢測、設定外部金鑰的別名、設定外部金鑰的標籤等操作,請參見管理密鑰