

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

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

# 为资源添加 AWS IoT Analytics 标签
<a name="tagging"></a>

为了方便管理您的通道、数据集、数据存储和管道，您可以选择通过标签的形式为每个资源分配您自己的元数据。本章介绍标签并说明如何创建标签。

**Topics**
+ [标签基本知识](#tagging-basics)
+ [在 IAM 策略中使用标签](#tagging-iam)
+ [标签限制](#tagging-restrictions)

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

标签使您能够以不同的方式对 AWS IoT Analytics 资源进行分类，例如按用途、所有者或环境进行分类。这在您拥有许多同类型资源时很有用 - 您可以根据分配给资源的标签快速识别特定资源。每个标签都包含您定义的一个键和一个可选值。例如，您可以为通道定义一组标签，以跟踪负责每个通道的消息源的设备类型。我们建议您针对每类资源设计一组标签，以满足您的需要。使用一组连续的标签键，管理 资源时会更加轻松。您可以根据添加的标签搜索和筛选资源。

您还可以使用标签对成本进行分类和跟踪。当您将标签应用于通道、数据集、数据存储或管道时， AWS 会生成一份逗号分隔值 (CSV) 文件形式的成本分配报告，该报告按标签汇总您的使用率和成本。您可以设置代表业务类别 (例如成本中心、应用程序名称或所有者) 的标签，以便整理多种服务的成本。有关对成本分配使用标签的更多信息，请参阅 [AWS Billing 用户指南](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html)中的[使用成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

为便于使用，请使用 AWS 账单与成本管理 控制台中的**标签编辑器**，该编辑器提供了一种集中、统一的方式来创建和管理标签。有关更多信息，请参阅 [AWS 管理控制台入门](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/getting-started.html)中的[使用标签编辑器](https://docs.aws.amazon.com/ARG/latest/userguide/tag-editor.html)。

您也可以使用 AWS CLI 和 AWS IoT Analytics API 处理标签。可在创建标签时将其与通道、数据集、数据存储和管道关联；可在以下命令中使用 *Tags (标签)* 字段：
+ [CreateChannel](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-createchannel)
+ [CreateDataset](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-createdataset)
+ [CreateDatastore](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-createdatastore)
+ [CreatePipeline](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-createpipeline)

您可以为支持标记的现有资源添加、修改或删除标签。使用以下命令：
+ [TagResource](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-tagresource)
+ [ListTagsForResource](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-listtagsforresource)
+ [UntagResource](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-untagresource)

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

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

您可以在 IAM 策略 keys/values 中使用具有以下条件上下文的`Condition`元素（也称为`Condition`区块），根据资源的标签控制用户访问权限（权限）：
+ 使用 `iotanalytics:ResourceTag/<tag-key>: <tag-value>` 可允许或拒绝带特定标签的资源上的用户操作。
+ 使用 `aws:RequestTag/<tag-key>: <tag-value>` 可要求在发出创建或修改允许标签的资源的 API 请求时使用（或不使用）特定标签。
+ 使用 ` aws:TagKeys: [<tag-key>, ...]` 可要求在发出创建或修改允许标签的资源的 API 请求时使用（或不使用）一组特定标签键。
**注意**  
IAM 策略 keys/values 中的条件上下文仅适用于那些能够被标记的资源的标识符是必填参数的 AWS IoT Analytics 操作。例如，使用[DescribeLoggingOptions](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-describeloggingoptions)不是 allowed/denied 基于条件上下文， keys/values 因为此请求中未引用任何可标记的资源（频道、数据集、数据存储或管道）。

有关更多信息，请参阅《IAM 用户指南》**中的[使用标签控制访问](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 策略的元素、变量和评估逻辑的详细语法、描述和示例。

以下示例策略应用两个基于标签的限制。受此策略限制的用户：

1. 无法为资源提供标签“env=prod”（请参阅示例中的 `"aws:RequestTag/env" : "prod"` 行）。

1. 无法修改或访问具有现有标签“env=prod”的资源（在示例中，请参阅第 `"iotanalytics:ResourceTag/env" : "prod"` 行）。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" :
  [
    {
      "Effect" : "Deny",
      "Action" : "iotanalytics:*",
      "Resource" : "*",
      "Condition" : {
        "StringEquals" : {
          "aws:RequestTag/env" : "prod"
        }
      }
    },
    {
      "Effect" : "Deny",
      "Action" : "iotanalytics:*",
      "Resource" : "*",
      "Condition" : {
        "StringEquals" : {
          "iotanalytics:ResourceTag/env" : "prod"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "iotanalytics:*"
      ],
      "Resource": "*"
    }
  ]
}
```

------

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

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

**注意**  
如果您的 allow/deny 用户基于标签访问资源，请务必考虑明确拒绝用户在相同资源中添加或移除这些标签。否则，用户可能会修改资源标签以绕过您的限制，并获得该资源的访问权限。

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

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