本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
控制對別名的存取
建立或變更別名時,會影響別名及其關聯的KMS索引鍵。因此,管理別名的主參與者必須擁有對別名和所有受影響KMS索引鍵呼叫別名作業的權限。您可以使用金鑰原則、原IAM則和授權來提供這些權限。
注意
授予主體管理標籤和別名的許可時,請務必謹慎。變更標記或別名可允許或拒絕客戶受管金鑰的許可。如需詳細資訊,請參閱 AWS KMS 的 ABAC 和 使用別名來控制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原則陳述式提供主體權限,可列出帳戶和 Region 中的所有KMS金鑰和別名。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } }
公里:UpdateAlias
若要變更與別名相關聯的KMS索引鍵,主體需要三個權限元素:一個用於別名、一個用於目前KMS索引鍵,另一個用於新KMS索引鍵。
例如,假設您想要將test-key
別名從KMS金鑰識別碼為金鑰識別碼 1234AB-34B 的金鑰變更為金鑰識別碼為金鑰識別碼 0987 的金鑰。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鍵。例如,您可以使用 kms: ResourceAliases 條件索引鍵,讓主體只有在目標金KMS鑰已有特定別名時才更新別名。如需可用來限制金鑰資源kms:UpdateAlias
權限之條件金鑰的完整清單,請參閱AWS KMS 權限。KMS
公里:DeleteAlias
若要刪除別名,主體需要別名和相關KMS索引鍵的權限。
一如往常,在授予委託人刪除資源的許可時,您應該小心謹慎。但是,刪除別名對關聯的KMS鍵沒有影響。雖然這可能會在依賴別名的應用程式中造成故障,但是如果錯誤地刪除了別名,則您可以重新建立別名。
-
別名的
kms:DeleteAlias
。在附加至允許刪除別名之主參與者的IAM原則中提供此權限。下列範例政策陳述式會指定
Resource
元素中的別名。但是您可以列出多個別名ARNs或指定別名模式"test*"
,例如,您也可以指定Resource
值,"*"
以允許主體刪除帳戶和 Region 中的任何別名。{ "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 condition 金鑰來進一步限制使用金KMS鑰材料金鑰的權限 AWS KMS.
如需可用來限制金鑰資源別名權限之條件金鑰的完整清單,請參閱AWS KMS 權限。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*" }