本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
控制對別名的存取
當您建立或變更別名時,會影響別名及其相關聯的KMS金鑰。因此,管理別名的主體必須具有在別名和所有受影響KMS金鑰上呼叫別名操作的許可。您可以使用金鑰政策 、IAM政策和授予 來提供這些許可。
注意
授予主體管理標籤和別名的許可時,請務必謹慎。變更標記或別名可允許或拒絕客戶受管金鑰的許可。如需詳細資訊,請參閱 ABAC 適用於 AWS KMS 和 使用別名來控制對KMS金鑰的存取。
如需控制所有 AWS KMS 操作存取的資訊,請參閱 許可參考。
建立和管理別名的許可如下所示。
公里:CreateAlias
若要建立別名,主體需要別名和相關聯KMS金鑰的下列許可。
-
別名的
kms:CreateAlias
。在連接到允許建立別名之主體IAM的政策中提供此許可。下列範例政策陳述式會指定
Resource
元素中的特定別名。但是,您可以列出多個別名ARNs或指定別名模式,例如「test*」。您也可以指定"*"
的Resource
值以允許委託人在帳戶和區域中建立任何別名。建立別名的許可也可以包含在帳戶和區域中所有資源的kms:Create*
許可中。{ "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
-
kms:CreateAlias
KMS金鑰。此許可必須在金鑰政策或從金鑰政策委派IAM的政策中提供。{ "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:CreateAlias", "kms:DescribeKey" ], "Resource": "*" }
您可以使用條件索引鍵來限制可與別名建立關聯的KMS索引鍵。例如,您可以使用 kms:KeySpec 條件索引鍵,允許主體僅在非對稱索引KMS鍵上建立別名。如需可用來限制KMS金鑰資源kms:CreateAlias
許可的條件金鑰完整清單,請參閱 AWS KMS 許可。
公里:ListAliases
若要列出帳戶和區域中的別名,主體必須具有IAM政策中的kms:ListAliases
許可。由於此政策與任何特定KMS金鑰或別名資源無關,因此政策中的資源元素值必須為 "*"。
例如,下列IAM政策陳述式授予主體許可,以列出帳戶和區域中的所有KMS金鑰和別名。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } }
公里:UpdateAlias
若要變更與別名相關聯的KMS金鑰,主體需要三個許可元素:一個用於別名,一個用於目前KMS金鑰,另一個用於新KMS金鑰。
例如,假設您想要將別名從金鑰 ID 為 1234abcd-12ab-34cd-56ef-1234567890ab test-key
的KMS金鑰變更為金鑰 ID 為 0987dcba-09fe-87dc-65ba-ab0987654321 的KMS金鑰。在這種情況下,請包含類似於本節範例的政策陳述式。
-
別名的
kms:UpdateAlias
。您可以在連接至主體IAM的政策中提供此許可。下列IAM政策指定特定別名。但是,您可以列出多個別名ARNs或指定別名模式,例如"test*"
。您也可以指定"*"
的Resource
值以允許委託人更新帳戶和區域中的任何別名。{ "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:UpdateAlias", "kms:ListAliases", "kms:ListKeys" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
-
kms:UpdateAlias
目前與別名相關聯的KMS金鑰。此許可必須在金鑰政策或從金鑰政策委派IAM的政策中提供。{ "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:UpdateAlias", "kms:DescribeKey" ], "Resource": "*" }
-
kms:UpdateAlias
操作與別名相關聯的KMS金鑰。此許可必須在金鑰政策或從金鑰政策委派IAM的政策中提供。{ "Sid": "Key policy for 0987dcba-09fe-87dc-65ba-ab0987654321", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:UpdateAlias", "kms:DescribeKey" ], "Resource": "*" }
您可以使用條件索引鍵來限制 UpdateAlias
操作中的其中一個或兩個KMS索引鍵。例如,您可以使用 km:ResourceAliases 條件索引鍵,允許主體僅在目標KMS索引鍵已有特定別名時更新別名。如需可用來限制KMS金鑰資源kms:UpdateAlias
許可條件金鑰的完整清單,請參閱 AWS KMS 許可。
公里:DeleteAlias
若要刪除別名,主體需要別名和相關聯KMS金鑰的許可。
一如往常,在授予委託人刪除資源的許可時,您應該小心謹慎。不過,刪除別名不會影響相關聯的KMS金鑰。雖然這可能會在依賴別名的應用程式中造成故障,但是如果錯誤地刪除了別名,則您可以重新建立別名。
-
別名的
kms:DeleteAlias
。在連接到允許刪除別名之主體IAM的政策中提供此許可。下列範例政策陳述式會指定
Resource
元素中的別名。但是,您可以列出多個別名ARNs或指定別名模式,例如"test*"
,您也可以指定Resource
的值"*"
,以允許主體刪除帳戶和區域中的任何別名。{ "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
-
kms:DeleteAlias
相關聯的KMS金鑰。此許可必須在金鑰政策或從金鑰政策委派IAM的政策中提供。{ "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/KMSAdminUser" }, "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias", "kms:DescribeKey" ], "Resource": "*" }
限制別名許可
當資源為金鑰時,您可以使用條件KMS金鑰來限制別名許可。例如,下列IAM政策允許特定帳戶和區域中KMS金鑰的別名操作。不過,它會使用 kms:KeyOrigin 條件索引鍵,進一步將許可限制為具有 KMS索引鍵材料的索引鍵 AWS KMS。
如需可用來限制金鑰資源別名許可的條件KMS金鑰完整清單,請參閱 AWS KMS 許可。
{ "Sid": "IAMPolicyKeyPermissions", "Effect": "Allow", "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_KMS" } } }
您無法在資源為別名的政策陳述式中使用條件索引鍵。若要限制主體可以管理的別名,請使用控制別名存取的政策IAM陳述式Resource
元素值。例如,下列政策陳述式允許主體在 AWS 帳戶 和 區域中建立、更新或刪除任何別名,除非別名以 開頭Restricted
。
{ "Sid": "IAMPolicyForAnAliasAllow", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/*" }, { "Sid": "IAMPolicyForAnAliasDeny", "Effect": "Deny", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/Restricted*" }