本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 中授予 AWS KMS
授予是允許AWS 主體在密碼編譯操作中使用KMS金鑰的政策工具。它也可以讓他們檢視KMS金鑰 (DescribeKey
) 並建立和管理授予。授權存取KMS金鑰時,會考慮授予以及金鑰政策和IAM政策 。授予通常用於臨時許可,因為您可以建立、使用其許可,以及刪除它,而無需變更您的金鑰政策IAM。
與 整合的 AWS 服務通常使用 授予 AWS KMS 來加密靜態資料。服務會代表帳戶中的使用者建立授予、使用其許可,並在其任務完成後立即淘汰授予。如需 AWS 服務使用授予方式的詳細資訊,請參閱服務使用者指南或開發人員指南中的靜態加密主題。
授予是非常靈活和有用的存取控制機制。當您為KMS金鑰建立授予時,只要符合授予中指定的所有條件,授予會允許承授者主體在KMS金鑰上呼叫指定的授予操作。
-
每個授予允許只存取一個KMS金鑰。您可以在不同的 中為KMS金鑰建立授予 AWS 帳戶。
-
授予可以允許存取KMS金鑰,但不能拒絕存取。
-
每個授予都有一個承授者主體。承授者主體可以在 AWS 帳戶 與KMS金鑰相同的 或不同帳戶中代表一或多個身分。
-
授予只能允許授予操作。授予操作必須由授予中的 KMS 金鑰支援。如果您指定不支援的操作,則CreateGrant請求會失敗,但有
ValidationError
例外狀況。 -
承授者主體可以使用授予授予授予的許可,而無需指定授予,就像許可來自金鑰政策一樣IAM。不過,由於 AWS KMS API遵循最終一致性模型,當您建立、淘汰或撤銷授予時,在 變更在整個 中可用之前,可能會有短暫的延遲 AWS KMS。若要立即使用授予中的許可,請使用授予字符。
-
授權主體可以刪除授予 (對其進行淘汰或撤銷)。刪除授予會消除授予允許的所有許可。您不需要弄清楚要新增或移除哪些政策,即可復原授予。
-
AWS KMS 會限制每個KMS金鑰的授予數量。如需詳細資訊,請參閱 每個KMS金鑰的授與數:50,000。
建立授予和給予他人建立授予的許可時,請小心謹慎。建立授予的許可具有安全性影響,就像允許 kms:PutKeyPolicy設定政策的許可一樣。
-
具有為KMS金鑰 (
kms:CreateGrant
) 建立授予的許可使用者可以使用授予來允許使用者和角色使用KMS金鑰,包括 AWS 服務。這些主體可以是您本身的身分, AWS 帳戶 也可以是不同帳戶或組織中的身分。 -
授予只能允許操作的子集 AWS KMS 。您可以使用授予來允許主體檢視KMS金鑰、在密碼編譯操作中使用,以及建立和淘汰授予。如需詳細資訊,請參閱授予操作。您也可以使用授予限制條件來限制授予對稱加密金鑰中的許可。
-
主體可以從金鑰政策或IAM政策取得建立授予的許可。從政策取得
kms:CreateGrant
許可的主體可以為KMS金鑰上的任何授予操作建立授予。這些主體不需擁有他們對金鑰授與的許可。當允許政策中的kms:CreateGrant
許可時,您可以使用政策條件來限制此許可。 -
主體也可以從授予取得建立授予的許可。這些委託人只能委派他們獲得授予的許可,即使他們擁有政策的其他許可。如需詳細資訊,請參閱 授予 CreateGrant 許可。
授予概念
若要有效地使用授予,您需要了解 AWS KMS 使用的條款和概念。
- 授予限制條件
-
限制授予中許可的條件。目前, AWS KMS 支援根據密碼編譯操作請求中的加密內容來授予限制。如需詳細資訊,請參閱 使用授予限制條件。
- 授予 ID
-
KMS 金鑰授予的唯一識別符。您可以使用授予 ID 以及金鑰識別符 來識別 RetireGrant或 RevokeGrant請求中的授予。
- 授予操作
-
您可以在授予中允許 AWS KMS 的操作。如果您指定其他操作,則CreateGrant請求會失敗,但有
ValidationError
例外狀況。這些也是接受授予字符的操作。如需有關這些許可的詳細資訊,請參閱 AWS KMS 許可。這些授予操作實際上代表使用操作的許可。因此,對於
ReEncrypt
操作,您可以指定ReEncryptFrom
、ReEncryptTo
,或兩者的ReEncrypt*
。授予操作包括:
-
密碼編譯操作
-
其他操作
您允許的授予操作必須由授予中的 KMS 金鑰支援。如果您指定不支援的操作,則CreateGrant請求會失敗,但有
ValidationError
例外狀況。例如,對稱加密KMS金鑰的授予不允許簽署 、驗證GenerateMac
或VerifyMac
操作。非對稱KMS金鑰的授予不允許產生資料金鑰或資料金鑰對的任何操作。 -
- 授予字符
-
AWS KMS API 遵循最終一致性模型。當您建立授權時,在該變更適用於整個 AWS KMS之前,可能會有短暫延遲。變更傳播到整個系統通常需要不到幾秒鐘的時間,但在某些情況下可能需要幾分鐘。如果您在整個系統中完全傳播授權之前嘗試使用授權,則可能會收到拒絕存取錯誤。授予字符可讓您參考授予並立即使用授予許可。
授予字符是唯一的,非秘密的,可變長度的,base64 編碼的字串,代表授予。您可以使用授予字符來識別任何授予操作中的授予。但是,由於字符值是雜湊摘要,因此它不會顯示有關授予的任何詳細資訊。
授權字符設計為只能在整個 AWS KMS中完全傳播授權之後才能使用。在此之後,承授者主體可以使用授予中的許可,而不提供授予字符或任何其他授予的證據。您可以隨時使用授予權杖,但一旦授予最終一致, AWS KMS 會使用授予來決定許可,而不是授予權杖。
例如,下列命令會呼叫 GenerateDataKey操作。它使用授予權杖來表示授予呼叫者 (承授者主體) 許可以
GenerateDataKey
呼叫指定KMS金鑰的授予。$
aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --grant-token $token
您也可以使用授予字符來識別管理授予之操作中的授予。例如,淘汰委託人可以在對RetireGrant操作的呼叫中使用授予權杖。
$
aws kms retire-grant \ --grant-token $token
CreateGrant
是傳回授予字符的唯一操作。您無法從任何其他 AWS KMS 操作或從 CreateGrant 該操作的CloudTrail 日誌事件取得授予權杖。ListGrants 和 ListRetirableGrants操作會傳回授予 ID ,但不會傳回授予權杖。如需詳細資訊,請參閱 使用授予字符。
- 承授者主體
-
取得授予中所指定許可的身分。每個授予都有一個承授者主體,但承授者主體可以代表多個身分。
承授者主體可以是任何 AWS 主體,包括 AWS 帳戶 (根)、IAM使用者 、IAM角色 、聯合角色 或使用者 或擔任角色的使用者。承授者主體可以位於與KMS金鑰相同的 帳戶或不同的 帳戶。不過,承授者主體不能是服務主體 、IAM群組 或AWS 組織 。
注意
IAM 最佳實務會阻止使用具有長期憑證IAM的使用者。盡可能使用提供臨時憑證IAM的角色。如需詳細資訊,請參閱 IAM 使用者指南 中的安全最佳實務IAM。
- 淘汰授予
-
終止授予。當您完成使用許可時,就會淘汰授予。
撤銷和淘汰授予都會刪除授予。但是,由授予中指定的主體完成淘汰動作。撤銷通常是由金鑰管理員完成。如需詳細資訊,請參閱 淘汰和撤銷授予。
- 淘汰主體
-
可以淘汰授予的主體。您可以在授予中指定淘汰的主體,但不是必需的。淘汰主體可以是任何 AWS 主體,包括 AWS 帳戶、IAM使用者、IAM角色、聯合身分使用者和擔任角色的使用者。淘汰主體可以位於與KMS金鑰相同的 帳戶或不同的 帳戶。
注意
IAM 最佳實務會阻止使用具有長期憑證IAM的使用者。盡可能使用提供臨時憑證IAM的角色。如需詳細資訊,請參閱 IAM 使用者指南 中的安全最佳實務IAM。
除了授予中指定的淘汰委託人之外,授予也可以由建立授予 AWS 帳戶 的 淘汰。承授者主體可以淘汰授予 (如果授予允許
RetireGrant
操作)。此外, AWS 帳戶 或 AWS 帳戶 是淘汰主體的 ,可以將淘汰授予給相同 中IAM主體的許可委派給該主體 AWS 帳戶。如需詳細資訊,請參閱 淘汰和撤銷授予。 - 撤銷 (授予)
-
終止授予。您撤銷授予,以主動拒絕授予允許的許可。
撤銷和淘汰授予都會刪除授予。但是,由授予中指定的主體完成淘汰動作。撤銷通常是由金鑰管理員完成。如需詳細資訊,請參閱 淘汰和撤銷授予。
- 最終一致性 (用於授予)
-
AWS KMS API 遵循最終一致性
模型。當您建立、淘汰或撤銷授權時,在該變更適用於整個 AWS KMS之前,可能會有短暫延遲。變更傳播到整個系統通常需要不到幾秒鐘的時間,但在某些情況下可能需要幾分鐘。 如果遇到非預期的錯誤,您可能會發現這個短暫的延遲。例如,如果您嘗試在 整個 中知道授予之前管理新的授予或使用新授予中的許可 AWS KMS,您可能會收到存取遭拒的錯誤。如果您淘汰或撤銷授予,承授者主體可能仍然可以在短期內使用其許可,直到授予完全刪除為止。典型的策略是重試請求,有些 AWS SDKs包含自動退避和重試邏輯。
AWS KMS 具有可減輕此短暫延遲的功能。
-
若要立即使用新授予中的許可,請使用授予字符。您可以使用授予字符來引用任何授予操作中的授予。如需說明,請參閱 使用授予字符。
-
CreateGrant 操作具有一個
Name
參數,可防止重試操作建立重複授予。
注意
授予許可會取代授予的有效性,直到服務中的所有端點都更新為新的授予狀態為止。在大多數情況下,最終一致性將在五分鐘內達成。
如需詳細資訊,請參閱《AWS KMS 最終一致性》。
-