控制對別名的存取 - AWS Key Management Service

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

控制對別名的存取

建立或變更別名時,會影響別名及其關聯的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*" }