IAM 政策的最佳實務 - AWS Key Management Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

IAM 政策的最佳實務

保護存取安全性對 AWS KMS keys 於您所有 AWS 資源的安全性至關重要。KMS 金鑰可用來保護您中許多最敏感的資源 AWS 帳戶。花時間設計金鑰政策、IAM 政策、授予VPC 端點政策,可控制對 KMS 金鑰的存取。

在控制 KMS 金鑰存取的 IAM 政策陳述式中,使用最低權限政策。僅為 IAM 主體提供他們必須使用或管理之 KMS 金鑰所需的許可。

下列最佳做法適用於控制 AWS KMS 金鑰和別名存取權的 IAM 政策。如需一般 IAM 政策最佳實務指南,請參閱《IAM 使用者指南》中的 IAM 安全最佳實務

使用金鑰政策

盡可能在影響一個 KMS 金鑰的金鑰政策中提供許可,而不是在可套用至許多 KMS 金鑰的 IAM 政策中提供許可,包括其他 AWS 帳戶中的這些政策。這對於像 kms: PutKeyPolicy 和 kms: 這樣的敏感權限尤為重要,ScheduleKeyDeletion但對於確定數據如何保護的加密操作也很重要。

限制 CreateKey 權限

僅授予建立金鑰 (kms: CreateKey) 權限給需要金鑰的主體。建立 KMS 金鑰的主體也會設定其金鑰政策,讓他們可以授予自己和其他人使用和管理其所建立之 KMS 金鑰的許可。當您允許此許可時,請考慮使用政策條件對其進行限制。例如,您可以使用 kms: KeySpec 條件來限制對稱加密 KMS 金鑰的權限。

在 IAM 政策中指定 KMS 金鑰

最佳實務是在政策陳述式的 Resource 元素中指定許可套用至其中之每個 KMS 金鑰的金鑰 ARN。此實務會限制主體所需之 KMS 金鑰的許可。例如,此 Resource 元素只會列出主體需要使用的 KMS 金鑰。

"Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" ]

指定 KMS 金鑰不切實際時,請使用限制受信任 AWS 帳戶 和區域中 KMS 金鑰存取的Resource值,例如。arn:aws:kms:region:account:key/*或限制存取受信任的所有區域 (*) 中的 KMS 金鑰 AWS 帳戶,例如arn:aws:kms:*:account:key/*.

您無法使用金鑰 ID別名名稱,或別名 ARN 來代表 IAM 政策 Resource 欄位中的 KMS 金鑰。如果您指定別名 ARN,政策會套用至別名,而不是 KMS 金鑰。如需別名 IAM 政策的資訊,請參閱 控制對別名的存取

避免 IAM 政策中的 "Resource": "*"

明智地使用萬用字元 (*)。在金鑰政策中,Resource 元素中的萬用字元代表金鑰政策所連接的 KMS 金鑰。但是在 IAM 政策中,Resource元素 ("Resource": "*") 中只有萬用字元會將權限套用至主體帳戶 AWS 帳戶 有權使用的所有 KMS 金鑰。這可能包括其他 KMS 金鑰 AWS 帳戶,以及主體帳戶中的 KMS 金鑰。

例如,若要在另一個 KMS 金鑰中使用 KMS 金鑰 AWS 帳戶,主體需要外部帳戶中 KMS 金鑰金鑰金鑰的金鑰原則以及其自己帳戶中 IAM 政策的權限。假設某個任意帳戶提供了針對其 KMS 金鑰的 AWS 帳戶 kms:Decrypt 許可。如果是這樣,您帳戶中為所有 KMS 金鑰 ("Resource": "*") 提供角色 kms:Decrypt 許可的 IAM 政策將滿足需求的 IAM 部分。因此,擔任該角色的主體現在可以使用不可信任帳戶中的 KMS 金鑰來解密加密文字。這兩個帳戶的 CloudTrail 記錄中都會顯示其作業項目。

特別是,避免在允許下列 API 操作的政策陳述式中使用 "Resource": "*"。這些操作可以在其他 KMS 密鑰上調用 AWS 帳戶。

何時使用 "Resource": "*"

在 IAM 政策中,僅對需要的許可在 Resource 元素中使用萬用字元。只有下列許可需要 "Resource": "*" 元素。

注意

別名操作的權限(公里:CreateAlias,公里:UpdateAlias公里:DeleteAlias)必須附加到別名和 KMS 密鑰。您可以使用 IAM 政策中的 "Resource": "*" 來表示別名和 KMS 金鑰,或在 Resource 元素中指定別名和 KMS 金鑰。如需範例,請參閱 控制對別名的存取

 

本主題中的範例提供有關設計 KMS 金鑰之 IAM 政策的詳細資訊和指引。如需一般 AWS KMS 最佳作法指引,請參閱最AWS Key Management Service 佳做法 (PDF)。如需所有 AWS 資源的 IAM 最佳實務,請參閱 IAM 使用者指南中的 IAM 中的安全性最佳實務