控制对别名的访问 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

控制对别名的访问

创建或更改别名时,会影响别名及其关联的 CMK。因此,管理别名的承担者必须具有对别名和所有受影响的 CMK 调用别名操作的权限。您可以通过使用密钥策略IAM 策略Grants.

注意

授予委托人管理标签和别名的权限时要谨慎。更改标签或别名可以允许或拒绝对 CMK 的权限。有关详细信息,请参阅 使用 ABACAmazon KMS使用别名控制对 CMK 的访问

有关控制对所有Amazon KMS操作,请参阅Amazon KMS API 权限参考.

创建和管理别名的权限如下所示。

KMS: 创建别名

要创建别名,委托人需要对别名和关联的 CMK 具有以下权限。

  • 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:CreateAlias的 CMK。此权限必须在密钥策略中提供,或者在密钥策略委派的 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": "*" }

您可以使用条件键限制可以为其分配别名的 CMK。例如,您可以使用kms:CustomerMasterKeySpec条件键,以允许委托人仅在非对称 CMK 上创建别名。有关条件密钥的完整列表,可用于限制kms:CreateAlias权限,请参阅Amazon KMS 权限.

kms:ListAliases

要列出账户和区域中的别名,委托人必须具有kms:ListAliases权限。由于此策略与任何特定 CMK 或别名资源无关,因此策略中资源元素的值必须是"*".

例如,以下 IAM 策略声明授予委托人列出账户和区域中所有 CMK 和别名的权限。

{ "Sid": "ListPermissions", "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } }

KMS: 更新别名

要更改与别名关联的 CMK,委托人需要三个权限元素:一个用于别名,一个用于当前 CMK,一个用于新 CMK。

例如,假设您需要更改test-key别名从密钥 ID 为 12ab-12ab-34cd 56ef-12ab-56ef-12ab-ab-ab-ab-ab-ab-ab-ab-ab-ab-ab-ab-ab-ab-ab097654321。在这种情况下,请包括类似于本节中以下示例的策略语句。

  • 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:UpdateAlias对于当前与别名关联的 CMK。此权限必须在密钥策略中提供,或者在密钥策略委派的 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对于操作与别名关联的 CMK。此权限必须在密钥策略中提供,或者在密钥策略委派的 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": "*" }

您可以使用条件键限制UpdateAliasoperation. 例如,您可以使用KMS: 资源别名条件键,以允许承担者仅在目标 CMK 已经具有特定别名时更新别名。有关条件密钥的完整列表,可用于限制kms:UpdateAlias权限的详细信息,请参阅Amazon KMS 权限.

KMS: 删除别名

要删除别名,委托人需要别名和关联 CMK 的权限。

一如既往,在授予委托人删除资源的权限时,您应该谨慎行事。但是,删除别名不会影响关联的 CMK。虽然这可能会导致依赖别名的应用程序出现故障,但如果错误地删除了别名,则可以重新创建别名。

  • kms:DeleteAlias,以获取别名。在附加到允许删除别名的委托人的 IAM 策略中提供此权限。

    以下示例 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:DeleteAlias对于关联的 CMK。此权限必须在密钥策略中提供,或者在密钥策略委派的 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": "*" }

限制别名权限

当资源为 CMK 时,您可以使用条件键限制别名权限。例如,以下 IAM 策略允许在账户和区域中的 CMK 上执行别名操作。但是,它使用kms:CustomerMasterKeyUsage条件键以限制用于加密和解密的 CMK 的权限。

有关可用于限制 CMK 资源的别名权限的条件键的完整列表,请参阅Amazon KMS 权限.

{ "Sid": "IAMPolicyCMKPermissions", "Effect": "Allow", "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Condition": { "StringEquals": { "kms:CustomerMasterKeyUsage": "ENCRYPT_DECRYPT" } } }

您不能在资源为别名的策略语句中使用条件键。若要限制委托人可以管理的别名,请使用Resource元素,用于控制对别名的访问。例如,以下策略语句允许委托人创建、更新或删除 Amazon Web Services 账户 和区域,除非别名以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*" }