Amazon IoT SiteWise 基于身份的策略 - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon IoT SiteWise 基于身份的策略

IAM 策略允许您控制谁能在中做什么 Amazon IoT SiteWise。您可以决定允许或不允许哪些操作,并为这些操作设置具体条件。例如,您可以制定规则,规定谁可以查看或更改中的信息 Amazon IoT SiteWise。 Amazon IoT SiteWise 支持特定的操作、资源和条件键。要了解在 JSON 策略中使用的所有元素,请参阅《IAM 用户指南》中的 IAM JSON 策略元素参考

策略操作

管理员可以使用 Amazon JSON 策略来指定谁有权访问什么。也就是说,哪个主体 可以对什么资源 执行操作,以及在什么 条件 下执行。

JSON 策略的 Action 元素描述可用于在策略中允许或拒绝访问的操作。策略操作通常与关联的 Amazon API 操作同名。有一些例外情况,例如没有匹配 API 操作的仅限权限 操作。还有一些操作需要在策略中执行多个操作。这些附加操作称为相关操作

在策略中包含操作以授予执行关联操作的权限。

正在执行的策略操作在操作前 Amazon IoT SiteWise 使用以下前缀:iotsitewise:. 例如,要授予某人BatchPutAssetPropertyValue通过 API 操作将资产属性数据上传到 Amazon IoT SiteWise 的权限,您可以将该iotsitewise:BatchPutAssetPropertyValue操作包含在他们的策略中。策略声明必须包含ActionNotAction元素。 Amazon IoT SiteWise 定义了自己的一组操作,这些操作描述了您可以使用此服务执行的任务。

要在单个语句中指定多项 操作,请使用逗号将它们隔开,如下所示。

"Action": [ "iotsitewise:action1", "iotsitewise:action2" ]

您也可以使用通配符 (*) 指定多个操作。例如,要指定以单词 Describe 开头的所有操作,请包括以下操作。

"Action": "iotsitewise:Describe*"

要查看 Amazon IoT SiteWise 操作列表,请参阅 IAM 用户指南 Amazon IoT SiteWise中的定义操作

BatchPutAssetPropertyValue 授权

Amazon IoT SiteWise 以一种不寻常的方式授权访问BatchPutAssetPropertyValue操作。对于大多数操作,当您允许或拒绝访问时,如果未授予权限,则该操作会返回错误。使用BatchPutAssetPropertyValue,您可以在单个 API 请求中向不同的资产和资产属性发送多个数据条目。 Amazon IoT SiteWise 对每个数据输入进行独立授权。对于请求中未通过授权的任何单个条目, Amazon IoT SiteWise 请在返回的错误列表AccessDeniedException中包含一个。 Amazon IoT SiteWise 接收任何授权并成功的条目的数据,即使同一请求中的另一个条目失败也是如此。

重要

在将数据提取到数据流之前,请执行以下操作:

  • 如果您使用属性别名来标识数据流,则对time-series资源进行授权。

  • 如果您使用资产 ID 来标识包含关联资产属性的资产,则对asset资源进行授权。

策略资源

管理员可以使用 Amazon JSON 策略来指定谁有权访问什么。也就是说,哪个主体 可以对什么资源 执行操作,以及在什么条件 下执行。

Resource JSON 策略元素指定要向其应用操作的一个或多个对象。语句必须包含 ResourceNotResource 元素。作为最佳实践,请使用其 Amazon 资源名称(ARN)指定资源。对于支持特定资源类型(称为资源级权限)的操作,您可以执行此操作。

对于不支持资源级权限的操作(如列出操作),请使用通配符 (*) 指示语句应用于所有资源。

"Resource": "*"

每个 IAM policy 语句适用于您使用资源的 ARN 指定的资源。ARN 具有以下一般语法。

arn:${Partition}:${Service}:${Region}:${Account}:${ResourceType}/${ResourcePath}

有关 ARN 格式的更多信息,请参阅 A mazon 资源名称 (ARN) 和 Amazon 服务命名空间。

例如,要在语句中指定 ID 为 a1b2c3d4-5678-90ab-cdef-22222EXAMPLE 的资产,请使用以下 ARN。

"Resource": "arn:aws:iotsitewise:region:123456789012:asset/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE"

要指定属于特定账户的所有数据流,请使用通配符 (*):

"Resource": "arn:aws:iotsitewise:region:123456789012:time-series/*"

要指定属于特定账户的所有资产,请使用通配符 (*):

"Resource": "arn:aws:iotsitewise:region:123456789012:asset/*"

某些 Amazon IoT SiteWise 操作(例如创建资源的操作)无法对特定资源执行。在这些情况下,您必须使用通配符 (*)。

"Resource": "*"

要在单个语句中指定多个资源,请使用逗号分隔 ARN。

"Resource": [ "resource1", "resource2" ]

