憑據策略是基於資源的策略,用於控制哪些阿里雲帳號、RAM使用者、RAM角色有許可權來管理或使用KMS憑據,KMS執行個體中的每個憑據必須有且只有一個憑據策略。本文介紹憑據策略的詳細資料。
憑據策略與存取控制RAM的權限原則的關係
策略說明
憑據策略與 RAM 權限原則從不同維度控制對 KMS 憑據的存取權限。在憑據策略中添加 RAM 使用者或 RAM 角色後,還可配置 RAM 權限原則,管理 RAM 使用者或 RAM 角色已在 RAM 控制台配置了相應的 KMS 憑據操作許可權。
憑據策略:資源級策略,綁定在具體憑據上,用於聲明哪些身份(RAM 使用者、RAM 角色或阿里雲帳號)可以管理或使用該憑據。具體操作,請參見設定憑據策略。
RAM 權限原則:身份級策略,綁定在 RAM 使用者或 RAM 角色上,用於聲明該身份可以執行哪些 KMS 操作。具體操作,請參見管理RAM使用者的許可權、管理RAM角色的許可權、Key Management Service自訂權限原則參考。
許可權判斷優先順序
當前帳號(憑據建立者帳號)的 RAM 使用者/角色
判定原則:任一允許即可(OR 邏輯)。只要滿足以下任意一個條件,且沒有顯式拒絕(Explicit Deny),即允許訪問。
說明關於Explicit Deny(顯式拒絕)、Implicit Deny(隱式拒絕)的詳細介紹,請參見權限原則判定流程。
KMS 憑據策略中明確允許該使用者/角色。
RAM 權限原則中明確允許該使用者/角色。
詳細規則:
KMS 憑據策略(資源側)
RAM 權限原則(身份側)
判定結果
Allow(允許)
未配置
Allow(允許)
未配置
Allow(允許)
Allow(允許)
Allow(允許)
Allow(允許)
Allow(允許)
Allow(允許)
Deny(拒絕)
Deny(拒絕)
Deny(拒絕)
Allow(允許)
Deny(拒絕)
未配置
未配置
Deny(拒絕)
其他帳號的 RAM 使用者/角色(跨帳號)
判定原則:必須同時允許(AND 邏輯)。必須同時滿足以下兩個條件,才允許訪問。
KMS 憑據策略中明確允許該外部使用者/角色(或外部帳號)。
RAM 權限原則中明確允許該外部使用者/角色調用 KMS 相關介面。
詳細規則:
KMS 憑據策略(資源側)
RAM 權限原則(身份側)
判定結果
Allow(允許)
Deny(拒絕)
Deny(拒絕)
Deny(拒絕)
Allow(允許)
Deny(拒絕)
Allow(允許)
Allow(允許)
Allow(允許)
未配置
未配置
Deny(拒絕)
注意事項
僅KMS執行個體中的憑據支援憑據策略。您可在建立憑據時設定憑據策略,也可在建立後進行修改,具體請參見管理及使用憑據、設定憑據策略。
如果您授權給其他阿里雲帳號下的RAM使用者、RAM角色,會消耗KMS執行個體的訪問管理數量配額,按阿里雲帳號個數計算消耗的配額。如果您後續取消跨帳號的授權且該執行個體沒有其他資源分享給此帳號時,請等待約5分鐘再查看配額,配額的消耗數量會相應減少。
憑據策略僅適用於通過KMS服務Endpoint訪問憑據時,對存取權限進行判定。如果您是通過KMS執行個體Endpoint訪問憑據,是否能訪問依賴於應用存取點AAP中配置的權限原則。
憑據策略的內容長度不超過32768個位元組,且為JSON格式。
憑據策略說明
完整的憑據策略包含如下內容:
Version:憑據策略的版本,目前版本僅支援設定為1。
Statement:憑據策略的語句,每個憑據策略包含一個或多個語句。每個語句包含以下幾個參數。
Sid
可選,表示自訂的語句標識符。內容長度小於等於128字元,支援的字元為:大寫英文字母(A-Z)、小寫英文字母(a-z)、數字(0-9),特殊字元( _/+=.@-)。
Effect
必選,表示是允許還是拒絕該策略語句中的許可權。取值為:
Allow或Deny。Principal
必選,表示權限原則的授權主體,支援設定為以下主體:
當前阿里雲帳號,即憑據所屬的阿里雲帳號。
當前阿里雲帳號下的RAM使用者、RAM角色。
其他阿里雲帳號下的RAM使用者、RAM角色。
重要授權給其他阿里雲帳號下的RAM使用者、RAM角色後,您仍需在存取控制RAM側,使用該RAM使用者、RAM角色的阿里雲帳號為其授權使用該憑據,RAM使用者、RAM角色才能使用該憑據。
具體操作,請參見憑據管理服務自訂權限原則參考、管理RAM使用者的許可權、管理RAM角色的許可權。
Action
必選,表示要允許或拒絕的API操作,內容必須以"kms:"開頭。操作許可權列表的範圍如下,如果您設定了列表外的操作,設定後也不會生效。
Resource
必選,表示權限原則生效的目標資源。
Resource取值只能為*,表示本 KMS 憑據。Condition
可選,表示授權生效的限制條件。Condition元素也稱為條件塊(Condition Block),它是由一個或多個條件子句構成。一個條件子句由條件操作類型、條件關鍵字和條件值組成。詳細資料,請參見權限原則基本元素。
格式為
"Condition": {"condition operator": {"condition key": "condition value"}}。condition operator:具體請參見條件操作類型。condition key、condition value:密鑰策略支援的條件關鍵字及取值,具體請參見策略(Policy)條件鍵。
常見問題
如何查看憑據建立者?
通過控制台:登入Key Management Service控制台,在凭据管理頁面,進入憑據詳情頁面,查看建立者。
通過 OpenAPI:調用DescribeSecret介面,響應訊息中的
Creator即建立者。