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

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

在IAM权限策略中使用标签

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

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

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

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

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

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

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

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

与标签相关的条件密钥

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

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

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

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

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

条件密钥名称 描述

aws:PrincipalTag

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

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

aws:ResourceTag

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

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

使用标签的IAM策略示例

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

以下示例IAM权限策略展示了如何强制创建或修改IAM策略标签的用户在密钥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 用户指南》中的以下主题: