在 IAM 权限策略中使用标签 - 标记 Amazon 资源和标签编辑器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon 已将标签编辑器标签管理功能从 Amazon Resource Groups 控制台移至 Amazon 资源探索器 控制台。使用资源管理器,您可以搜索和筛选资源,然后从单个控制台管理资源标签。要了解有关在资源管理器中管理资源标签的更多信息,请查看资源管理器用户指南中的管理资源。

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

在 IAM 权限策略中使用标签

Amazon Identity and Access Management (IAM) Amazon Web Services 服务 是您用来创建和管理权限策略的工具,这些策略决定谁可以访问您的 Amazon 资源。每次访问 Amazon 服务或读取或写入 Amazon 资源的尝试都受到 IAM 策略的访问控制。

这些策略允许您对资源进行精细访问。您可以使用其中的特征微调此访问权限,即策略的 Condition 元素。可通过该元素指定必须与请求匹配的条件,以确定请求是否可以继续。您可以使用 Condition 元素检查以下内容:

  • 附加到发出请求的用户或角色的标签。

  • 附加到作为请求对象的资源上的标签。

标签和基于属性的访问控制

标签可能是您的 Amazon 访问控制策略的重要组成部分。有关在基于属性的访问控制 (ABAC) 策略中使用标签作为属性的信息,请参阅 IAM 用户指南中的使用标签控制对 Amazon 资源的访问和使用标签控制 IAM 用户和角色的访问权限。

IAM 教程:根据Amazon Identity and Access Management 用户指南中的标签定义访问 Amazon 资源的权限中,有一个全面的教程展示了如何使用标签向不同的项目和群组授予访问权限

如果您使用基于 SAML 的身份提供者(IdP)进行单点登录,则可以将标签附加到为用户提供访问权限的所担任角色上。有关更多信息,请参阅 IAM 教程:Amazon Identity and Access Management 《用户指南》中将 SAML 会话标签用于 ABAC。

与标签相关的条件密钥

下表描述了在 IAM 权限策略中可用于根据标签控制访问的条件密钥。通过这些密钥,您可执行以下操作:

  • 比较调用操作的主体上的标签。

  • 比较作为参数提供给操作的标签。

  • 比较操作将访问的资源所附的标签。

有关条件键及其使用方法的详细信息,请参阅条件密钥名称列中链接的页面。

条件密钥名称 描述

aws:PrincipalTag

将附加到发出请求的主体(IAM 角色或用户)的标签与您在策略中指定的标签进行比较。

aws:RequestTag 将请求中作为参数传递的标签密钥/值对与您在策略中指定的标签密钥/值对进行比较。

aws:ResourceTag

将附加到资源的密钥/值对与您在策略中指定的标签密钥/值对进行比较。

aws:TagKeys 只将请求中的标签密钥与您在策略中指定的密钥进行比较。

使用标签的 IAM 策略示例

例 示例 1:强制用户在创建资源时附加特定标签

以下 IAM 权限策略示例展示了如何强制创建或修改 IAM policy 标签的用户在密钥 Owner 中加入标签。此外,该策略要求将标签的值设置为与调用主体所附加的 Owner 标签相同的值。要使此策略发挥作用,所有主体必须附加 Owner 标签,并且必须阻止用户修改该标签。如果尝试创建或修改策略时未包含 Owner 标签,则策略将不匹配,不允许进行操作。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TagCustomerManagedPolicies", "Effect": "Allow", "Action": [ "iam:CreatePolicy", "iam:TagPolicy" ], "Resource": "arn:aws:iam::123456789012:policy/*", "Condition": { "StringEquals": {"aws:RequestTag/Owner": "${aws:PrincipalTag/Owner}"} } } ] }
例 示例 2:使用标签限制“所有者”对资源的访问权限

以下示例 IAM 权限策略允许用户停止正在运行的 Amazon EC2 实例,前提是调用委托人使用与该实例相同的project标签值进行标记。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "ec2:StopInstances" ], "Resource": [ "arn:aws:iam::123456789012:instance/*" ], "Condition": { "StringEquals": {"aws:ResourceTag/project": "${aws:PrincipalTag/project}"} } } ] }

此例为基于属性的访问权限控制(ABAC) 的示例。有关使用 IAM 策略实施基于标签的访问控制策略的更多信息和其他示例,请参阅Amazon Identity and Access Management 用户指南中的以下主题: