AWS IoT Analytics 不再向新客户提供。的现有客户 AWS IoT Analytics 可以继续照常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为资源添加 AWS IoT Analytics 标签
为了方便管理您的通道、数据集、数据存储和管道,您可以选择通过标签的形式为每个资源分配您自己的元数据。本章介绍标签并说明如何创建标签。
标签基本知识
标签使您能够以不同的方式对 AWS IoT Analytics 资源进行分类,例如按用途、所有者或环境进行分类。这在您拥有许多同类型资源时很有用 - 您可以根据分配给资源的标签快速识别特定资源。每个标签都包含您定义的一个键和一个可选值。例如,您可以为通道定义一组标签,以跟踪负责每个通道的消息源的设备类型。我们建议您针对每类资源设计一组标签,以满足您的需要。使用一组连续的标签键,管理 资源时会更加轻松。您可以根据添加的标签搜索和筛选资源。
您还可以使用标签对成本进行分类和跟踪。当您将标签应用于通道、数据集、数据存储或管道时, AWS 会生成一份逗号分隔值 (CSV) 文件形式的成本分配报告,该报告按标签汇总您的使用率和成本。您可以设置代表业务类别 (例如成本中心、应用程序名称或所有者) 的标签,以便整理多种服务的成本。有关对成本分配使用标签的更多信息,请参阅 AWS Billing 用户指南中的使用成本分配标签。
为便于使用,请使用 AWS Billing and Cost Management 控制台中的标签编辑器,它提供了一种集中、统一的方式来创建和管理标签。有关更多信息,请参阅 AWS Management Console入门中的使用标签编辑器。
您也可以使用 AWS CLI 和 AWS IoT Analytics API 处理标签。可在创建标签时将其与通道、数据集、数据存储和管道关联;可在以下命令中使用 Tags (标签) 字段:
您可以为支持标记的现有资源添加、修改或删除标签。使用以下命令:
您可以修改标签的密钥和值,还可以随时删除资源的标签。您可以将标签的值设为空的字符串,但是不能将其设为空值。如果您添加的标签的值与该实例上现有标签的值相同,新的值就会覆盖旧值。如果删除资源,则所有与资源相关的标签都将被删除。
在 IAM 策略中使用标签
您可以在 IAM 策略中将 Condition
元素(也称为 Condition
块)与以下条件上下文键/值一起使用,以根据资源的标签控制用户访问权限(权限):
-
使用
iotanalytics:ResourceTag/<tag-key>: <tag-value>
可允许或拒绝带特定标签的资源上的用户操作。 -
使用
aws:RequestTag/<tag-key>: <tag-value>
可要求在发出创建或修改允许标签的资源的 API 请求时使用(或不使用)特定标签。 -
使用
aws:TagKeys: [<tag-key>, ...]
可要求在发出创建或修改允许标签的资源的 API 请求时使用(或不使用)一组特定标签键。注意
IAM policy 中的条件上下文键/值仅适用于能够标记的资源的标识符是必需参数的那些 AWS IoT Analytics 操作。例如,之所以使用,DescribeLoggingOptions不是allowed/denied on the basis of condition context keys/values因为此请求中未引用任何可标记的资源(频道、数据集、数据存储或管道)。
有关更多信息,请参阅《IAM 用户指南》中的使用标签控制访问。该指南的 IAM JSON 策略参考一节包含 IAM 中的 JSON 策略的元素、变量和评估逻辑的详细语法、描述和示例。
以下示例策略应用两个基于标签的限制。受此策略限制的用户:
-
无法为资源提供标签“env=prod”(请参阅示例中的
"aws:RequestTag/env" : "prod"
行)。 -
无法修改或访问具有现有标签“env=prod”的资源(在示例中,请参阅第
"iotanalytics:ResourceTag/env" : "prod"
行)。
{
"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"]
}
注意
如果您根据标签允许/拒绝用户访问资源,请务必考虑显式拒绝用户在相同资源中添加或删除这些标签的功能。否则,用户可能会修改资源标签以绕过您的限制,并获得该资源的访问权限。
标签限制
下面是适用于标签的基本限制:
-
每个资源的最大标签数 - 50
-
最大密钥长度 - 127 个 Unicode 字符(采用 UTF-8 格式)
-
最大值长度 - 255 个 Unicode 字符(采用 UTF-8 格式)
-
标签键和值区分大小写。
-
请勿
aws: prefix
在标签名称或值中使用,因为它已保留供 AWS 使用。您无法编辑或删除带此前缀的标签名称或值。具有此前缀的标签不计入每个资源的标签数限制。 -
如果标签方案针对多个服务和资源使用,请记得其他服务可能对支持的字符有限制。通常允许使用的字符包括:可用 UTF-8 格式表示的字母、空格和数字以及以下特殊字符 + - = . _ : / @。