Amazon Identity and Access Management 资源的标签
标签是您分配给 Amazon 资源的自定义属性标签。每个标签具有两个部分:
-
标签键 (例如,
CostCenter
、Environment
、Project
或Purpose
)。 -
一个称为标签值的可选字段(例如,
111122223333
、Production
或团队名称)。省略标签值与使用空字符串效果相同。
这些被统称为键-值对。有关 IAM 资源上可以拥有的标签数量的限制,请参阅 IAM 和 Amazon STS 配额。
注意
有关标签键和标签键值区分大小写的详细信息,请参阅 Case sensitivity。
标签有助于您标识和组织 Amazon 资源。许多 Amazon 服务支持标记,因此,您可以将同一标签分配给来不同服务的资源,以指示这些资源是相关的。例如,您可以将相同的标签分配给为 Amazon S3 存储桶分配的 IAM 角色。有关标签添加策略的更多信息,请参阅《用户指南》中的 为 Amazon 资源添加标签。
除了通过标签标识、组织和跟踪 IAM 资源之外,您还可以在 IAM policy 中使用标签,帮助控制哪些人可以查看并与您的资源交互。要了解有关使用标签控制访问的更多信息,请参阅 使用标签控制对 IAM 用户和角色的访问以及他们进行的访问。
您还可以在 Amazon STS 中使用标签,以在代入角色或联合身份用户身份时添加自定义属性。有关更多信息,请参阅 在 Amazon STS 中传递会话标签。
主题
选择 Amazon 标签命名约定
当您开始将标签附加到您的 IAM 资源时,请谨慎选择标签命名约定。对您的所有 Amazon 标签应用同一约定。如果您在策略中使用标签来控制对 Amazon 资源的访问,这一点尤为重要。如果您已在 Amazon 中使用标签,请检查您的命名约定并相应地进行调整。
注意
如果您的账户是 Amazon Organizations 的成员,请参阅《Organizations 用户指南》中的 标签策略,以了解有关在 Organizations 中使用标签的更多信息。
标签命名的最佳实践
以下是标签的一些最佳实践和命名约定。
确保标签名称的使用一致。例如,标签 CostCenter
与 costcenter
是不同的,因此一个标签可能会被配置为用于财务分析和报告的成本分配标签,而另一个标签可能不会这样配置。同样,Name
标签将出现在 Amazon 控制台中,用于很多资源,但 name
标签不会。有关标签键和标签键值区分大小写的详细信息,请参阅 Case sensitivity。
许多标签由 Amazon 预定义,或由各种 Amazon 服务自动创建。很多 Amazon 定义的标签名称全部使用小写字母,名称中的单词之间用连字符分隔,前缀用于标识标签的源服务。例如:
-
aws:ec2spot:fleet-request-id
标识启动实例的 Amazon EC2 竞价型实例请求。 -
aws:cloudformation:stack-name
标识创建资源的 Amazon CloudFormation 堆栈。 -
elasticbeanstalk:environment-name
标识创建资源的应用程序。
考虑使用全部小写字母命名标签,用连字符分隔单词,并使用前缀标识组织名称或缩写名称。例如,可以虚构一家名为 AnyCompany 的公司,可以定义如下标签:
-
anycompany:cost-center
标识内部成本中心代码 -
anycompany:environment-type
确定环境是开发、测试还是生产环境 -
anycompany:application-id
标识为其创建资源的应用程序
前缀可以确保将标签明确标识为由贵组织定义,而不是由 Amazon 或您可能正在使用的第三方工具定义。使用所有小写字母和连字符作为分隔符,可以避免对如何大写标签名称产生混淆。例如,anycompany:project-id
比 ANYCOMPANY:ProjectID
、anycompany:projectID
或 Anycompany:ProjectId
更易记。
在 IAM 和 Amazon STS 中进行标记的规则
大量约定管理 IAM 和 Amazon STS 中标签的创建和应用。
命名标签
为 IAM 资源、Amazon STS 代入角色会话和 Amazon STS 联合身份用户会话制定标签命名约定时,请遵守以下约定:
字符要求 - 标签键和值可以包含字母、数字、空格以及 _ . : / = + - @ 符号的任意组合。
区分大小写 - 标签键是否区分大小写根据标记的 IAM 资源的类型而不同。IAM 用户和角色的标签键值不区分大小写,但会保留大小写。这意味着您不能拥有单独的 Department
和 department
标签键。如果您已使用 Department=finance
标签标记用户并添加 department=hr
标签,则它会替换第一个标签。不会添加第二个标签。
对于其他 IAM 资源类型,标签键值区分大小写。这意味着您可以有单独的 Costcenter
和 costcenter
标签键。例如,如果您使用 Costcenter = 1234
标签为客户托管的策略添加了标签,并且添加了 costcenter =
5678
标签,策略将同时拥有 Costcenter
和 costcenter
标签键。
作为最佳实践,我们建议您避免使用大小写处理不一致的类似标签。我们建议您确定利用标签的策略,并在所有资源类型中一致地实施该策略。要了解有关标记最佳实践的更多信息,请参阅《Amazon Web Services 一般参考》中的 标记 Amazon 资源。
以下列表显示了附加到 IAM 资源的标签键在区分大小写方面的差异。
标签键值不区分大小写:
-
IAM 角色
-
IAM 用户
标签键值区分大小写。
-
客户托管策略
-
实例配置文件
-
OpenID Connect 身份提供程序
-
SAML 身份提供程序
-
服务器证书
-
虚拟 MFA 设备
此外,以下规则适用:
-
您不能创建以文本
aws:
开头的标签键或值。此标签前缀是专为 Amazon 内部使用预留的。 -
您可以使用空值创建标签(如
phoneNumber =
)。不能创建空标签键。 -
您不能在单个标签中指定多个值,但可以在单个值中创建自定义多值结构。例如,假设用户 Zhang 在工程团队和 QA 团队工作。如果附加
team = Engineering
标签,然后附加team = QA
标签,则会将标签的值将从Engineering
更改为QA
。相反,您可以使用自定义分隔符在单个标签中包含多个值。在此示例中,您可以将team = Engineering:QA
标签附加到 Zhang。注意
在此示例中,要使用
team
标签控制对工程师的访问,您必须创建一个允许每个可能包含Engineering
(包括Engineering:QA
)的配置的策略。要了解有关在策略中使用标签的更多信息,请参阅 使用标签控制对 IAM 用户和角色的访问以及他们进行的访问。
应用和编辑标签
在将标签附加到 IAM 资源时遵循以下约定:
-
您可以标记大多数 IAM 资源,但不能标记组、代入的角色、访问报告或基于硬件的 MFA 设备。
-
不能使用标签编辑器标记 IAM 资源。标签编辑器不支持 IAM 标签。有关将标签编辑器与其他服务结合使用的信息,请参阅《Amazon Resource Groups 用户指南》中的 使用标签编辑器。
-
要标记 IAM 资源,您必须拥有特定权限。要标记或取消标记资源,您还必须有权列出标签。有关详细信息,请参阅本页末尾的每个 IAM 资源的主题列表。
-
Amazon 账户中 IAM 资源的数量和大小是有限的。有关更多信息,请参阅 IAM 和 Amazon 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
值。