标记您的 Amazon IoT Greengrass 资源 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon IoT Greengrass Version 1 2023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅 Amazon IoT Greengrass V1 维护策略。在此日期之后,将 Amazon IoT Greengrass V1 不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上面运行的设备 Amazon IoT Greengrass V1 不会中断,将继续运行并连接到云端。我们强烈建议您迁移到 Amazon IoT Greengrass Version 2,这样可以添加重要的新功能支持其他平台

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

标记您的 Amazon IoT Greengrass 资源

标签可以帮助您组织和管理您的 Amazon IoT Greengrass 组。您可以使用标签将元数据分配给组、批量部署以及添加到组的核心、设备和其他资源。也可以在 IAM 策略中使用标签定义对 Greengrass 资源的条件访问。

注意

目前,Amazon IoT 账单组或成本分配报告不支持 Greengrass 资源标签。

标签基本知识

标签可让您按各种标准(例如用途、所有者和环境)对 Amazon IoT Greengrass 资源进行分类。当您具有相同类型的许多资源时,可以根据附加到资源的标签来快速识别资源。标签包含您定义的一个键和一个可选值。我们建议您为每个资源类型设计一组标签键。使用一组连续的标签键,管理 资源时会更加轻松。例如,您可以为组定义一组标签来以帮助您跟踪核心设备的出厂位置。有关更多信息,请参阅 Amazon 标记策略

Amazon IoT 控制台中的标记支持

您可以在 Amazon IoT 控制台中为 Greengrass Group 资源创建、查看和管理标签。在创建标签之前,请注意标签限制。有关更多信息,请参阅中的《Amazon Web Services 一般参考》中的标签命名和使用惯例

创建组时分配标签

创建组时,可以将标签分配给组。在标签部分下选择添加标签以显示标记输入字段。

从组配置页面查看和管理标签

您可以选择查看设置,从组配置页面查看和管理标签。在组的标签页面上,选择管理标签,以添加、编辑或删除组标签。

Amazon IoT Greengrass API 中的标记支持

您可以使用 Amazon IoT Greengrass API 为支持标记的 Amazon IoT Greengrass 资源创建、列出和管理标签。在创建标签之前,请注意标签限制。有关更多信息,请参阅中的《Amazon Web Services 一般参考》中的标签命名和使用惯例

  • 要在资源创建期间添加标签,请在资源的 tags 属性中定义这些标签。

  • 要在创建资源后添加标签或更新标签值,请使用 TagResource 操作。

  • 要从资源中删除标签,请使用 UntagResource 操作。

  • 要检索与资源关联的标签,请使用 ListTagsForResource 操作或获取资源并检查其 tags 属性。

下表列出了您可以在 Amazon IoT Greengrass API 中标记的资源及其相应的 CreateGet 操作。

使用以下操作可为支持标记的资源列出和管理标签:

您可以随时在资源中添加或删除标签 要更改标签键的值,请将标签添加到定义相同的键和新值的资源。新值将覆盖旧值。您可以将值设为空的字符串,但不能将值设为空值。

在删除一项资源时,与该资源关联的标签也将被删除。

注意

请勿将资源标签与可分配给 Amazon IoT 事物的属性混淆。虽然 Greengrass 核心是 Amazon IoT 事物,但本主题中描述的资源标签将附加到 CoreDefinition 而不是核心事物。

在 IAM policy 中使用标签

在您的 IAM 策略中,您可以使用资源标签来控制用户访问和权限。例如,策略可以允许用户仅创建那些具有特定标签的资源。策略还可以限制用户创建或修改具有特定标签的资源。您可以在创建期间标记资源(称作在创建时标记),因此,您稍后无需运行自定义标记脚本。当启动带标签的新环境时,系统会自动应用相应的 IAM 权限。

可以在策略的 Condition 元素(也称作 Condition 块)中使用以下条件上下文密钥和值。

greengrass:ResourceTag/tag-key: tag-value

允许或拒绝带特定标签的资源上的用户操作。

aws:RequestTag/tag-key: tag-value

要求在发出创建或修改可标记资源的标签的 API 请求时使用(或不使用)特定标签。

aws:TagKeys: [tag-key, ...]

要求在发出创建或修改可标记资源的 API 请求时使用(或不使用)一组特定标签键。

只能在对可标记资源执行的 Amazon IoT Greengrass 操作中使用的条件上下文密钥和值。这些操作将资源作为必需参数。例如,可以在 GetGroupVersion 上设置条件访问。无法在 AssociateServiceRoleToAccount 上设置条件访问,因为请求中未引用可标记资源(例如,组、核心定义或设备定义)。

有关更多信息,请参阅《IAM 用户指南》中的使用标签控制访问IAM JSON 策略引用。JSON 策略参考包含 IAM 中的 JSON 策略的元素、变量和评估逻辑的详细语法、描述和示例。

示例 IAM policies

以下示例策略应用基于标签的权限,这些权限仅允许测试用户操作测试资源。

  • 第一个语句允许 IAM 用户操作仅具有 env=beta 标签的资源。

  • 第二个语句防止 IAM 用户从资源中删除 env=beta 标签。这可以防止用户删除自己的访问权限。

    注意

    如果使用标签控制对资源的访问,则还应管理允许用户添加标签或从这些资源中删除标签的权限。否则,在某些情况下,用户将能够通过修改资源标签来绕过您的限制并获得资源访问权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "greengrass:*", "Resource": "*", "Condition": { "StringEquals": { "greengrass:ResourceTag/env": "beta" } } }, { "Effect": "Deny", "Action": "greengrass:UntagResource", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/env": "beta" } } } ] }

要允许用户在创建时添加标签,您必须向用户授予适当的权限。以下示例策略包括 greengrass:TagResourcegreengrass:CreateGroup 操作的 "aws:RequestTag/env": "beta" 条件,这使得用户仅在为具有 env=beta 的组添加标签时能够创建组。这有效地迫使用户为新组添加标签。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "greengrass:TagResource", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/env": "beta" } } }, { "Effect": "Allow", "Action": "greengrass:CreateGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/env": "beta" } } } ] }

以下代码段说明了如何通过将标签键括在列表中来为其指定多个标签值:

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

另请参阅