本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在IAM政策陳述式中指定KMS金鑰
您可以使用 IAM政策來允許委託人使用或管理KMS金鑰。 KMS 金鑰是在政策陳述式的 Resource
元素中指定。
-
若要在IAM政策陳述式中指定KMS金鑰,您必須使用其金鑰 ARN。您不能使用金鑰 ID、別名名稱或別名ARN來識別IAM政策陳述式中的KMS金鑰。
例如:"
Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
"若要根據索引KMS鍵的別名控制對索引鍵的存取,請使用 kms:RequestAlias 或 kms:ResourceAliases 條件索引鍵。如需詳細資訊,請參閱 ABAC 適用於 AWS KMS。
僅在控制別名操作存取權的政策陳述式中使用別名ARN做為資源,例如 CreateAlias、 UpdateAlias或 DeleteAlias。如需詳細資訊,請參閱 控制對別名的存取。
-
若要在帳戶和區域中指定多個KMS金鑰,請在金鑰 的區域或資源 ID 位置中使用萬用字元 (*)ARN。
例如,若要指定 帳戶在美國西部 (奧勒岡) 區域的所有KMS金鑰,請使用 "
Resource": "arn:aws:kms:us-west-2:111122223333:key/*
"。若要指定帳戶所有區域中的所有KMS金鑰,請使用「Resource": "arn:aws:kms:*:111122223333:key/*
」。 -
若要代表所有KMS金鑰,請單獨使用萬用字元 (
"*"
)。將此格式用於不使用任何特定KMS金鑰的操作,即 CreateKey、GenerateRandom、 ListAliases和 ListKeys。
撰寫政策陳述式時,最佳實務是僅指定委託人需要使用的KMS金鑰,而不是授予他們存取所有KMS金鑰的權限。
例如,下列IAM政策陳述式允許委託人僅在政策陳述式的 Resource
元素中列出的KMS金鑰上呼叫 DescribeKeyGenerateDataKey、、解密操作。依KMS金鑰 指定金鑰ARN,這是最佳實務,可確保許可僅限於指定的KMS金鑰。
{ "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 操作是否涉及特定KMS金鑰,請在 中資料表的資源欄中尋找KMS金鑰值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": "*" } }