标记 IAM 用户和角色 - AWS Identity and Access Management

标记 IAM 用户和角色

您可以使用 IAM 标签通过标签–键值对向 IAM 实体(用户或角色)添加自定义属性。例如,要向用户添加位置信息,您可以添加标签键 location 和标签值 us_wa_seattle。或者,也可以使用三种单独的位置标签键–值对:loc-country = usloc-state = waloc-city = seattle。您可以使用标签控制实体对资源的访问权限或控制可附加到实体的标签。要了解有关使用标签控制访问的更多信息,请参阅使用 IAM 资源标签控制对 IAM 用户和角色的访问以及他们进行的访问

您还可以在 AWS STS 中使用标签,以在代入角色或联合用户身份时添加自定义属性。有关更多信息,请参阅在 AWS STS 中传递会话标签

选择 AWS 标签命名约定

当您开始将标签附加到您的 IAM 用户和角色时,请谨慎选择标签命名约定。对您的所有 AWS 标签应用同一约定。如果您在策略中使用标签来控制对 AWS 资源的访问,这一点尤为重要。如果您已在 AWS 中使用标签,请检查您的命名约定并相应地进行调整。要了解有关添加标签的类别和策略的更多信息,请参阅 AWS General Reference 指南中的为 AWS 资源添加 AWS 标签。要查看添加标签的使用案例和最佳实践,请下载添加标签最佳实践白皮书。

在 IAM 和 AWS STS 中进行标记的规则

大量约定管理 IAM 和 AWS STS 中标签的创建和应用。

命名标签

为 IAM 用户、IAM 角色、AWS STS 代入角色会话和 AWS STS 联合身份用户会话制定标签命名约定时,请遵守以下约定:

  • 标签键和值可以包含字母、数字、空格以及 _ . : / = + - @ . 符号的任意组合。

  • 标签–键值对不区分大小写,但保留大小写。这意味着您不能拥有单独的 Departmentdepartment 标签键。如果您已使用 Department=foo 标签标记用户并添加 department=bar 标签,则它会替换第一个标签。不会添加第二个标签。

  • 您不能创建以文本 aws: 开头的标签键或值。此标签前缀将保留以供 AWS 内部使用。

  • 您可以使用空值创建标签(如 phoneNumber = )。不能创建空标签键。

  • 您不能在单个标签中指定多个值,但可以在单个值中创建自定义多值结构。例如,假设用户 Zhang 在工程团队和 QA 团队工作。如果附加 team = Engineering 标签,然后附加 team = QA 标签,则会将标签的值将从 Engineering 更改为 QA。相反,您可以使用自定义分隔符在单个标签中包含多个值。在此示例中,您可以将 team = Engineering:QA 标签附加到 Zhang。

    注意

    在此示例中,要使用 team 标签控制对工程师的访问,您必须创建一个允许每个可能包含 Engineering(包括 Engineering:QA)的配置的策略。要了解有关在策略中使用标签的更多信息,请参阅使用 IAM 资源标签控制对 IAM 用户和角色的访问以及他们进行的访问

应用和编辑标签

在将标签附加到 IAM 实体(用户或角色)时遵循以下约定:

  • 您可以标记用户或角色,但不能标记组或策略。

  • 不能使用标签编辑器标记 IAM 实体。标签编辑器不支持 IAM 标签。有关在其他服务中使用标签编辑器的信息,请参阅 AWS 管理控制台用户指南 中的使用标签编辑器

  • 要标记 IAM 实体,您必须拥有特定权限。要标记或取消标记角色和用户,您还必须有权列出标签。有关更多信息,请参阅下面的标记 IAM 实体所需的权限

  • AWS 账户中 IAM 资源的数量和大小受到限制。有关更多信息,请参阅IAM 和 STS 配额

  • 您可以将同一标签应用于多个 IAM 实体。例如,假设您有一个名为 AWS_Development 部门,有 12 位成员。您可以让 12 位用户和一个角色具有标签键 department 以及值 awsDevelopment (department = awsDevelopment)。您还可以在其他支持标记的服务中的资源上使用相同标签。

  • 一个 IAM 实体不能具有同一标签键的多个实例。例如,如果您有一个标签–键值对为 costCenter = 1234 的用户,则可以附加标签–键值对 costCenter = 5678。IAM 会将 costCenter 标签的值更新为 5678

  • 要编辑附加到 IAM 用户或角色的标签,请附加具有新值的标签以覆盖现有标签。例如,假设您有一个标签–键值对为 department = Engineering 的用户。如果需要将该用户移动到 QA 部门,则可将 department = QA 标签键–值对附加到该用户。这将导致 department 标签键的 Engineering 值被替换为 QA 值。

