在IAM政策陳述式中指定KMS金鑰 - AWS Key Management Service

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

在IAM政策陳述式中指定KMS金鑰

您可以使用IAM原則來允許主體使用或管理KMS金鑰。KMS鍵是在策略語句的Resource元素中指定的。

  • 若要在IAM政策陳述式中指定KMS金鑰,您必須使用其金鑰ARN。您無法使用金鑰識別碼別名名ARN來識別IAM原則陳述式中的KMS金鑰。

    例如:"Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"

    若要根據金KMS鑰別名控制金鑰的存取權,請使用 kms: RequestAliaskms: ResourceAliases 條件金鑰。如需詳細資訊,請參閱 AWS KMS 的 ABAC

    只能在控制別名ARN作業 (例如、或) 存取的政策陳述式中使用別名作為CreateAlias資源DeleteAliasUpdateAlias如需詳細資訊,請參閱 控制對別名的存取

  • 若要在帳號和區域中指定多個KMS金鑰,請在金鑰的「區域」或「資源 ID」位置中使用萬用字元 (*) ARN。

    例如,若要指定帳戶美國西部 (奧勒岡) 區域中的所有KMS金鑰,請使用 "Resource": "arn:aws:kms:us-west-2:111122223333:key/*"。若要指定帳戶所有區域中的所有KMS金鑰,請使用 Resource": "arn:aws:kms:*:111122223333:key/* ""。

  • 若要表示所有KMS金鑰,請單獨使用萬用字元 ("*")。對於不使用任何特定KMS鍵的操作,即、、和 CreateKeyGenerateRandomListAliases,請使用此格式ListKeys

撰寫原則陳述式時,最佳做法是只指定主體需要使用的KMS索引鍵,而不是讓它們存取所有KMS金鑰。

例如,下列IAM原則陳述式允許主體呼叫 DescribeKey, GenerateDataKey, D ecryp t 作業,只有在原則陳述式Resource元素中列出的KMS金鑰。依KMS金鑰指定金鑰 (這是最佳作法) 可確保權限僅限於指定的KMS金鑰。ARN

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "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 帳戶,您可以在「區域」和「關鍵 ID」位置中使用萬用字元 (*)。例如,下列原則陳述式可讓主體呼叫兩個受信任範例帳戶中所有KMS金鑰的指定作業。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:GenerateDataKeyPair" ], "Resource": [ "arn:aws:kms:*:111122223333:key/*", "arn:aws:kms:*:444455556666:key/*" ] } }

您也可以在 Resource 元素中單獨使用萬用字元 ("*")。由於它允許存取帳戶有權使用的所有KMS金鑰,因此建議主要用於沒有特定金KMS鑰的作業和Deny陳述式。您也可以在只允許較不敏感之唯讀操作的政策陳述式中使用它。若要判斷是否 AWS KMS 操作涉及一個特定的KMSKMS鍵,在表的 Resources 列中查找鍵AWS KMS 權限

例如,下列原則陳述式會使用Deny效果來禁止主參與者在任何KMS索引鍵上使用指定的作業。它在元素中使用萬用字Resource元來表示所有KMS鍵。

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "kms:CreateKey", "kms:PutKeyPolicy", "kms:CreateGrant", "kms:ScheduleKeyDeletion" ], "Resource": "*" } }

下列原則陳述式會單獨使用萬用字元來代表所有KMS金鑰。但它只允許不適用於任何特定KMS鍵的不敏感的只讀操作和操作。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:ListKeys", "kms:ListAliases", "kms:ListResourceTags" ], "Resource": "*" } }