本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 IAM 权限策略中使用标签
AWS Identity and Access Management (IAM) 是您用来创建和管理权限策略的 AWS 服务,这些策略决定谁可以访问您的 AWS 资源。每次尝试访问 AWS 服务或读写AWS资源均受 IAM policy 的访问控制。
这些策略允许您对资源进行精细访问。您可以使用其中的特征微调此访问权限,即策略的 Condition
元素。可通过该元素指定必须与请求匹配的条件,以确定请求是否可以继续。您可以使用 Condition
元素检查以下内容:
-
附加到发出请求的用户或角色的标签。
-
附加到作为请求对象的资源上的标签。
与标签相关的条件密钥
下表描述了在 IAM 权限策略中可用于根据标签控制访问的条件密钥。通过这些密钥,您可执行以下操作:
-
比较调用操作的主体上的标签。
-
比较作为参数提供给操作的标签。
-
比较操作将访问的资源所附的标签。
有关条件键及其使用方法的详细信息,请参阅条件密钥名称列中链接的页面。
条件密钥名称 | 描述 |
---|---|
将附加到发出请求的主体(IAM 角色或用户)的标签与您在策略中指定的标签进行比较。 |
|
aws:RequestTag | 将请求中作为参数传递的标签密钥/值对与您在策略中指定的标签密钥/值对进行比较。 |
将附加到资源的密钥/值对与您在策略中指定的标签密钥/值对进行比较。 |
|
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 权限策略仅当调用主体被标记与实例相同的 project
标签值时,才会让用户停止正在运行的 Amazon EC2 实例。
{ "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 策略实施基于标签的访问控制策略的更多信息和其他示例,请参阅AWS Identity and Access Management 用户指南中的以下主题:
-
IAM 教程:根据标签定义访问 AWS 资源的权限:展示如何使用多个标签向不同的项目和群组授予访问权限。