标记 IAM 实体所需的权限

您必须配置权限以允许 IAM 实体(用户或角色)标记其他实体。您可以在 IAM 策略中指定以下一项或所有 IAM 标签操作:

  • iam:ListRoleTags

  • iam:ListUserTags

  • iam:TagRole

  • iam:TagUser

  • iam:UntagRole

  • iam:UntagUser

允许 IAM 实体为特定用户添加、列出或删除标签

将以下语句添加到需要管理标签的 IAM 实体的权限策略。使用您的账号并将 <username> 替换为需要管理的用户的名称。要了解如何使用该示例 JSON 策略文档创建策略,请参阅在“JSON”选项卡上创建策略

{ "Effect": "Allow", "Action": [ "iam:ListUserTags", "iam:TagUser", "iam:UntagUser" ], "Resource": "arn:aws:iam:*:<account-number>:user/<username>" }

允许 IAM 用户自行管理标签

将以下语句添加到用户的权限策略以允许用户管理其自己的标签。要了解如何使用该示例 JSON 策略文档创建策略,请参阅在“JSON”选项卡上创建策略

{ "Effect": "Allow", "Action": [ "iam:ListUserTags", "iam:TagUser", "iam:UntagUser" ], "Resource": "arn:aws:iam:*:user/${aws:username}" }

允许 IAM 实体将标签添加到特定用户

将以下语句添加到需要为特定用户添加而不是删除标签的 IAM 实体的权限策略。

注意

iam:AddRoleTagsiam:AddUserTags 操作要求您还包含 iam:ListRoleTagsiam:ListUserTags 操作。

要使用此策略,请将 <username> 替换为需要管理的用户的名称。要了解如何使用该示例 JSON 策略文档创建策略,请参阅在“JSON”选项卡上创建策略

{ "Effect": "Allow", "Action": [ "iam:ListUserTags", "iam:TagUser" ], "Resource": "arn:aws:iam:*:<account-number>:user/<username>" }

允许 IAM 实体为特定角色添加、列出或删除标签

将以下语句添加到需要管理标签的 IAM 实体的权限策略。将 <rolename> 替换为需要管理的角色的名称。要了解如何使用该示例 JSON 策略文档创建策略,请参阅在“JSON”选项卡上创建策略

{ "Effect": "Allow", "Action": [ "iam:ListRoleTags", "iam:TagRole", "iam:UntagRole" ], "Resource": "arn:aws:iam:*:<account-number>:role/<rolename>" }

或者,也可以使用 AWS 托管策略(如 IAMFullAccess)来提供对 IAM 的完全访问权限。

管理 IAM 实体的标签(控制台)

您可以从 AWS 管理控制台管理 IAM 用户或角色的标签。

管理用户或角色的标签(控制台)

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.aws.amazon.com/iam/

  2. 在控制台的导航窗格中,选择 Roles (角色)Users (用户),然后选择要编辑的实体的名称。

  3. 选择 Tags (标签) 选项卡,然后完成下列操作之一:

    • 如果实体还没有标签,请选择 Add tags (添加标签)

    • 选择 Edit tags (编辑标签) 来管理一组现有的标签。

  4. 添加或删除标签以完成标签集。然后选择 Save changes (保存更改)

管理 IAM 实体的标签(AWS CLI 或 AWS API)

您可以为 IAM 用户和角色列出、附加或删除标签。您可以使用 AWS CLI 或 AWS API 管理 IAM 用户和角色的标签。

列出当前附加到 IAM 角色的标签(AWS CLI 或 AWS API)

列出当前附加到 IAM 用户的标签(AWS CLI 或 AWS API)

将标签附加到 IAM 角色(AWS CLI 或 AWS API)

将标签附加到 IAM 用户(AWS CLI 或 AWS API)

从 IAM 角色中删除标签(AWS CLI 或 AWS API)

从 IAM 用户中删除标签(AWS CLI 或 AWS API)

有关将标签附加到其他 AWS 服务的资源的信息,请参阅这些服务的文档。

有关使用标签通过 IAM 权限策略设置更精细权限的信息,请参阅 IAM 策略元素:变量和标签