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

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

控制对别名的访问

创建或更改别名时,会影响别名及其关联的 CMK。因此,管理别名的委托人必须有权对别名和所有受影响的 调用别名操作CMKs。您可以使用密钥策略IAM 策略授权提供这些权限。

注意

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

有关控制对所有 AWS KMS 操作的访问的信息,请参阅AWS KMS API 权限参考

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

kms:CreateAlias

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

  • 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 (针对)。 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": "*" }

您可以使用 条件键来限制可将别名分配给CMKs的 。例如,您可以使用 kms:CustomerMasterKeySpec 条件键允许委托人仅在非对称 上创建别名CMKs。有关可用于限制 kms:CreateAlias 资源CMK权限的条件键的完整列表,请参阅AWS KMS权限

kms:ListAliases

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

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

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } }

kms:UpdateAlias

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

例如,假设您要将test-key别名从CMK具有密钥 ID 的 更改为1234abcd-12ab-34cd-56ef-1234567890ab具有密钥 ID CMK 的 0987dcba-09fe-87dc-65ba-ab0987654321。在这种情况下,请包含与本部分中的示例类似的策略语句。

  • 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 ,表示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": "*" }

您可以使用 条件键限制 CMKs 操作UpdateAlias中的任一项或两者。例如,您可以使用 kms:ResourceAliases 条件键,仅当目标CMK已具有特定别名时,才允许委托人更新别名。有关可用于限制kms:UpdateAlias资源CMK的权限的条件键的完整列表,请参阅AWS KMS权限

kms:DeleteAlias

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

与往常一样,在向委托人授予删除资源的权限时,您应谨慎使用。但是,删除别名对关联的 没有影响CMK。尽管这可能会导致依赖于别名的应用程序发生故障,但如果您错误地删除了别名,则可以重新创建别名。

  • 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 ,表示关联的 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策略允许 账户和CMKs区域中对 执行别名操作。但是,它使用 kms:CustomerMasterKeyUsage 条件键将权限限制为用于加密和解密CMKs的 。

有关可用于限制CMK资源的别名权限的条件键的完整列表,请参阅AWS 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策略语句的 IAM 元素的值。例如,以下策略语句允许委托人在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*" }