通用憑據(Generic Secret)是KMS支援的基礎類型憑據,您可以使用通用憑據儲存帳號口令、存取金鑰、OAuth密鑰和Token等任意的敏感性資料,同時通用憑據支援多個憑據版本便於您更新憑據值,解決在代碼中寫入程式碼通用憑據帶來的資料泄露風險。本文介紹如何管理及使用通用憑據。
通用憑據輪轉
通用憑據不支援在KMS直接配置周期性輪轉,但您可以通過Function Compute配置周期性輪轉。具體操作,請參見使用Function Compute輪轉普通憑據。如果您希望立即輪轉憑據,可以通過在控制台或OpenAPI(PutSecretValue)存入新的憑據版本實現立即輪轉。
每個通用憑據最多儲存10個憑據版本,超出時KMS會滾動刪除最早的憑據版本。
前提條件
已購買並啟用KMS執行個體。具體操作,請參見購買和啟用 KMS 執行個體。
已在KMS執行個體中建立用於加密憑據的對稱金鑰。具體操作,請參見建立密鑰。
步驟一:建立通用憑據
配置憑據資訊
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊通用凭据頁簽,選擇实例ID後,單擊创建凭据,完成各項配置後單擊確定。
配置項
說明
凭据名称
自訂憑據名稱,需確保名稱在當前地區內唯一。
设置凭据值
選擇憑據鍵/值或純文字,輸入要託管的敏感性資料。長度不超過 30720 位元組(30 KB)。
初始版本号
初始版本號碼,預設為 v1,支援自訂。
加密主密钥
選擇用於加密憑據值的對稱金鑰。密鑰和憑據必須屬於同一個 KMS 執行個體。
重要密鑰和憑據需要屬於同一個 KMS 執行個體,且密鑰必須為對稱金鑰。關於 KMS 支援哪些對稱金鑰,請參見密鑰管理類型和密鑰規格。
如果是 RAM 使用者、RAM 角色,需要具備使用加密主要金鑰執行 GenerateDataKey 操作的許可權。
說明標籤鍵和標籤值的格式:最多支援 128 個字元,可以包含英文大小寫字母、數字、正斜線(/)、反斜線(\)、底線(_)、短劃線(-)、半形句號(.)、加號(+)、等號(=)、半形冒號(:)、字元 at(@)、空格。
標籤鍵不能以 aliyun 或 acs:開頭。
每個憑據最多可以設定 20 個標籤索引值對。
描述信息
填寫憑據的補充描述資訊,便於後續識別和管理。
設定憑據的存取權限策略,可控制哪些 RAM 使用者或角色可以讀取或修改此憑據。
可先選擇預設策略,建立後根據業務需要修改。
版本說明
建立通用憑據時,KMS會為該憑據版本內建版本狀態,即ACSCurrent。
使用 Terraform 管理通用憑據時,如果資源配置中未設定
version_stages,KMS 為初始版本自動化佈建的ACSCurrent會在 Terraform refresh 時讀回為version_stages = ["ACSCurrent"],導致terraform plan顯示 in-place update。為避免此類 plan drift,請在對應資源的lifecycle塊中配置ignore_changes:lifecycle { ignore_changes = [version_stages] }
步驟二:應用程式整合通用憑據
KMS提供了阿里雲SDK、憑據用戶端、KMS Agent、KMS執行個體SDK調用OpenAPI-GetSecretValue或KMS執行個體API-GetSecretValue(不推薦)介面擷取通用憑據值,建議您按照如下優先順序順序選擇合適的整合方式:
建議做好錯誤重試機制提升業務穩定性。
KMS 提供了多種認證方式,為了更高的安全性,推薦優先使用 ECS 執行個體 RAM 角色或 RAM 角色。
存取點說明:
共用網關對應的存取點 Endpoint:請參見存取點說明。
專屬網關對應的存取點 Endpoint:
{執行個體 ID}.cryptoservice.kms.aliyuncs.com。
優先順序 | 使用情境說明 | 支援的網關類型 |
優先順序1:憑據用戶端 | 應用開發語言需要為Java(Java 8及以上版本)、Go或者Python。 |
|
優先順序2:阿里雲SDK | 應用開發語言需要為Java(Java 6及以上版本)、PHP、Go、Python、.NET(僅C#)、C++、Node.js。 |
|
優先順序3:KMS Agent |
|
|
優先順序4:KMS執行個體SDK(不推薦) | 應用開發語言需要為Java(Java 8及以上版本)、PHP、Go、Python、.NET(僅C#)。 | 專屬網關 |
相關操作
輪轉通用憑據
通用憑據不支援在建立時設定輪轉資訊,您可以通過在控制台或OpenAPI(PutSecretValue)存入新的憑據版本實現立即輪轉。
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊通用凭据頁簽,選擇实例ID後,定位到目標憑據,單擊操作列的详情。
在憑據詳情頁面的版本列表地區,單擊存入凭据值。
在存入凭据值對話方塊中,輸入版本号、设置凭据值,然後單擊確定。
重要成功存入新的憑據版本後,該憑據會立即輪轉,即KMS的擷取憑據值介面預設返回該最新版本的憑據值。
刪除通用憑據
刪除前請確認該憑據已不再使用。您可以選擇計劃刪除憑據和立即刪除憑據兩種方式,刪除不需要的通用憑據。
刪除憑據前,請確認該憑據已不再使用,否則可能導致您的業務失敗。
登入Key Management Service控制台,在頂部功能表列選擇地區資訊後,在左側導覽列單擊凭据管理頁面。
單擊通用凭据頁簽,選擇实例ID後,定位到目標憑據,單擊操作列的计划删除。
在计划删除凭据對話方塊中,選擇憑據刪除方式,並單擊確定。
计划删除凭据:設定預刪除周期(7~30 天),系統將在預刪除周期結束後刪除憑據。
立即删除凭据:系統將立即刪除憑據。
在預刪除周期內,可以單擊目標憑據操作列的還原憑據,取消刪除操作。
為憑據配置標籤
憑據的標籤,方便您對憑據進行分類管理。每個標籤由一個索引值對(Key:Value)組成,包含標籤鍵(Key)、標籤值(Value)。
標籤鍵和標籤值的格式:最多支援 128 個字元,可以包含英文大小寫字母、數字、正斜線(/)、反斜線(\)、底線(_)、短劃線(-)、半形句號(.)、加號(+)、等號(=)、半形冒號(:)、字元 at(@)、空格。
標籤鍵不能以 aliyun 或 acs:開頭。
每個憑據最多可以設定 20 個標籤索引值對。
為單個憑據配置標籤
方式 | 操作 |
方式一:在憑據管理頁面配置標籤 |
|
方式二:在憑據詳情頁面配置標籤 |
|
為多個憑據大量設定標籤
登入Key Management Service控制台,在頂部功能表列選擇地區後,在左側導覽列單擊。
單擊相應的憑據類型頁簽,選擇实例ID後,在憑據列表中勾選要操作的憑據。
增加標籤:在憑據列表的最下方,單擊增加标签,輸入多個標籤鍵和標籤值後,單擊確認,然後在變更提示對話方塊中單擊關閉。
刪除標籤:在憑據列表的最下方,單擊删除标签,在批量解绑标签對話方塊勾選要解除綁定的標籤,單擊取消,然後在變更提示對話方塊中單擊關閉。