标记 IAM 资源 - AWS Identity and Access Management

标记 IAM 资源

标签是您分配给 AWS 资源的自定义属性标签。每个标签具有两个部分:

  • 标签键 (例如,CostCenterEnvironmentProjectPurpose)。标签键区分大小写。

  • 一个称为标签值的可选字段(例如,111122223333Production 或团队名称)。省略标签值与使用空字符串相同。与标签键一样,标签值区分大小写。

这些被统称为键-值对。有关 IAM 资源上可以拥有的标签数量的限制,请参阅 IAM 与 AWS STS 配额、名称要求和字符限制

标签有助于您标识和组织 AWS 资源。许多 AWS 服务支持标记,因此,您可以将同一标签分配给来不同服务的资源,以指示这些资源是相关的。例如,您可以将相同的标签分配给为 Amazon S3 存储桶分配的 IAM 角色。有关标记策略的更多信息,请参阅 AWS 一般参考指南中的标记 AWS 资源

除了通过标签标识、组织和跟踪 IAM 资源之外,您还可以在 IAM policy 中使用标签,帮助控制哪些人可以查看并与您的资源交互。要了解有关使用标签控制访问的更多信息,请参阅使用标签控制对 IAM 用户和角色的访问以及他们进行的访问

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

选择 AWS 标签命名约定

当您开始将标签附加到您的 IAM 资源时,请谨慎选择标签命名约定。对您的所有 AWS 标签应用同一约定。如果您在策略中使用标签来控制对 AWS 资源的访问,这一点尤为重要。如果您已在 AWS 中使用标签,请检查您的命名约定并相应地进行调整。

注意

如果您的账户是 AWS Organizations 的成员,请参阅《Organizations 用户指南》中的标签策略,以了解有关在 Organizations 中使用标签的更多信息。

标签命名的最佳实践

以下是标签的一些最佳实践和命名约定。

AWS 标签的名称区分大小写,因此请确保一致地使用它们。例如,标签 CostCentercostcenter 是不同的,因此一个标签可能会被配置为用于财务分析和报告的成本分配标签,而另一个标签可能不会这样配置。同样,Name 标签将出现在 AWS 控制台中,用于很多资源,但 name 标签不会。

许多标签由 AWS 预定义,或由各种 AWS 服务自动创建。很多 AWS 定义的标签名称全部使用小写字母,名称中的单词之间用连字符分隔,前缀用于标识标签的源服务。例如:

  • aws:ec2spot:fleet-request-id 标识启动实例的 Amazon EC2 竞价型实例请求。

  • aws:cloudformation:stack-name 标识创建资源的 AWS CloudFormation 堆栈。

  • elasticbeanstalk:environment-name 标识创建资源的应用程序。

考虑使用全部小写字母命名标签,用连字符分隔单词,并使用前缀标识组织名称或缩写名称。例如,可以虚构一家名为 AnyCompany 的公司,可以定义如下标签:

  • anycompany:cost-center 标识内部成本中心代码

  • anycompany:environment-type 确定环境是开发、测试还是生产环境

  • anycompany:application-id 标识为其创建资源的应用程序

前缀可以确保将标签明确标识为由贵组织定义,而不是由 AWS 或您可能正在使用的第三方工具定义。使用所有小写字母和连字符作为分隔符,可以避免对如何大写标签名称产生混淆。例如,anycompany:project-idANYCOMPANY:ProjectIDanycompany:projectIDAnycompany:ProjectId 更易记。

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

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

命名标签

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

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

区分大小写 - 标签键是否区分大小写根据标记的 IAM 资源的类型而不同。IAM 用户和角色的标签键值不区分大小写,但会保留大小写。这意味着您不能拥有单独的 Departmentdepartment 标签键。如果您已使用 Department=finance 标签标记用户并添加 department=hr 标签,则它会替换第一个标签。不会添加第二个标签。

对于其他 IAM 资源类型,标签键值区分大小写。这意味着您可以有单独的 Costcentercostcenter 标签键。例如,如果您使用 Costcenter = 1234 标签为客户托管的策略添加了标签,并且添加了 costcenter = 5678 标签,策略将同时拥有 Costcentercostcenter 标签键。

作为最佳实践,我们建议您避免使用大小写处理不一致的类似标签。我们建议您确定利用标签的策略,并在所有资源类型中一致地实施该策略。要了解有关标记的最佳实践的更多信息,请参阅 AWS 一般参考中的标记 AWS 资源

以下列表显示了附加到 IAM 资源的标签键在区分大小写方面的差异。

标签键值区分大小写:

  • IAM 角色

  • IAM 用户

标签键值区分大小写。

  • 客户管理型策略

  • 实例配置文件

  • OpenID Connect 身份提供程序

  • SAML 身份提供程序

  • 服务器证书

  • 虚拟 MFA 设备

此外,以下规则适用:

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

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

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

    注意

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

应用和编辑标签

在将标签附加到 IAM 资源时遵循以下约定:

  • 您可以标记大多数 IAM 资源,但不能标记组、代入的角色、访问报告或基于硬件的 MFA 设备。

  • 不能使用标签编辑器标记 IAM 资源。标签编辑器不支持 IAM 标签。有关将标签编辑器与其他服务结合使用的信息,请参阅《AWS Resource Groups 用户指南》中的使用标签编辑器

  • 要标记 IAM 资源,您必须拥有特定权限。要标记或取消标记资源,您还必须有权列出标签。有关详细信息,请参阅本页末尾的每个 IAM 资源的主题列表。

  • AWS 账户中 IAM 资源的数量和大小是有限的。有关更多信息,请参阅IAM 与 AWS 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 值。