

终止支持通知：2026 年 5 月 20 日， AWS 将终止对的支持。 AWS IoT Events 2026 年 5 月 20 日之后，您将无法再访问 AWS IoT Events 控制台或 AWS IoT Events 资源。有关更多信息，请参阅[AWS IoT Events 终止支持](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html)。

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

# 标记您的资源 AWS IoT Events
<a name="tagging-iotevents"></a>

为了帮助您管理和组织探测器模型和输入，您可以选择将自己的元数据以标签的形式分配给其中每个资源。本部分介绍标签并说明如何创建标签。

## 标签基本知识
<a name="tagging-iotevents-basics"></a>

标签使您能够以不同的方式对 AWS IoT Events 资源进行分类，例如按用途、所有者或环境进行分类。这在您有许多相同类型的资源时会非常有用。您可以根据分配到特定资源的标签来快速识别该资源。

每个标签都包含您定义的一个键和一个可选值。例如，您可为输入定义一系列标签，以帮助您按类型追踪发送这些输入的设备。我们建议您为每类资源创建一组可满足您的需求的标签键。使用一组连续的标签键，管理 资源时会更加轻松。

您可以根据您添加或应用的标签搜索和筛选资源，使用标签分类和追踪成本，还可以使用标签控制对资源的访问权限，如*AWS IoT 《开发者指南》*中的[通过 IAM 策略使用标签](https://docs.aws.amazon.com/iot/latest/developerguide/tagging-iot-iam.html)所述。

为便于使用，中的标签编辑器 AWS 管理控制台 提供了一种集中、统一的方式来创建和管理标签。有关更多信息，请参阅《标签* AWS 资源和标签编辑器用户指南》中的标签编辑器*[入门](https://docs.aws.amazon.com/tag-editor/latest/userguide/gettingstarted.html)。

您也可以使用 AWS CLI 和 AWS IoT Events API 处理标签。创建标签时，您可使用以下命令中的`"Tags"`字段，将标签与探测器模型和输入值关联：
+ [CreateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_CreateDetectorModel.html)
+ [CreateInput](https://docs.aws.amazon.com/iotevents/latest/apireference/API_CreateInput.html)

您可以使用以下命令为支持标记的现有资源添加、修改或删除标签：
+ [TagResource](https://docs.aws.amazon.com/iotevents/latest/apireference/API_TagResource.html)
+ [ListTagsForResource](https://docs.aws.amazon.com/iotevents/latest/apireference/API_ListTagsForResource.html)
+ [UntagResource](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UntagResource.html)

您可以修改标签的键和值，还可以随时删除资源的标签。您可以将标签的值设为空的字符串，但是不能将其设为空值。如果添加的标签的键与该资源上现有标签的键相同，新值就会覆盖旧值。如果删除资源，则所有与资源相关的标签都将被删除。

有关更多信息，请参阅为资源[添加标签 AWS 的最佳实践](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)

### 标签限制
<a name="tagging-iot-restrict"></a>

下面是适用于 标签的基本限制：
+ 每个资源的标签数上限：50
+ 最大键长度 – 127 个 Unicode 字符 (采用 UTF-8 格式)
+ 最大值长度 – 255 个 Unicode 字符 (采用 UTF-8 格式)
+ 标签键和值区分大小写。
+ 请勿在标签名称或值中使用`"aws:"`前缀，因为它已保留供 AWS 使用。您无法编辑或删除带此前缀的标签名称或值。具有此前缀的标签不计入每个资源的标签数限制。
+ 如果标签方案针对多个服务和资源使用，请记得其他服务可能对支持的字符有限制。通常允许使用的字符包括：可用 UTF-8 格式表示的字母、空格和数字以及以下特殊字符：\+ - = . \_ : / @。

## 在 IAM 策略中使用标签
<a name="tagging-iot-iam"></a>

可以在用于 AWS IoT Events API 操作的 IAM 策略中应用基于标签的资源级权限。这可让您更好地控制用户可创建、修改或使用哪些资源。

在 IAM 策略中将 `Condition` 元素（也称作 `Condition` 块）与以下条件上下文键和值结合使用来基于资源标签控制用户访问（权限）：
+ 使用 `aws:ResourceTag/{{<tag-key>}}: {{<tag-value>}}` 可允许或拒绝带特定标签的资源上的用户操作。
+ 使用 `aws:RequestTag/{{<tag-key>}}: {{<tag-value>}}` 可要求在发出创建或修改允许标签的资源的 API 请求时使用（或不使用）特定标签。
+ 使用 `aws:TagKeys: [{{<tag-key>}}, ...]` 可要求在发出创建或修改允许标签的资源的 API 请求时使用（或不使用）一组特定标签键。

**注意**  
IAM 策略中的条件上下文键和值仅适用于能够标记的资源的标识符是必需参数的那些 AWS IoT Events 操作。

*AWS Identity and Access Management 用户指南*中的[使用标签控制访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)包含有关使用标签的额外信息。该指南的 [IAM JSON 策略参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)部分包含 IAM 中的 JSON 策略的元素、变量和评估逻辑的详细语法、描述和示例。

以下策略示例应用两个基于标签的限制。受此策略限制的用户：
+ 无法为资源提供标签“env=prod”（在示例中，请参阅行 `"aws:RequestTag/env" : "prod"`
+ 无法修改或访问具有现有标签“env=prod”的资源（在示例中，请参阅行 `"aws:ResourceTag/env" : "prod"`）。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "iotevents:CreateDetectorModel",
                "iotevents:CreateAlarmModel",
                "iotevents:CreateInput",
                "iotevents:TagResource"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/env": "prod"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "iotevents:DescribeDetectorModel",
                "iotevents:DescribeAlarmModel",
                "iotevents:UpdateDetectorModel",
                "iotevents:UpdateAlarmModel",
                "iotevents:DeleteDetectorModel",
                "iotevents:DeleteAlarmModel",
                "iotevents:ListDetectorModelVersions",
                "iotevents:ListAlarmModelVersions",
                "iotevents:UpdateInput",
                "iotevents:DescribeInput",
                "iotevents:DeleteInput",
                "iotevents:ListTagsForResource",
                "iotevents:TagResource",
                "iotevents:UntagResource",
                "iotevents:UpdateInputRouting"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/env": "prod"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

您还可以为给定标签键指定多个标签值，方法是将它们括在列表中，如下所述。

```
            "StringEquals" : {
              "aws:ResourceTag/env" : ["dev", "test"]
            }
```

**注意**  
如果您基于标签允许或拒绝用户访问资源，则必须考虑显式拒绝用户对相同资源添加或删除这些标签的能力。否则，用户可能通过修改资源标签来绕过您的限制并获得资源访问权限。