本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在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: RequestAlias 或 kms: ResourceAliases 條件金鑰。如需詳細資訊,請參閱 AWS KMS 的 ABAC。
只能在控制別名ARN作業 (例如、或) 存取的政策陳述式中使用別名作為CreateAlias資源DeleteAlias。UpdateAlias如需詳細資訊,請參閱 控制對別名的存取。
-
若要在帳號和區域中指定多個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": "*" } }