要查看 Amazon IoT SiteWise 资源类型及其 ARN 的列表,请参阅 IAM 用户指南 Amazon IoT SiteWise中的由定义的资源。要了解您可以在哪些操作中指定每个资源的 ARN,请参阅 Amazon IoT SiteWise定义的操作

策略条件键

管理员可以使用 Amazon JSON 策略来指定谁有权访问什么。也就是说,哪个主体可以对什么资源执行操作,以及在什么条件下执行。

Condition 元素(或 Condition )中,可以指定语句生效的条件。Condition 元素是可选的。您可以创建使用条件运算符(例如,等于或小于)的条件表达式,以使策略中的条件与请求中的值相匹配。

如果您在一个语句中指定多个 Condition 元素,或在单个 Condition 元素中指定多个键,则 Amazon 使用逻辑 AND 运算评估它们。如果您为单个条件键指定多个值,则使用逻辑OR运算来 Amazon 评估条件。在授予语句的权限之前必须满足所有的条件。

在指定条件时,您也可以使用占位符变量。例如,只有在使用 IAM 用户名标记 IAM 用户时,您才能为其授予访问资源的权限。有关更多信息,请参阅《IAM 用户指南》中的 IAM 策略元素:变量和标签

Amazon 支持全局条件密钥和特定于服务的条件密钥。要查看所有 Amazon 全局条件键,请参阅 IAM 用户指南中的Amazon 全局条件上下文密钥

重要

许多条件键是特定于某个资源的,而某些 API 操作会使用多个资源。如果您使用条件键编写策略语句,请使用该语句的 Resource 元素指定要将该条件键应用于的资源。如果您没有这样做,该策略可能会完全阻止用户执行操作,因为针对未应用条件键的资源的条件检查失败。如果您不想指定资源,或者如果您已将策略的 Action 元素编写为包含多个 API 操作,则必须使用 ...IfExists 条件类型以确保对不使用条件键的资源忽略条件键。有关更多信息,请参阅... IfExists IAM 用户指南中的条件

Amazon IoT SiteWise 定义自己的条件键集,还支持使用一些全局条件键。要查看所有 Amazon 全局条件键,请参阅 IAM 用户指南中的Amazon 全局条件上下文密钥

Amazon IoT SiteWise 条件键
条件键 描述 类型
iotsitewise:isAssociatedWithAssetProperty

数据流是否与资产属性相关联。使用此条件键根据数据流的关联资产属性的存在来定义权限。

示例值: true

字符串
iotsitewise:assetHierarchyPath

资产的层次结构路径,它是一个资产 ID 字符串,其中每个 ID 由一个正斜杠分隔开。使用此条件键可根据您账户中所有资产的层次结构子集来定义权限。

示例值: /a1b2c3d4-5678-90ab-cdef-22222EXAMPLE/a1b2c3d4-5678-90ab-cdef-66666EXAMPLE

字符串
iotsitewise:propertyId

资产属性的 ID。使用此条件键可根据指定的资产模型属性来定义权限。此条件键适用于该模型的所有资产。

示例值: a1b2c3d4-5678-90ab-cdef-33333EXAMPLE

字符串
iotsitewise:childAssetId

作为子级关联到其他资产的资产 ID。使用此条件键可根据子资产来定义权限。要根据父资产定义权限,请使用策略语句的资源部分。

示例值: a1b2c3d4-5678-90ab-cdef-66666EXAMPLE

字符串
iotsitewise:iam

列出访问策略时 IAM 身份的 ARN。使用此条件键可定义 IAM 身份的访问策略权限。

示例值: arn:aws:iam::123456789012:user/JohnDoe

字符串,Null
iotsitewise:propertyAlias

标识资产属性或数据流的别名。使用此条件键可根据别名来定义权限。

字符串
iotsitewise:user

列出访问策略时的 IAM Identity Center 用户 ID。使用此条件键可定义 IAM Identity Center 用户的访问策略权限。

示例值: a1b2c3d4e5-a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE

字符串,Null
iotsitewise:group

列出访问策略时的 IAM Identity Center 组 ID。使用此条件键可定义 IAM Identity Center 组的访问策略权限。

示例值: a1b2c3d4e5-a1b2c3d4-5678-90ab-cdef-bbbbbEXAMPLE

字符串,Null
iotsitewise:portal

访问策略中的门户 ID。使用此条件键可根据门户来定义访问策略权限。

示例值: a1b2c3d4-5678-90ab-cdef-77777EXAMPLE

字符串,Null
iotsitewise:project

访问策略中的项目 ID 或控制面板的项目 ID。使用此条件键可根据项目来定义控制面板或访问策略权限。

示例值: a1b2c3d4-5678-90ab-cdef-88888EXAMPLE

字符串,Null

要了解您可以使用条件键的操作和资源,请参阅操作定义者 Amazon IoT SiteWise

示例

要查看 Amazon IoT SiteWise 基于身份的策略的示例,请参阅。Amazon IoT SiteWise 基于身份的策略示例