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

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

控制對別名的存取

當您建立或變更別名時,會影響別名及其關聯的 KMS 金鑰。因此,管理別名的委託人必須具有對別名和所有受影響之 KMS 金鑰呼叫別名操作的許可。您可以使用金鑰政策IAM 政策授權來提供這些許可。

注意

授予委託人管理標籤和別名的許可時,請務必謹慎。變更標記或別名可允許或拒絕客戶受管金鑰的許可。如需詳細資訊,請參閱 AWS KMS 的 ABAC使用別名來控制對 KMS 金鑰的存取

如需控制對所有 AWS KMS 操作之存取的詳細資訊,請參閱 許可參考

建立和管理別名的許可如下所示。

公里:CreateAlias

若要建立別名,委託人需要別名和相關聯的 KMS 金鑰的下列許可。

  • 別名的 kms:CreateAlias。在連接至允許建立別名之委託人的 IAM 政策中提供此許可。

    下列範例政策陳述式會指定 Resource 元素中的特定別名。但是,您可以列出多個別名 ARN 或指定別名模式,例如 "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 金鑰的 kms:CreateAlias。必須在金鑰政策或在從金鑰政策委派的 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 金鑰。

例如,假設您想要將 test-key 別名從金鑰 ID 為 1234abcd-12ab-34cd-56ef-1234567890ab 的 KMS 金鑰變更為金鑰 ID 為 0987dcba-09fe-87dc-65ba-ab0987654321 的 KMS 金鑰。在這種情況下,請包含類似於本節範例的政策陳述式。

  • 別名的 kms:UpdateAlias。您可以在連接至委託人的 IAM 政策中提供此許可。下列 IAM 政策會指定特定別名。但是,您可以列出多個別名 ARN 或指定別名模式,例如 "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 金鑰的 kms:UpdateAlias。必須在金鑰政策或在從金鑰政策委派的 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 金鑰的 kms:UpdateAlias。必須在金鑰政策或在從金鑰政策委派的 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 金鑰資源之 kms:UpdateAlias 許可的條件索引鍵完整清單,請參閱 AWS KMS 權限

公里:DeleteAlias

若要刪除別名,委託人需要別名和相關聯的 KMS 金鑰的許可。

一如往常,在授予委託人刪除資源的許可時,您應該小心謹慎。不過,刪除別名並不會影響相關聯的 KMS 金鑰。雖然這可能會在依賴別名的應用程式中造成故障,但是如果錯誤地刪除了別名,則您可以重新建立別名。

  • 別名的 kms:DeleteAlias。在連接至允許刪除別名之委託人的 IAM 政策中提供此許可。

    下列範例政策陳述式會指定 Resource 元素中的別名。但是,您可以列出多個別名 ARN 或指定別名模式,例如 "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 金鑰的 kms:DeleteAlias。必須在金鑰政策或在從金鑰政策委派的 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*" }