

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

# 在 IAM 权限策略中使用标签
<a name="tags-in-iam-policies"></a>

[Amazon Identity and Access Management (IAM) ](https://docs.amazonaws.cn/IAM/latest/UserGuide/) 用于创建和管理权限策略，以确定谁可以访问您的 Amazon 资源。 Amazon Web Services 服务 每次尝试访问 Amazon 服务或读取或写入 Amazon 资源均受到 IAM 策略的访问控制。

这些策略允许您对资源进行精细访问。您可以使用其中的特征微调此访问权限，即策略的 [`Condition`](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_elements_condition.html) 元素。可通过该元素指定必须与请求匹配的条件，以确定请求是否可以继续。您可以使用 `Condition` 元素检查以下内容：
+ 附加到发出请求的用户或角色的标签。
+ 附加到作为请求对象的资源上的标签。

## 标签和基于属性的访问控制
<a name="tagging-and-abac"></a>

标签可以是 Amazon 访问控制策略的重要组成部分。有关在基于属性的访问控制 (ABAC) 策略中使用标签作为属性的信息，请参阅 [ IAM 用户指南中的使用标签](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_tags.html)[控制对 Amazon 资源的访问权限和使用标签](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_iam-tags.html)控制 IAM 用户和角色的访问权限。* *

[IAM 教程：根据*Amazon Identity and Access Management 用户指南中的标签定义访问 Amazon 资源的权限，有一个全面的教程展示了如何使用标签授予对不同项目和群组*](https://docs.amazonaws.cn/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)的访问权限。

如果您使用 SAML-based 身份提供商 (IdP) 进行单点登录，则可以为代入的角色附加标签，为用户提供访问权限。有关更多信息，请参阅 [IAM 教程：](https://docs.amazonaws.cn/IAM/latest/UserGuide/tutorial_abac-saml.html)在*Amazon Identity and Access Management 《用户指南》*中将 SAML 会话标签用于 ABAC。

## Tag-related 条件键
<a name="tags-condition-keys"></a>

下表描述了在 IAM 权限策略中可用于根据标签控制访问的条件密钥。通过这些密钥，您可执行以下操作：
+ 比较调用操作的主体上的标签。
+ 比较作为参数提供给操作的标签。
+ 比较操作将访问的资源所附的标签。

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


| 条件密钥名称 | 说明 | 
| --- | --- | 
| [aws:PrincipalTag](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) | 将附加到发出请求的主体（IAM 角色或用户）的标签与您在策略中指定的标签进行比较。 | 
| [aws:RequestTag](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag) | 将请求中作为参数传递的标签密钥/值对与您在策略中指定的标签密钥/值对进行比较。 | 
| [aws:ResourceTag](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag) | 将附加到资源的密钥/值对与您在策略中指定的标签密钥/值对进行比较。 | 
| [aws:TagKeys](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) | 只将请求中的标签密钥与您在策略中指定的密钥进行比较。 | 

## 使用标签的 IAM 策略示例
<a name="tags-iam-policy-examples"></a>

**Example 示例 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}"}
            }
        }
    ]
}
```

**Example 示例 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）](https://docs.amazonaws.cn/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) 的示例。有关使用 IAM 策略实施基于标签的访问控制策略的更多信息和其他示例，请参阅*Amazon Identity and Access Management 用户指南*中的以下主题：  
+ [使用标签控制对 Amazon 资源的访问权限 ](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_tags.html)
+ [使用标签控制对 IAM 用户和角色的访问以及他们进行的访问](https://docs.amazonaws.cn/IAM/latest/UserGuide/access_iam-tags.html)
+ [IAM 教程：根据标签定义访问 Amazon 资源的权限 ](https://docs.amazonaws.cn/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) — 演示如何使用多个标签向不同的项目和群组授予访问权限。