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

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

控制对标签的访问

要在 AWS KMS 控制台中或使用 API 添加、查看和删除标签,委托人需要标记权限。您可以在 密钥策略中提供这些权限。您还可以在 IAM 策略(包括 VPC 终端节点策略)中提供它们,但前提是密钥策略允许。AWSKeyManagementServicePowerUser 托管策略允许委托人标记、取消标记和列出所有 账户可以访问CMKs的标签。

您还可以通过使用标签的AWS全局条件键来限制这些权限。在 中AWS KMS,这些条件可以控制对标记操作(如 TagResourceUntagResource的访问。

注意

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

有关示例策略和更多信息,请参阅 中的基于标签键控制访问IAM 用户指南

创建和管理标签的权限如下所示。

kms:TagResource

允许委托人添加或编辑标签。要在创建时添加标签CMK,委托人必须在 IAM 策略中具有不限制为特定 的权限CMKs。

kms:ListResourceTags

允许委托人查看 上的标签CMKs。

kms:UntagResource

允许委托人从 中删除标签CMKs。

标记策略中的权限

您可以在密钥策略或 IAM 策略中提供标记权限。例如,以下示例密钥策略为 select 用户提供标记权限CMK。它向所有可以代入示例 Administrator 或 Developer 角色的用户授予查看标签的权限。

{ "Version": "2012-10-17", "Id": "key-policy-example", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow all tagging permissions", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/LeadAdmin", "arn:aws:iam::111122223333:user/SupportLead" ]}, "Action": [ "kms:TagResource", "kms:ListResourceTags", "kms:UntagResource" ], "Resource": "*" }, { "Sid": "Allow roles to view tags", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/Administrator"}, "arn:aws:iam::111122223333:role/Developer"} ]}, "Action": "kms:ListResourceTags", "Resource": "*" } ] }

要为多个 的委托人提供标记权限CMKs,您可以使用 IAM 策略。要使此策略生效,每个策略的密钥策略CMK必须允许账户使用 IAM 策略来控制对 的访问CMK。

例如,以下IAM策略允许委托人创建 CMKs。它还允许他们在CMKs指定账户中的所有 上创建和管理标签。此组合允许委托人在创建 CreateKey 操作时使用其CMK标签参数向 添加标签。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKeys", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource", "kms:ListResourceTags" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } ] }

限制标签权限

您可以使用 策略条件限制标记权限。以下策略条件可应用于 kms:TagResourcekms:UntagResource 权限。例如,您可以使用 aws:RequestTag 条件允许委托人仅添加特定标签,或者阻止委托人添加具有特定标签键的标签。或者,您可以使用 kms:KeyOrigin 条件来防止委托人CMKs使用导入的密钥材料进行标记或取消标记。

作为使用标签控制对 的访问的最佳实践CMKs,请使用 aws:RequestTagaws:TagKeys 条件键来确定允许哪些标签(或标签键)。

例如,以下IAM策略类似于上一个策略。但是,此策略允许委托人仅添加和删除具有标签键的Project标签。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKey", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyViewAllTags", "Effect": "Allow", "Action": "kms:ListResourceTags", "Resource": "arn:aws:kms:*:111122223333:key/*", }, { "Sid": "IAMPolicyManageTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "ForAllValues:StringEquals": {"aws:TagKeys": "Project"} } } ] }