

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

# 的身份和访问管理 AWS IoT SiteWise
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) AWS 服务 可帮助管理员安全地控制对 AWS 资源的访问权限。IAM 管理员控制谁可以*进行身份验证*（登录）和*授权*（拥有权限）使用 AWS IoT SiteWise 资源。您可以使用 IAM AWS 服务 ，无需支付额外费用。

**Topics**
+ [

# AWS IoT SiteWise 安全受众
](security_iam_audience.md)
+ [

# 使用中的身份进行身份验证 AWS IoT SiteWise
](security_iam_authentication.md)
+ [

# 如何 AWS IoT SiteWise 与 IAM 配合使用
](security_iam_service-with-iam.md)
+ [

# AWS 的托管策略 AWS IoT SiteWise
](security-iam-awsmanpol.md)
+ [

# 将服务相关角色用于 AWS IoT SiteWise
](using-service-linked-roles.md)
+ [

# 在中设置事件警报的权限 AWS IoT SiteWise
](alarms-iam-permissions.md)
+ [

# 跨服务混淆了副手预防 AWS IoT SiteWise
](cross-service-confused-deputy-prevention.md)
+ [

# 对 AWS IoT SiteWise 身份和访问进行故障排除
](security_iam_troubleshoot.md)

# AWS IoT SiteWise 安全受众
<a name="security_iam_audience"></a>

您的使用方式 AWS Identity and Access Management (IAM) 因您的角色而异：
+ **服务用户**：如果您无法访问功能，请从管理员处请求权限（请参阅[对 AWS IoT SiteWise 身份和访问进行故障排除](security_iam_troubleshoot.md)）
+ **服务管理员**：确定用户访问权限并提交权限请求（请参阅[如何 AWS IoT SiteWise 与 IAM 配合使用](security_iam_service-with-iam.md)）
+ **IAM 管理员**：编写用于管理访问权限的策略（请参阅[AWS IoT SiteWise 基于身份的策略示例](security_iam_id-based-policy-examples.md)）

# 使用中的身份进行身份验证 AWS IoT SiteWise
<a name="security_iam_authentication"></a>

身份验证是您 AWS 使用身份凭证登录的方式。您必须以 IAM 用户身份进行身份验证 AWS 账户根用户，或者通过担任 IAM 角色进行身份验证。

您可以使用来自身份源的证书 AWS IAM Identity Center （例如（IAM Identity Center）、单点登录身份验证或 Google/Facebook 证书，以联合身份登录。有关登录的更多信息，请参阅《AWS 登录 用户指南》**中的[如何登录您的 AWS 账户](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

对于编程访问， AWS 提供 SDK 和 CLI 来对请求进行加密签名。有关更多信息，请参阅*《IAM 用户指南》*中的[适用于 API 请求的AWS 签名版本 4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。

## AWS 账户 root 用户
<a name="security_iam_authentication-rootuser"></a>

 创建时 AWS 账户，首先会有一个名为 AWS 账户 *root 用户的*登录身份，该身份可以完全访问所有资源 AWS 服务 和资源。我们强烈建议不要使用根用户进行日常任务。有关要求根用户凭证的任务，请参阅*《IAM 用户指南》*中的[需要根用户凭证的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

## IAM 用户和群组
<a name="security_iam_authentication-iamuser"></a>

*[IAM 用户](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)*是对某个人员或应用程序具有特定权限的一个身份。建议使用临时凭证，而非具有长期凭证的 IAM 用户。有关更多信息，请参阅 *IAM 用户指南*[中的要求人类用户使用身份提供商的联合身份验证才能 AWS 使用临时证书进行访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)。

[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)指定一组 IAM 用户，便于更轻松地对大量用户进行权限管理。有关更多信息，请参阅*《IAM 用户指南》*中的 [IAM 用户使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

## IAM 角色
<a name="security_iam_authentication-iamrole"></a>

*[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)*是具有特定权限的身份，可提供临时凭证。您可以通过[从用户切换到 IAM 角色（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)或调用 AWS CLI 或 AWS API 操作来代入角色。有关更多信息，请参阅《IAM 用户指南》**中的[担任角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)。

IAM 角色对于联合用户访问、临时 IAM 用户权限、跨账户访问、跨服务访问以及在 Amazon EC2 上运行的应用程序非常有用。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

# 如何 AWS IoT SiteWise 与 IAM 配合使用
<a name="security_iam_service-with-iam"></a>

在使用 AWS Identity and Access Management (IAM) 管理访问权限之前 AWS IoT SiteWise，您应该了解哪些可用的 IAM 功能 AWS IoT SiteWise。


|  IAM 功能  |  支持 AWS IoT SiteWise？  | 
| --- | --- | 
|  [具有资源级权限的基于身份的策略](security_iam_service-with-iam-id-based-policies.md)  | 是 | 
|  [策略操作](security_iam_service-with-iam-id-based-policies.md#security_iam_service-with-iam-id-based-policies-actions)  | 是 | 
|  [策略资源](security_iam_service-with-iam-id-based-policies.md#security_iam_service-with-iam-id-based-policies-resources)  | 是 | 
|  [策略条件键](security_iam_service-with-iam-id-based-policies.md#security_iam_service-with-iam-id-based-policies-conditionkeys)  | 是 | 
|  基于资源的策略  | 否 | 
|  访问控制列表 (ACLs)  | 否 | 
|  [基于标签的授权（ABAC）](security_iam_service-with-iam-tags.md)  | 是 | 
|  [临时凭证](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-roles-tempcreds)  | 是 | 
|  [转发访问会话（FAS）](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-principal-permissions)  | 是 | 
|  [服务关联角色](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-roles-service-linked)  | 是 | 
|  [服务角色](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-roles-service-linked)  | 是 | 

要全面了解如何 AWS IoT SiteWise 和其他 AWS 服务与 IAM 配合使用，请参阅 IAM *用户指南中的与 IAM* [配合使用的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

**Contents**
+ [

# AWS IoT SiteWise IAM 角色
](security_iam_service-with-iam-roles.md)
  + [

## 使用临时证书 AWS IoT SiteWise
](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-roles-tempcreds)
  + [

## 的转发访问会话 (FAS) AWS IoT SiteWise
](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-principal-permissions)
  + [

## 服务关联角色
](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-roles-service-linked)
  + [

## 服务角色
](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-roles-service)
  + [

## 在中选择一个 IAM 角色 AWS IoT SiteWise
](security_iam_service-with-iam-roles.md#security_iam_service-with-iam-roles-choose)
+ [

# 基于 AWS IoT SiteWise 标签的授权
](security_iam_service-with-iam-tags.md)
+ [

# AWS IoT SiteWise 基于身份的策略
](security_iam_service-with-iam-id-based-policies.md)
  + [

## 策略操作
](security_iam_service-with-iam-id-based-policies.md#security_iam_service-with-iam-id-based-policies-actions)
    + [

### BatchPutAssetPropertyValue 授权
](security_iam_service-with-iam-id-based-policies.md#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action)
  + [

## 策略资源
](security_iam_service-with-iam-id-based-policies.md#security_iam_service-with-iam-id-based-policies-resources)
  + [

## 策略条件键
](security_iam_service-with-iam-id-based-policies.md#security_iam_service-with-iam-id-based-policies-conditionkeys)
  + [

## 示例
](security_iam_service-with-iam-id-based-policies.md#security_iam_service-with-iam-id-based-policies-examples)
+ [

# AWS IoT SiteWise 基于身份的策略示例
](security_iam_id-based-policy-examples.md)
  + [

## 策略最佳实践
](security_iam_id-based-policy-examples.md#security_iam_service-with-iam-policy-best-practices)
  + [

## 使用控制 AWS IoT SiteWise 台
](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-console)
  + [

## 允许用户查看他们自己的权限
](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-view-own-permissions)
  + [

## 支持用户将数据摄取到一个层次结构中的资产
](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-ingest-to-one-asset-hierarchy)
  + [

## 根据标签查看 AWS IoT SiteWise 资产
](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-view-asset-tags)
+ [

# 使用中的策略管理访问权限 AWS IoT SiteWise
](security_iam_access-manage.md)
  + [

## 基于身份的策略
](security_iam_access-manage.md#security_iam_access-manage-id-based-policies)
  + [

## 基于资源的策略
](security_iam_access-manage.md#security_iam_access-manage-resource-based-policies)
  + [

## 访问控制列表 (ACLs)
](security_iam_access-manage.md#security_iam_access-manage-acl)
  + [

## 其他策略类型
](security_iam_access-manage.md#security_iam_access-manage-other-policies)
  + [

## 多个策略类型
](security_iam_access-manage.md#security_iam_access-manage-multiple-policies)

# AWS IoT SiteWise IAM 角色
<a name="security_iam_service-with-iam-roles"></a>

[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是 AWS 账户中具有特定权限的实体。

## 使用临时证书 AWS IoT SiteWise
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

可以使用临时凭证进行联合身份验证登录，分派 IAM 角色或分派跨账户角色。您可以调用 AWS STS API 操作（如[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 或 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) ）以获取临时安全凭证。

AWS IoT SiteWise 支持使用临时证书。

SiteWise Monitor 支持联合用户访问门户。门户用户使用其 IAM Identity Center 或 IAM 凭证进行身份验证。

**重要**  <a name="iam-portal-user-permissions"></a>
用户或角色必须具有登录门户的 `iotsitewise:DescribePortal` 权限。

当用户登录门户时，M SiteWise onitor 会生成一个提供以下权限的会话策略：
+ 该门户角色提供对您账户 AWS IoT SiteWise 中资产和资产数据的只读访问权限。
+ 对该门户中的项目（用户对这些项目具有管理员（项目拥有者）或只读（项目查看者）访问权限）的访问权限。

有关联合身份门户用户权限的更多信息，请参阅[将服务角色用于 AWS IoT SiteWise Monitor](monitor-service-role.md)。

## 的转发访问会话 (FAS) AWS IoT SiteWise
<a name="security_iam_service-with-iam-principal-permissions"></a>

**支持转发访问会话（FAS）：**是

 转发访问会话 (FAS) 使用调用主体的权限 AWS 服务，再加上 AWS 服务 向下游服务发出请求的请求。有关发出 FAS 请求时的策略详情，请参阅[转发访问会话](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)。

## 服务关联角色
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[服务关联角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)允许 AWS 服务访问其他服务中的资源以代表您完成操作。服务相关角色出现在您的 AWS 账户中并归服务所有。IAM 管理员可以查看但不能编辑服务关联角色的权限。

AWS IoT SiteWise 支持服务相关角色。有关创建或管理 AWS IoT SiteWise 服务关联角色的详细信息，请参阅 [将服务相关角色用于 AWS IoT SiteWise](using-service-linked-roles.md)。

## 服务角色
<a name="security_iam_service-with-iam-roles-service"></a>

此功能允许服务代表您担任[服务角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)。此角色允许服务访问其他服务中的资源以代表您完成操作。服务角色显示在您的 AWS 账户中，并归该账户所有。这意味着，IAM 管理员可以更改该角色的权限。但是，这样做可能会中断服务的功能。

AWS IoT SiteWise 使用服务角色允许 M SiteWise onitor 门户用户代表您访问您的某些 AWS IoT SiteWise 资源。有关更多信息，请参阅 [将服务角色用于 AWS IoT SiteWise Monitor](monitor-service-role.md)。

您必须拥有所需的权限才能在中创建 AWS IoT Events 警报模型 AWS IoT SiteWise。有关更多信息，请参阅 [在中设置事件警报的权限 AWS IoT SiteWise](alarms-iam-permissions.md)。

## 在中选择一个 IAM 角色 AWS IoT SiteWise
<a name="security_iam_service-with-iam-roles-choose"></a>

在中创建`portal`资源时 AWS IoT SiteWise，必须选择一个角色才能允许 Monito SiteWise r 门户的联合用户 AWS IoT SiteWise 代表您进行访问。如果您之前创建过服务角色，则会 AWS IoT SiteWise 为您提供可供选择的角色列表。否则，可以在创建门户时创建具有所需权限的角色。选择一个允许访问您的资产和资产数据的角色非常重要。有关更多信息，请参阅 [将服务角色用于 AWS IoT SiteWise Monitor](monitor-service-role.md)。

# 基于 AWS IoT SiteWise 标签的授权
<a name="security_iam_service-with-iam-tags"></a>

您可以为 AWS IoT SiteWise 资源附加标签或在请求中传递标签 AWS IoT SiteWise。要基于标签控制访问，您需要使用 `aws:ResourceTag/key-name``aws:RequestTag/key-name` 或 `aws:TagKeys` 条件键在策略的[条件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供标签信息。有关标记 AWS IoT SiteWise 资源的更多信息，请参阅 [标记您的 AWS IoT SiteWise 资源](tag-resources.md)

要查看基于身份的策略（用于根据资源上的标签来限制对该资源的访问）的示例，请参阅 [根据标签查看 AWS IoT SiteWise 资产](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-view-asset-tags)。

# AWS IoT SiteWise 基于身份的策略
<a name="security_iam_service-with-iam-id-based-policies"></a>

IAM 策略支持您在 AWS IoT SiteWise中控制哪些人可以执行哪些操作。您可以决定允许或不允许哪些操作，并为这些操作设置具体条件。例如，您可以制定规则，规定谁可以查看或更改中的信息 AWS IoT SiteWise。 AWS IoT SiteWise 支持特定的操作、资源和条件键。要了解在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》中的 [IAM JSON 策略元素参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)**。

## 策略操作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

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

JSON 策略的 `Action` 元素描述可用于在策略中允许或拒绝访问的操作。在策略中包含操作以授予执行关联操作的权限。

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

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

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

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

```
"Action": "iotsitewise:Describe*"
```



要查看 AWS IoT SiteWise 操作列表，请参阅 *IAM 用户指南 AWS IoT SiteWise*中[定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotsitewise.html#awsiotsitewise-actions-as-permissions)。

### BatchPutAssetPropertyValue 授权
<a name="security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action"></a>

AWS IoT SiteWise 以一种不寻常的方式授权访问[BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html)操作。对于大多数操作而言，当您允许或拒绝访问时，如果未授予权限，则该操作将返回错误。通过 `BatchPutAssetPropertyValue`，您可以在单个 API 请求中将多个数据条目发送到不同的资产和资产属性。 AWS IoT SiteWise 会单独向每个数据条目授权。对于请求中未通过授权的任何单个条目， AWS IoT SiteWise 请在返回的错误列表`AccessDeniedException`中包含一个。 AWS IoT SiteWise 接收任何授权并成功的条目的数据，即使同一请求中的另一个条目失败也是如此。

**重要**  
在将数据摄取到数据流之前，请执行以下操作：  
如果您使用属性别名来标识数据流，请对 `time-series` 资源进行授权。
如果您使用资产 ID 来识别包含关联资产属性的资产，请对 `asset` 资源进行授权。

## 策略资源
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

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

`Resource` JSON 策略元素指定要向其应用操作的一个或多个对象。作为最佳实践，请使用其 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)指定资源。对于不支持资源级权限的操作，请使用通配符 (\$1) 指示语句应用于所有资源。

```
"Resource": "*"
```



每个 IAM 政策声明都适用于您使用其指定的资源 ARNs。ARN 具有以下一般语法。

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

有关格式的更多信息 ARNs，请参阅[使用 Amazon 资源名称识别 AWS 资源 (ARNs)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)。

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

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

要指定属于特定账户的所有数据流，请使用通配符 (\$1)：

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

要指定属于特定账户的所有资产，请使用通配符 (\$1)：

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

某些 AWS IoT SiteWise 操作（例如创建资源的操作）无法对特定资源执行。在这些情况下，您必须使用通配符（\$1)。

```
"Resource": "*"
```

要在单个语句中指定多个资源，请 ARNs 用逗号分隔。

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

要查看 AWS IoT SiteWise 资源类型及其列表 ARNs，请参阅 *IAM 用户指南 AWS IoT SiteWise*中[定义的资源类型](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotsitewise.html#awsiotsitewise-resources-for-iam-policies)。要了解可以在哪些操作中指定每个资源的 ARN，请参阅 [AWS IoT SiteWise定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotsitewise.html#awsiotsitewise-actions-as-permissions)。

## 策略条件键
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

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

`Condition` 元素根据定义的条件指定语句何时执行。您可以创建使用[条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)（例如，等于或小于）的条件表达式，以使策略中的条件与请求中的值相匹配。要查看所有 AWS 全局条件键，请参阅 *IAM 用户指南*中的[AWS 全局条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

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

AWS IoT SiteWise 定义自己的条件键集，还支持使用一些全局条件键。要查看所有 AWS 全局条件键，请参阅 *IAM 用户指南*中的[AWS 全局条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。


**AWS IoT SiteWise 条件键**  

| 条件键 | 说明 | 类型 | 
| --- | --- | --- | 
| iotsitewise:isAssociatedWithAssetProperty |  数据流是否与资产属性相关联。使用此条件键根据数据流的关联资产属性的存在来定义权限。 示例值：`true`  | 字符串 | 
| iotsitewise:assetHierarchyPath |  资产的层次结构路径，这是一串由正斜杠分 IDs 隔的资产。使用此条件键可根据您账户中所有资产的层次结构子集来定义权限。 示例值：`/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 | 



要了解可以使用条件键的操作和资源，请参阅[由定义的操作 AWS IoT SiteWise](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotsitewise.html#awsiotsitewise-actions-as-permissions)。

## 示例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



要查看 AWS IoT SiteWise 基于身份的策略的示例，请参阅。[AWS IoT SiteWise 基于身份的策略示例](security_iam_id-based-policy-examples.md)

# AWS IoT SiteWise 基于身份的策略示例
<a name="security_iam_id-based-policy-examples"></a>

默认情况下，实体（用户和角色）没有创建或修改 AWS IoT SiteWise 资源的权限。他们也无法使用 AWS 管理控制台、 AWS Command Line Interface (AWS CLI) 或 AWS API 执行任务。要调整权限， AWS Identity and Access Management (IAM) 管理员必须执行以下操作：

1. 创建 IAM 策略，以便为用户和角色授予权限来对所需资源执行特定的 API 操作。

1. 将这些策略附加到需要这些权限的用户或组。

要了解如何使用这些示例 JSON 策略文档创建 IAM 基于身份的策略，请参阅《*IAM 用户指南*》中的[在 JSON 选项卡上创建策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)。

**Topics**
+ [

## 策略最佳实践
](#security_iam_service-with-iam-policy-best-practices)
+ [

## 使用控制 AWS IoT SiteWise 台
](#security_iam_id-based-policy-examples-console)
+ [

## 允许用户查看他们自己的权限
](#security_iam_id-based-policy-examples-view-own-permissions)
+ [

## 支持用户将数据摄取到一个层次结构中的资产
](#security_iam_id-based-policy-examples-ingest-to-one-asset-hierarchy)
+ [

## 根据标签查看 AWS IoT SiteWise 资产
](#security_iam_id-based-policy-examples-view-asset-tags)

## 策略最佳实践
<a name="security_iam_service-with-iam-policy-best-practices"></a>

基于身份的策略决定了某人是否可以在您的账户中创建、访问或删除 AWS IoT SiteWise 资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时，请遵循以下指南和建议：
+ **开始使用 AWS 托管策略并转向最低权限权限** — 要开始向用户和工作负载授予权限，请使用为许多常见用例授予权限的*AWS 托管策略*。它们在你的版本中可用 AWS 账户。我们建议您通过定义针对您的用例的 AWS 客户托管策略来进一步减少权限。有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[工作职能的AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **应用最低权限**：在使用 IAM 策略设置权限时，请仅授予执行任务所需的权限。为此，您可以定义在特定条件下可以对特定资源执行的操作，也称为*最低权限许可*。有关使用 IAM 应用权限的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 策略中的条件进一步限制访问权限**：您可以向策略添加条件来限制对操作和资源的访问。例如，您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果服务操作是通过特定的方式使用的，则也可以使用条件来授予对服务操作的访问权限 AWS 服务，例如 CloudFormation。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 验证您的 IAM 策略，以确保权限的安全性和功能性**：IAM Access Analyzer 会验证新策略和现有策略，以确保策略符合 IAM 策略语言（JSON）和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议，以帮助您制定安全且功能性强的策略。有关更多信息，请参阅《IAM 用户指南》**中的[使用 IAM Access Analyzer 验证策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重身份验证 (MFA**)-如果 AWS 账户您的场景需要 IAM 用户或根用户，请启用 MFA 以提高安全性。若要在调用 API 操作时需要 MFA，请将 MFA 条件添加到您的策略中。有关更多信息，请参阅《IAM 用户指南》**中的[使用 MFA 保护 API 访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

有关 IAM 中的最佳实操的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 使用控制 AWS IoT SiteWise 台
<a name="security_iam_id-based-policy-examples-console"></a>

要访问 AWS IoT SiteWise 控制台，您需要一组基本权限。这些权限允许您查看和管理 AWS 账户中 AWS IoT SiteWise 资源的详细信息。

如果您制定的策略过于严格，那么对于使用该策略的用户或角色（实体），控制台可能无法按预期运行。为确保这些实体仍然可以使用 AWS IoT SiteWise 控制台，请将[AWSIoTSiteWiseConsoleFullAccess](https://console.aws.amazon.com/iam/home#/policies/policies/arn:aws:iam::aws:policy/AWSIoTSiteWiseConsoleFullAccess)托管策略附加到它们或为这些实体定义等效权限。有关更多信息，请参阅《IAM 用户指南》**中的[为用户添加权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

如果实体仅使用 AWS Command Line Interface (CLI) 或 AWS IoT SiteWise API，而不使用控制台，则不需要这些最低权限。在这种情况下，只需让他们能够访问其 API 任务所需的特定操作即可。

## 允许用户查看他们自己的权限
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

该示例说明了您如何创建策略，以允许 IAM 用户查看附加到其用户身份的内联和托管式策略。此策略包括在控制台上或使用 AWS CLI 或 AWS API 以编程方式完成此操作的权限。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 支持用户将数据摄取到一个层次结构中的资产
<a name="security_iam_id-based-policy-examples-ingest-to-one-asset-hierarchy"></a>

在此示例中，您希望授予 AWS 账户中的用户从根资产开始向特定资产层次结构中的所有资产属性写入数据的权限`a1b2c3d4-5678-90ab-cdef-22222EXAMPLE`。此策略向用户授予 `iotsitewise:BatchPutAssetPropertyValue` 权限。此策略使用 `iotsitewise:assetHierarchyPath` 条件键来限制对其层次结构路径与资产或其后代匹配的资产的访问。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PutAssetPropertyValuesForHierarchy",
      "Effect": "Allow",
      "Action": "iotsitewise:BatchPutAssetPropertyValue",
      "Resource": "arn:aws:iotsitewise:*:*:asset/*",
      "Condition": {
        "StringLike": {
          "iotsitewise:assetHierarchyPath": [
            "/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE",
            "/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE/*"
          ]
        }
      }
    }
  ]
}
```

------

## 根据标签查看 AWS IoT SiteWise 资产
<a name="security_iam_id-based-policy-examples-view-asset-tags"></a>

使用基于身份的策略中的条件根据标签控制对 AWS IoT SiteWise 资源的访问权限。此示例说明了如何创建支持查看资产的策略。不过，仅在资产标签 `Owner` 具有该用户的用户名值时授予权限。该策略还会授予用于在控制台上完成该操作的权限。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "ListAllAssets",
      "Effect": "Allow",
      "Action": [
        "iotsitewise:ListAssets",
        "iotsitewise:ListAssociatedAssets"
      ],
      "Resource": "*"
    },
    {
      "Sid": "DescribeAssetIfOwner",
      "Effect": "Allow",
      "Action": "iotsitewise:DescribeAsset",
      "Resource": "arn:aws:iotsitewise:*:*:asset/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/Owner": "${aws:username}"
        }
      }
    }
  ]
}
```

------

将此策略附加到您账户中的用户。如果名为的用户`richard-roe`尝试查看 AWS IoT SiteWise 资产，则必须对该资产进行标记`Owner=richard-roe`或`owner=richard-roe`。否则，Richard 将被拒绝访问。条件标签密钥名称不区分大小写。因此，`Owner` 与 `Owner` 和 `owner` 均匹配。有关更多信息，请参阅 *IAM 用户指南* 中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。

# 使用中的策略管理访问权限 AWS IoT SiteWise
<a name="security_iam_access-manage"></a>

您可以 AWS 通过创建策略并将其附加到 AWS 身份或资源来控制中的访问权限。策略定义了与身份或资源关联时的权限。 AWS 在委托人提出请求时评估这些政策。大多数策略都以 JSON 文档的 AWS 形式存储在中。有关 JSON 策略文档的更多信息，请参阅*《IAM 用户指南》*中的 [JSON 策略概述](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)。

管理员使用策略，通过定义哪个**主体**可以在什么**条件**下对哪些**资源**执行哪些**操作**来指定谁有权访问什么。

默认情况下，用户和角色没有权限。IAM 管理员创建 IAM 策略并将其添加到角色中，然后用户可以担任这些角色。IAM 策略定义权限，与执行操作所用的方法无关。

## 基于身份的策略
<a name="security_iam_access-manage-id-based-policies"></a>

基于身份的策略是您附加到身份（用户、组或角色）的 JSON 权限策略文档。这些策略控制身份可以执行什么操作、对哪些资源执行以及在什么条件下执行。要了解如何创建基于身份的策略，请参阅《IAM 用户指南》**中的[使用客户管理型策略定义自定义 IAM 权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

基于身份的策略可以是*内联策略*（直接嵌入到单个身份中）或*托管策略*（附加到多个身份的独立策略）。要了解如何在托管策略和内联策略之间进行选择，请参阅*《IAM 用户指南》*中的[在托管策略与内联策略之间进行选择](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)。

## 基于资源的策略
<a name="security_iam_access-manage-resource-based-policies"></a>

基于资源的策略是附加到资源的 JSON 策略文档。示例包括 IAM *角色信任策略*和 Amazon S3 *存储桶策略*。在支持基于资源的策略的服务中，服务管理员可以使用它们来控制对特定资源的访问。您必须在基于资源的策略中[指定主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。

基于资源的策略是位于该服务中的内联策略。您不能在基于资源的策略中使用 IAM 中的 AWS 托管策略。

## 访问控制列表 (ACLs)
<a name="security_iam_access-manage-acl"></a>

访问控制列表 (ACLs) 控制哪些委托人（账户成员、用户或角色）有权访问资源。 ACLs 与基于资源的策略类似，尽管它们不使用 JSON 策略文档格式。

Amazon S3 和 Amazon VPC 就是支持的服务示例 ACLs。 AWS WAF要了解更多信息 ACLs，请参阅《*亚马逊简单存储服务开发者指南*》中的[访问控制列表 (ACL) 概述](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。

## 其他策略类型
<a name="security_iam_access-manage-other-policies"></a>

AWS 支持其他策略类型，这些策略类型可以设置更常见的策略类型授予的最大权限：
+ **权限边界** – 设置基于身份的策略可以授予 IAM 实体的最大权限。有关更多信息，请参阅《 IAM 用户指南》**中的 [IAM 实体的权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。
+ **服务控制策略 (SCPs)**-在中指定组织或组织单位的最大权限 AWS Organizations。有关更多信息，请参阅《AWS Organizations 用户指南》**中的[服务控制策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。
+ **资源控制策略 (RCPs)**-设置账户中资源的最大可用权限。有关更多信息，请参阅《*AWS Organizations 用户指南》*中的[资源控制策略 (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)。
+ **会话策略** – 在为角色或联合用户创建临时会话时，作为参数传递的高级策略。有关更多信息，请参阅《IAM 用户指南》**中的[会话策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

## 多个策略类型
<a name="security_iam_access-manage-multiple-policies"></a>

当多个类型的策略应用于一个请求时，生成的权限更加复杂和难以理解。要了解在涉及多种策略类型时如何 AWS 确定是否允许请求，请参阅 *IAM 用户指南*中的[策略评估逻辑](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。

# AWS 的托管策略 AWS IoT SiteWise
<a name="security-iam-awsmanpol"></a>

使用 AWS 托管策略简化向用户、群组和角色添加权限的过程，而不是自己编写策略。创建为团队提供确切权限的 [IAM 客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)需要时间和专业知识。为了更快地进行设置，可以考虑将我们的 AWS 托管策略用于常见用例。在您的 AWS 账户中查找 AWS 托管政策。有关 AWS 托管式策略的更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

AWS 服务负责更新和维护 AWS 托管策略，这意味着您无法修改这些策略的权限。有时， AWS IoT SiteWise 可能会添加权限以适应新功能，从而影响附加策略的所有身份。新服务或特征的推出往往伴随着此类更新。但是，权限永远不会被移除，这就可以确保您的设置保持不变。

此外，还 AWS 支持跨多个服务的工作职能的托管策略。例如，**ReadOnlyAccess** AWS 托管策略提供对所有 AWS 服务和资源的只读访问权限。当服务启动一项新功能时， AWS 会为新操作和资源添加只读权限。有关工作职能策略的列表和说明，请参阅 *IAM 用户指南*中的[适用于工作职能的AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。

## AWS 托管策略： AWSIoTSiteWiseReadOnlyAccess
<a name="security-iam-awsmanpol-AWSIoTSiteWiseReadOnlyAccess"></a>

使用`AWSIoTSiteWiseReadOnlyAccess` AWS 托管策略允许对进行只读访问 AWS IoT SiteWise。

您可以将 `AWSIoTSiteWiseReadOnlyAccess` 策略附加到 IAM 身份。

**服务级别权限**

此策略提供对的只读访问权限 AWS IoT SiteWise，包括执行只读 SQL 查询的权限。此策略中不包含其他服务权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
        "Effect": "Allow",
        "Action": [
                "iotsitewise:BatchGetAssetPropertyAggregates",
                "iotsitewise:BatchGetAssetPropertyValue",
                "iotsitewise:BatchGetAssetPropertyValueHistory",
                "iotsitewise:DescribeAccessPolicy",
                "iotsitewise:DescribeAction",
                "iotsitewise:DescribeAsset",
                "iotsitewise:DescribeAssetCompositeModel",
                "iotsitewise:DescribeAssetModel",
                "iotsitewise:DescribeAssetModelCompositeModel",
                "iotsitewise:DescribeAssetModelInterfaceRelationship",
                "iotsitewise:DescribeAssetProperty",
                "iotsitewise:DescribeBulkImportJob",
                "iotsitewise:DescribeComputationModel",
                "iotsitewise:DescribeComputationModelExecutionSummary",
                "iotsitewise:DescribeDashboard",
                "iotsitewise:DescribeDataset",
                "iotsitewise:DescribeDefaultEncryptionConfiguration",
                "iotsitewise:DescribeExecution",
                "iotsitewise:DescribeGateway",
                "iotsitewise:DescribeGatewayCapabilityConfiguration",
                "iotsitewise:DescribeLoggingOptions",
                "iotsitewise:DescribePortal",
                "iotsitewise:DescribeProject",
                "iotsitewise:DescribeStorageConfiguration",
                "iotsitewise:DescribeTimeSeries",
                "iotsitewise:GetAssetPropertyAggregates",
                "iotsitewise:GetAssetPropertyValue",
                "iotsitewise:GetAssetPropertyValueHistory",
                "iotsitewise:GetInterpolatedAssetPropertyValues",
                "iotsitewise:ListAccessPolicies",
                "iotsitewise:ListActions",
                "iotsitewise:ListAssetModelCompositeModels",
                "iotsitewise:ListAssetModelProperties",
                "iotsitewise:ListAssetModels",
                "iotsitewise:ListAssetProperties",
                "iotsitewise:ListAssetRelationships",
                "iotsitewise:ListAssets",
                "iotsitewise:ListAssociatedAssets",
                "iotsitewise:ListBulkImportJobs",
                "iotsitewise:ListCompositionRelationships",
                "iotsitewise:ListComputationModelDataBindingUsages",
                "iotsitewise:ListComputationModelResolveToResources",
                "iotsitewise:ListComputationModels",
                "iotsitewise:ListDashboards",
                "iotsitewise:ListDatasets",
                "iotsitewise:ListExecutions",
                "iotsitewise:ListGateways",
                "iotsitewise:ListInterfaceRelationships",
                "iotsitewise:ListPortals",
                "iotsitewise:ListProjectAssets",
                "iotsitewise:ListProjects",
                "iotsitewise:ListTagsForResource",
                "iotsitewise:ListTimeSeries"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS 托管策略： AWSServiceRoleForIoTSiteWise
<a name="security-iam-awsmanpol-AWSServiceRoleForIoTSiteWise"></a>

 `AWSServiceRoleForIoTSiteWise` 角色获得下列权限使用 `AWSServiceRoleForIoTSiteWise` 策略。本策略：
+  AWS IoT SiteWise 允许部署 SiteWise Edge 网关（在上运行`AWS IoT Greengrass`）。
+  AWS IoT SiteWise 允许执行日志记录。
+  AWS IoT SiteWise 允许对 AWS IoT TwinMaker 数据库运行元数据搜索查询。

 如果您 AWS IoT SiteWise 使用的是单个用户账户，则该`AWSServiceRoleForIoTSiteWise`角色将在您的 IAM 账户中创建`AWSServiceRoleForIoTSiteWise`策略，并将其附加到的`AWSServiceRoleForIoTSiteWise`[服务相关角色](using-service-linked-roles.md)。 AWS IoT SiteWise

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AllowSiteWiseReadGreenGrass",
			"Effect": "Allow",
			"Action": [
				"greengrass:GetAssociatedRole",
				"greengrass:GetCoreDefinition",
				"greengrass:GetCoreDefinitionVersion",
				"greengrass:GetGroup",
				"greengrass:GetGroupVersion"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowSiteWiseAccessLogGroup",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogGroup",
				"logs:DescribeLogGroups"
			],
			"Resource": "arn:aws:logs:*:*:log-group:/aws/iotsitewise*"
		},
		{
			"Sid": "AllowSiteWiseAccessLog",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogStream",
				"logs:DescribeLogStreams",
				"logs:PutLogEvents"
			],
			"Resource": "arn:aws:logs:*:*:log-group:/aws/iotsitewise*:log-stream:*"
		},
		{
			"Sid": "AllowSiteWiseAccessSiteWiseManagedWorkspaceInTwinMaker",
			"Effect": "Allow",
			"Action": [
				"iottwinmaker:GetWorkspace",
				"iottwinmaker:ExecuteQuery"
			],
			"Resource": "arn:aws:iottwinmaker:*:*:workspace/*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"iottwinmaker:linkedServices": [
						"IOTSITEWISE"
					]
				}
			}
		}
	]
}
```

------

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AllowSiteWiseReadGreenGrass",
			"Effect": "Allow",
			"Action": [
				"greengrass:GetAssociatedRole",
				"greengrass:GetCoreDefinition",
				"greengrass:GetCoreDefinitionVersion",
				"greengrass:GetGroup",
				"greengrass:GetGroupVersion"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowSiteWiseAccessLogGroup",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogGroup",
				"logs:DescribeLogGroups"
			],
			"Resource": "arn:aws-us-gov:logs:*:*:log-group:/aws/iotsitewise*"
		},
		{
			"Sid": "AllowSiteWiseAccessLog",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogStream",
				"logs:DescribeLogStreams",
				"logs:PutLogEvents"
			],
			"Resource": "arn:aws-us-gov:logs:*:*:log-group:/aws/iotsitewise*:log-stream:*"
		},
		{
			"Sid": "AllowSiteWiseAccessSiteWiseManagedWorkspaceInTwinMaker",
			"Effect": "Allow",
			"Action": [
				"iottwinmaker:GetWorkspace",
				"iottwinmaker:ExecuteQuery"
			],
			"Resource": "arn:aws-us-gov:iottwinmaker:*:*:workspace/*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"iottwinmaker:linkedServices": [
						"IOTSITEWISE"
					]
				}
			}
		}
	]
}
```

------

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AllowSiteWiseReadGreenGrass",
			"Effect": "Allow",
			"Action": [
				"greengrass:GetAssociatedRole",
				"greengrass:GetCoreDefinition",
				"greengrass:GetCoreDefinitionVersion",
				"greengrass:GetGroup",
				"greengrass:GetGroupVersion"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowSiteWiseAccessLogGroup",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogGroup",
				"logs:DescribeLogGroups"
			],
			"Resource": "arn:aws-cn:logs:*:*:log-group:/aws/iotsitewise*"
		},
		{
			"Sid": "AllowSiteWiseAccessLog",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogStream",
				"logs:DescribeLogStreams",
				"logs:PutLogEvents"
			],
			"Resource": "arn:aws-cn:logs:*:*:log-group:/aws/iotsitewise*:log-stream:*"
		},
		{
			"Sid": "AllowSiteWiseAccessSiteWiseManagedWorkspaceInTwinMaker",
			"Effect": "Allow",
			"Action": [
				"iottwinmaker:GetWorkspace",
				"iottwinmaker:ExecuteQuery"
			],
			"Resource": "arn:aws-cn:iottwinmaker:*:*:workspace/*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"iottwinmaker:linkedServices": [
						"IOTSITEWISE"
					]
				}
			}
		}
	]
}
```

------

## AWS IoT SiteWise AWS 托管策略的更新
<a name="security-iam-awsmanpol-updates"></a>

您可以查看有关 AWS 托管策略更新的详细信息 AWS IoT SiteWise，从该服务开始跟踪更改时开始。要获得有关此页面变更的自动提醒，请订阅 “ AWS IoT SiteWise 文档历史记录” 页面上的 RSS feed。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  [AWSServiceRoleForIoTSiteWise](#security-iam-awsmanpol-AWSServiceRoleForIoTSiteWise) — 更新现有政策  |  AWS IoT SiteWise 现在可以对 AWS IoT TwinMaker 数据库运行元数据搜索查询。  | 2023 年 11 月 6 日 | 
|  [AWSIoTSiteWiseReadOnlyAccess](#security-iam-awsmanpol-AWSIoTSiteWiseReadOnlyAccess)：对现有策略的更新  |  AWS IoT SiteWise 添加了新的策略前缀`BatchGet*`，使您可以执行批量读取操作。  | 2022 年 9 月 16 日 | 
|  [AWSIoTSiteWiseReadOnlyAccess](#security-iam-awsmanpol-AWSIoTSiteWiseReadOnlyAccess)：新策略  |  AWS IoT SiteWise 添加了授予只读访问权限的新策略 AWS IoT SiteWise。  | 2021 年 11 月 24 日 | 
|  AWS IoT SiteWise 开始跟踪更改  |  AWS IoT SiteWise 开始跟踪其 AWS 托管策略的更改。  | 2021 年 11 月 24 日 | 

# 将服务相关角色用于 AWS IoT SiteWise
<a name="using-service-linked-roles"></a>

AWS IoT SiteWise 使用 AWS Identity and Access Management (IAM) [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html)。服务相关角色是一种直接关联的 IAM 角色的独特类型 AWS IoT SiteWise。服务相关角色由服务预定义 AWS IoT SiteWise ，包括服务代表您调用其他 AWS 服务所需的所有权限。

服务相关角色 AWS IoT SiteWise 通过自动包含所有必要的权限来简化配置。 AWS IoT SiteWise 定义其服务相关角色的权限，除非另有定义，否则 AWS IoT SiteWise 只能担任其角色。定义的权限包括信任策略和权限策略。并且，相应权限策略不能附加到任何其他 IAM 实体。

只有在首先删除相关资源后，您才能删除服务关联角色。这样可以保护您的 AWS IoT SiteWise 资源，因为您不会无意中删除访问资源的权限。

有关支持服务相关角色的其他服务的信息，请参阅[与 IAM 配合使用的AWS 服务，](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并在**服务关联角色**列中查找标有 “**是**” 的服务。选择**是**和链接，查看该服务的服务关联角色文档。

**Topics**
+ [服务相关角色权限](service-linked-role-permissions.md)
+ [创建服务相关角色](create-service-linked-role.md)
+ [更新服务相关角色](edit-service-linked-role.md)
+ [删除服务相关角色](delete-service-linked-role.md)
+ [支持的区域](#slr-regions)
+ [为 SiteWise 监控器使用服务角色](monitor-service-role.md)

# 的服务相关角色权限 AWS IoT SiteWise
<a name="service-linked-role-permissions"></a>

AWS IoT SiteWise 使用名为 **AWSServiceRoleForIoTSiteWise** 的服务相关角色。 AWS IoT SiteWise 使用此服务相关角色部署 SiteWise Edge 网关（在上运行 AWS IoT Greengrass）和执行日志记录。

`AWSServiceRoleForIoTSiteWise` 服务相关角色使用具有以下权限的 `AWSServiceRoleForIoTSiteWise` 策略。本策略：
+  AWS IoT SiteWise 允许部署 SiteWise Edge 网关（在上运行`AWS IoT Greengrass`）。
+  AWS IoT SiteWise 允许执行日志记录。
+  AWS IoT SiteWise 允许对 AWS IoT TwinMaker 数据库运行元数据搜索查询。

有关 `AWSServiceRoleForIoTSiteWise` 中允许执行的操作的更多信息，请参阅 [AWS managed policies for AWS IoT SiteWise](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSServiceRoleForIoTSiteWise)。

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AllowSiteWiseReadGreenGrass",
			"Effect": "Allow",
			"Action": [
				"greengrass:GetAssociatedRole",
				"greengrass:GetCoreDefinition",
				"greengrass:GetCoreDefinitionVersion",
				"greengrass:GetGroup",
				"greengrass:GetGroupVersion"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowSiteWiseAccessLogGroup",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogGroup",
				"logs:DescribeLogGroups"
			],
			"Resource": "arn:aws:logs:*:*:log-group:/aws/iotsitewise*"
		},
		{
			"Sid": "AllowSiteWiseAccessLog",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogStream",
				"logs:DescribeLogStreams",
				"logs:PutLogEvents"
			],
			"Resource": "arn:aws:logs:*:*:log-group:/aws/iotsitewise*:log-stream:*"
		},
		{
			"Sid": "AllowSiteWiseAccessSiteWiseManagedWorkspaceInTwinMaker",
			"Effect": "Allow",
			"Action": [
				"iottwinmaker:GetWorkspace",
				"iottwinmaker:ExecuteQuery"
			],
			"Resource": "arn:aws:iottwinmaker:*:*:workspace/*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"iottwinmaker:linkedServices": [
						"IOTSITEWISE"
					]
				}
			}
		}
	]
}
```

------

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AllowSiteWiseReadGreenGrass",
			"Effect": "Allow",
			"Action": [
				"greengrass:GetAssociatedRole",
				"greengrass:GetCoreDefinition",
				"greengrass:GetCoreDefinitionVersion",
				"greengrass:GetGroup",
				"greengrass:GetGroupVersion"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowSiteWiseAccessLogGroup",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogGroup",
				"logs:DescribeLogGroups"
			],
			"Resource": "arn:aws-us-gov:logs:*:*:log-group:/aws/iotsitewise*"
		},
		{
			"Sid": "AllowSiteWiseAccessLog",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogStream",
				"logs:DescribeLogStreams",
				"logs:PutLogEvents"
			],
			"Resource": "arn:aws-us-gov:logs:*:*:log-group:/aws/iotsitewise*:log-stream:*"
		},
		{
			"Sid": "AllowSiteWiseAccessSiteWiseManagedWorkspaceInTwinMaker",
			"Effect": "Allow",
			"Action": [
				"iottwinmaker:GetWorkspace",
				"iottwinmaker:ExecuteQuery"
			],
			"Resource": "arn:aws-us-gov:iottwinmaker:*:*:workspace/*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"iottwinmaker:linkedServices": [
						"IOTSITEWISE"
					]
				}
			}
		}
	]
}
```

------

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "AllowSiteWiseReadGreenGrass",
			"Effect": "Allow",
			"Action": [
				"greengrass:GetAssociatedRole",
				"greengrass:GetCoreDefinition",
				"greengrass:GetCoreDefinitionVersion",
				"greengrass:GetGroup",
				"greengrass:GetGroupVersion"
			],
			"Resource": "*"
		},
		{
			"Sid": "AllowSiteWiseAccessLogGroup",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogGroup",
				"logs:DescribeLogGroups"
			],
			"Resource": "arn:aws-cn:logs:*:*:log-group:/aws/iotsitewise*"
		},
		{
			"Sid": "AllowSiteWiseAccessLog",
			"Effect": "Allow",
			"Action": [
				"logs:CreateLogStream",
				"logs:DescribeLogStreams",
				"logs:PutLogEvents"
			],
			"Resource": "arn:aws-cn:logs:*:*:log-group:/aws/iotsitewise*:log-stream:*"
		},
		{
			"Sid": "AllowSiteWiseAccessSiteWiseManagedWorkspaceInTwinMaker",
			"Effect": "Allow",
			"Action": [
				"iottwinmaker:GetWorkspace",
				"iottwinmaker:ExecuteQuery"
			],
			"Resource": "arn:aws-cn:iottwinmaker:*:*:workspace/*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"iottwinmaker:linkedServices": [
						"IOTSITEWISE"
					]
				}
			}
		}
	]
}
```

------

您可以使用日志来监控 SiteWise Edge 网关并对其进行故障排除。有关更多信息，请参阅 [监控 SiteWise 边缘网关日志](monitor-gateway-logs.md)。

为允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务相关角色，首先配置权限。有关更多信息，请参阅*《IAM 用户指南》*中的[服务关联角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html#service-linked-role-permissions)。

# 为创建服务相关角色 AWS IoT SiteWise
<a name="create-service-linked-role"></a>

AWS IoT SiteWise 需要服务相关角色才能代表您执行某些操作和访问资源。服务相关角色是一种与其直接关联的独特 AWS 身份和访问管理 (IAM) 角色。 AWS IoT SiteWise创建此角色 AWS IoT SiteWise 即表示您授予访问其操作所需的其他 AWS 服务和资源的必要权限，例如用于数据存储或 AWS IoT 设备通信的 Amazon S3。

您无需手动创建服务关联角色。当您在 AWS IoT SiteWise 控制台中执行以下操作时， AWS IoT SiteWise 会为您创建服务相关角色。
+ 创建 Greengrass V1 网关。
+ 配置日志记录选项。
+ 在执行查询横幅中选择“选择加入”按钮。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。当您在 AWS IoT SiteWise 控制台中执行任何操作时， AWS IoT SiteWise 会再次为您创建服务相关角色。

您也可以使用 IAM 控制台或 API 为 AWS IoT SiteWise创建服务相关角色。
+ 要在 IAM 控制台中执行此操作，请使用 **AWSServiceRoleForIoTSiteWise** 策略创建一个角色并与建立信任关系`iotsitewise.amazonaws.com`。
+ 要使用 AWS CLI 或 IAM API 执行此操作，请使用`arn:aws:iam::aws:policy/aws-service-role/AWSServiceRoleForIoTSiteWise`策略创建一个角色并与建立信任关系`iotsitewise.amazonaws.com`。

有关更多信息，请参阅《IAM 用户指南》**中的[创建服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html#create-service-linked-role)。

如果您删除了此服务相关角色，可以使用同样的过程再次创建角色。

# 更新服务相关角色 AWS IoT SiteWise
<a name="edit-service-linked-role"></a>

AWS IoT SiteWise 不允许您编辑 AWSService RoleForIo TSite Wise 服务相关角色。在创建服务相关角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。不过，您可以使用 IAM 编辑角色的说明。有关更多信息，请参阅《IAM 用户指南》**中的[更新服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-service-linked-role.html)。

# 删除的服务相关角色 AWS IoT SiteWise
<a name="delete-service-linked-role"></a>

如果不再使用某个需要服务相关角色的特征或服务，建议删除关联的角色。这是为了避免出现未被监控或维护的非活动实体。但是，您必须先清除服务相关角色的资源，然后才能手动删除它。

**注意**  
如果您尝试删除资源时 AWS IoT SiteWise 服务正在使用该角色，则删除可能会失败。如果发生这种情况，请等待几分钟，然后重试。

**删除 AWSServiceRoleForIoTSite智者使用的 AWS IoT SiteWise 资源**

1. 禁用登录功能 AWS IoT SiteWise。有关更多信息，请参阅 [更改日志记录级别](monitor-cloudwatch-logs.md#change-logging-level)。

1. 删除所有活动的 SiteWise Edge 网关。

**使用 IAM 手动删除服务关联角色**

使用 IAM 控制台 AWS CLI、或 AWS API 删除 AWSService RoleForIo TSite Wise 服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的[删除角色或实例配置文件](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html#delete-service-linked-role)。

## AWS IoT SiteWise 服务相关角色支持的区域
<a name="slr-regions"></a>

AWS IoT SiteWise 支持在提供服务的所有区域中使用服务相关角色。有关更多信息，请参阅 [AWS IoT SiteWise 终端节点和配额](https://docs.aws.amazon.com/general/latest/gr/iot-sitewise.html)。

# 将服务角色用于 AWS IoT SiteWise Monitor
<a name="monitor-service-role"></a>

 服务角色是由一项服务担任、代表您执行操作的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。IAM 管理员可以在 IAM 中创建、修改和删除服务角色。有关更多信息，请参阅《IAM 用户指南》**中的[创建向 AWS 服务委派权限的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

要允许联合的 M SiteWise onitor 门户用户访问您的 AWS IoT SiteWise和 AWS IAM Identity Center资源，您必须将服务角色附加到您创建的每个门户。服务角色必须将 M SiteWise onitor 指定为可信实体，并包含[AWSIoTSiteWiseMonitorPortalAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTSiteWiseMonitorPortalAccess)托管策略或定义[等效权限](#monitor-service-role-permissions)。此策略由 M SiteWise onitor 维护 AWS 并定义了用于访问您 AWS IoT SiteWise 和 IAM Identity Center 资源的一组权限。

创建 M SiteWise onitor 门户时，必须选择允许该门户的用户访问您 AWS IoT SiteWise和 IAM Identity Center 资源的角色。 AWS IoT SiteWise 控制台可以为您创建和配置角色。您可以稍后在 IAM 中编辑该角色。如果您从角色中移除所需的权限或删除该角色，您的门户用户在使用其 SiteWise 监控器门户时会遇到问题。

**注意**  
2020 年 4 月 29 日之前创建的门户不需要服务角色。如果您是在此日期之后创建的门户，则必须附加服务角色才能继续使用。为此，请导航到 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)的**门户**页面，再选择**迁移所有门户以使用 IAM 角色**。

以下各节介绍如何在 AWS 管理控制台 或中创建和管理 SiteWise 监控服务角色 AWS Command Line Interface。

**Contents**
+ [

## SiteWise 监控器（经典）的服务角色权限
](#monitor-service-role-permissions)
+ [

## SiteWise 监控器的服务角色权限（AI 感知）
](#monitor-ai-service-role-permissions)
+ [

## 管理 SiteWise 监控服务角色（控制台）
](#manage-portal-role-console)
  + [

### 查找门户的服务角色（控制台）
](#find-portal-role-console)
  + [

### 创建 SiteWise 监控服务角色（AWS IoT SiteWise 控制台）
](#create-portal-role-sitewise-console)
  + [

### 创建 SiteWise 监控服务角色（IAM 控制台）
](#create-portal-role-iam-console)
  + [

### 更改门户的服务角色（控制台）
](#change-portal-role-console)
+ [

## 管理 SiteWise 监控服务角色 (CLI)
](#manage-portal-role-cli)
  + [

### 查找门户的服务角色（CLI）
](#find-portal-role-cli)
  + [

### 创建 SiteWise 监控服务角色 (CLI)
](#create-portal-role-cli)
+ [

## SiteWise 监控更新 AWSIo TSite WiseMonitorServiceRole
](#monitor-role-permission-updates)

## SiteWise 监控器（经典）的服务角色权限
<a name="monitor-service-role-permissions"></a>

创建门户时， AWS IoT SiteWise 允许您创建名称以开头的角色**AWSIoTSiteWiseMonitorServiceRole**。此角色允许联合 SiteWise 监视器用户访问您的门户配置、资产、资产数据以及 IAM Identity Center 配置。

该角色信任以下服务来代入角色：
+ `monitor.iotsitewise.amazonaws.com`

该角色使用以下权限策略（开头为）**AWSIoTSiteWiseMonitorServicePortalPolicy**，以允许 M SiteWise onitor 用户对您账户中的资源完成操作。[AWSIoTSiteWiseMonitorPortalAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTSiteWiseMonitorPortalAccess) 托管策略定义等效权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:DescribePortal",
                "iotsitewise:CreateProject",
                "iotsitewise:DescribeProject",
                "iotsitewise:UpdateProject",
                "iotsitewise:DeleteProject",
                "iotsitewise:ListProjects",
                "iotsitewise:BatchAssociateProjectAssets",
                "iotsitewise:BatchDisassociateProjectAssets",
                "iotsitewise:ListProjectAssets",
                "iotsitewise:CreateDashboard",
                "iotsitewise:DescribeDashboard",
                "iotsitewise:UpdateDashboard",
                "iotsitewise:DeleteDashboard",
                "iotsitewise:ListDashboards",
                "iotsitewise:CreateAccessPolicy",
                "iotsitewise:DescribeAccessPolicy",
                "iotsitewise:UpdateAccessPolicy",
                "iotsitewise:DeleteAccessPolicy",
                "iotsitewise:ListAccessPolicies",
                "iotsitewise:DescribeAsset",
                "iotsitewise:ListAssets",
                "iotsitewise:ListAssociatedAssets",
                "iotsitewise:DescribeAssetProperty",
                "iotsitewise:GetAssetPropertyValue",
                "iotsitewise:GetAssetPropertyValueHistory",
                "iotsitewise:GetAssetPropertyAggregates",
                "iotsitewise:BatchPutAssetPropertyValue",
                "iotsitewise:ListAssetRelationships",
                "iotsitewise:DescribeAssetModel",
                "iotsitewise:ListAssetModels",
                "iotsitewise:UpdateAssetModel",
                "iotsitewise:UpdateAssetModelPropertyRouting",
                "sso-directory:DescribeUsers",
                "sso-directory:DescribeUser",
                "iotevents:DescribeAlarmModel",
                "iotevents:ListTagsForResource"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:BatchAcknowledgeAlarm",
                "iotevents:BatchSnoozeAlarm",
                "iotevents:BatchEnableAlarm",
                "iotevents:BatchDisableAlarm"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "iotevents:keyValue": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:CreateAlarmModel",
                "iotevents:TagResource"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "aws:RequestTag/iotsitewisemonitor": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:UpdateAlarmModel",
                "iotevents:DeleteAlarmModel"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "aws:ResourceTag/iotsitewisemonitor": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "iotevents.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iotsitewise:CreateProject",
        "iotsitewise:DescribeProject",
        "iotsitewise:UpdateProject",
        "iotsitewise:DeleteProject",
        "iotsitewise:ListProjects",
        "iotsitewise:BatchAssociateProjectAssets",
        "iotsitewise:BatchDisassociateProjectAssets",
        "iotsitewise:ListProjectAssets",
        "iotsitewise:CreateDashboard",
        "iotsitewise:DescribeDashboard",
        "iotsitewise:UpdateDashboard",
        "iotsitewise:DeleteDashboard",
        "iotsitewise:ListDashboards",
        "iotsitewise:CreateAccessPolicy",
        "iotsitewise:DescribeAccessPolicy",
        "iotsitewise:UpdateAccessPolicy",
        "iotsitewise:DeleteAccessPolicy",
        "iotsitewise:ListAccessPolicies",
        "iotsitewise:DescribeAsset",
        "iotsitewise:ListAssets",
        "iotsitewise:ListAssociatedAssets",
        "iotsitewise:DescribeAssetProperty",
        "iotsitewise:GetAssetPropertyValue",
        "iotsitewise:GetAssetPropertyValueHistory",
        "iotsitewise:GetAssetPropertyAggregates"
      ],
      "Resource": "*"
    }
  ]
}
```

------

有关警报所需权限的更多信息，请参阅 [在中设置事件警报的权限 AWS IoT SiteWise](alarms-iam-permissions.md)。

当门户用户登录时，M SiteWise onitor [会根据服务角色与该用户的访问策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)的交叉点创建会话策略。访问策略定义 身份对门户和项目的访问级别。有关门户权限和访问策略的更多信息，请参阅[管理您的 SiteWise 监控器门户](administer-portals.md)和[CreateAccessPolicy](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAccessPolicy.html)。

## SiteWise 监控器的服务角色权限（AI 感知）
<a name="monitor-ai-service-role-permissions"></a>

创建门户时， AWS IoT SiteWise 允许您创建一个名称以 **Io** 开头的角色TSiteWisePortalRole。此角色允许联合 SiteWise 监视器用户访问您的门户配置、资产、资产数据以及 IAM Identity Center 配置。

**警告**  
 SiteWise 监视器（AI 感知）不支持@@ **项目所有者和****项目查看**者角色。

该角色信任以下服务来代入角色：
+ `monitor.iotsitewise.amazonaws.com`

该角色使用以下以 **Io TSite Wise** 开头的权限策略 AIPortalAccessPolicy，以允许 M SiteWise onitor 用户完成对您账户中的资源的操作。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:CreateProject",
                "iotsitewise:DescribePortal",
                "iotsitewise:ListProjects",
                "iotsitewise:DescribeProject",
                "iotsitewise:UpdateProject",
                "iotsitewise:DeleteProject",
                "iotsitewise:CreateDashboard",
                "iotsitewise:DescribeDashboard",
                "iotsitewise:UpdateDashboard",
                "iotsitewise:DeleteDashboard",
                "iotsitewise:ListDashboards",
                "iotsitewise:ListAssets",
                "iotsitewise:DescribeAsset",
                "iotsitewise:ListAssociatedAssets",
                "iotsitewise:ListAssetProperties",
                "iotsitewise:DescribeAssetProperty",
                "iotsitewise:GetAssetPropertyValue",
                "iotsitewise:GetAssetPropertyValueHistory",
                "iotsitewise:GetAssetPropertyAggregates",
                "iotsitewise:GetInterpolatedAssetPropertyValues",
                "iotsitewise:BatchGetAssetPropertyAggregates",
                "iotsitewise:BatchGetAssetPropertyValue",
                "iotsitewise:BatchGetAssetPropertyValueHistory",
                "iotsitewise:ListAssetRelationships",
                "iotsitewise:DescribeAssetModel",
                "iotsitewise:ListAssetModels",
                "iotsitewise:DescribeAssetCompositeModel",
                "iotsitewise:DescribeAssetModelCompositeModel",
                "iotsitewise:ListAssetModelProperties",
                "iotsitewise:ExecuteQuery",
                "iotsitewise:ListTimeSeries",
                "iotsitewise:DescribeTimeSeries",
                "iotsitewise:InvokeAssistant",
                "iotsitewise:DescribeDataset",
                "iotsitewise:ListDatasets",
                "iotevents:DescribeAlarmModel",
                "iotevents:ListTagsForResource",
                "iottwinmaker:ListWorkspaces",
                "iottwinmaker:ExecuteQuery",
                "iottwinmaker:GetWorkspace",
                "identitystore:DescribeUser"
            ],
            "Resource": "*"
        }
    ]
}
```

------

当门户用户登录时，M SiteWise onitor [会根据服务角色与该用户的访问策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)的交叉点创建会话策略。

## 管理 SiteWise 监控服务角色（控制台）
<a name="manage-portal-role-console"></a>

 AWS IoT SiteWise 控制台 便于管理门户的 SiteWise 监控服务角色。创建门户后，控制台会检查是否存在适合附加到该门户的现有角色。如果没有可用的角色，则控制台可以为您创建和配置服务角色。有关更多信息，请参阅 [在 Monito SiteWise r 中创建入口](monitor-create-portal.md)。

**Topics**
+ [

### 查找门户的服务角色（控制台）
](#find-portal-role-console)
+ [

### 创建 SiteWise 监控服务角色（AWS IoT SiteWise 控制台）
](#create-portal-role-sitewise-console)
+ [

### 创建 SiteWise 监控服务角色（IAM 控制台）
](#create-portal-role-iam-console)
+ [

### 更改门户的服务角色（控制台）
](#change-portal-role-console)

### 查找门户的服务角色（控制台）
<a name="find-portal-role-console"></a>

使用以下步骤查找附加到 SiteWise 监控器门户的服务角色。

**查找门户的服务角色**

1. 导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左侧导航窗格中，选择 **门户**。

1. 选择要查找其服务角色的门户。

   附加到门户的角色显示在**权限**、**服务角色** 下。

### 创建 SiteWise 监控服务角色（AWS IoT SiteWise 控制台）
<a name="create-portal-role-sitewise-console"></a>

创建 M SiteWise onitor 门户时，可以为门户创建服务角色。有关更多信息，请参阅 [在 Monito SiteWise r 中创建入口](monitor-create-portal.md)。

您也可以在 AWS IoT SiteWise 控制台中为现有门户创建服务角色。这将取代门户的现有服务角色。

**为现有门户创建服务角色**

1. <a name="sitewise-open-console"></a>导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. <a name="sitewise-choose-portals"></a>在导航窗格中，选择 **门户**。

1. 选择要为其创建新服务角色的门户。

1. <a name="sitewise-edit-portal-details"></a>在**门户详细信息**下，选择**编辑**。

1. 在**权限**下，从列表中选择**创建和使用新的服务角色**。

1. 输入新角色的名称。

1. 选择**保存**。

### 创建 SiteWise 监控服务角色（IAM 控制台）
<a name="create-portal-role-iam-console"></a>

您可以在 IAM 控制台中从服务角色模板创建服务角色。此角色模板包括[AWSIoTSiteWiseMonitorPortalAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTSiteWiseMonitorPortalAccess)托管策略，并将 Monito SiteWise r 指定为可信实体。

**通过门户服务角色模板创建服务角色**

1. 导航到 [IAM 控制台](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择 **角色**。

1. 选择**创建角色**。

1. 在**选择用例**中，选择**物联网 SiteWise**。

1. 在**选择您的使用案例**中，选择 **IoT SiteWise Monitor - Portal**。

1. 选择**下一步: 权限**。

1. 选择**下一步: 标签**。

1. 选择**下一步：审核**。

1. 在**角色名称**中，输入新服务角色名称。

1. 选择**创建角色**。

### 更改门户的服务角色（控制台）
<a name="change-portal-role-console"></a>

使用以下步骤为门户选择不同的 SiteWise 监控服务角色。

**更改门户的服务角色**

1. <a name="sitewise-open-console"></a>导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. <a name="sitewise-choose-portals"></a>在导航窗格中，选择 **门户**。

1. 选择要更改其服务角色的门户。

1. <a name="sitewise-edit-portal-details"></a>在**门户详细信息**下，选择**编辑**。

1. 在**权限**下，选择**使用现有角色**。

1. 选择要附加到此门户的现有角色。

1. 选择**保存**。

## 管理 SiteWise 监控服务角色 (CLI)
<a name="manage-portal-role-cli"></a>

您可以将 AWS CLI 用于以下门户服务角色管理任务：

**Topics**
+ [

### 查找门户的服务角色（CLI）
](#find-portal-role-cli)
+ [

### 创建 SiteWise 监控服务角色 (CLI)
](#create-portal-role-cli)

### 查找门户的服务角色（CLI）
<a name="find-portal-role-cli"></a>

要查找附加到 SiteWise 监控器门户的服务角色，请运行以下命令列出当前区域中的所有门户。

```
aws iotsitewise list-portals
```

此操作将按照以下格式返回包含门户摘要的响应。

```
{
  "portalSummaries": [
    {
      "id": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE",
      "name": "WindFarmPortal",
      "description": "A portal that contains wind farm projects for Example Corp.",
      "roleArn": "arn:aws:iam::123456789012:role/service-role/role-name",
      "startUrl": "https://a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE.app.iotsitewise.aws",
      "creationDate": "2020-02-04T23:01:52.90248068Z",
      "lastUpdateDate": "2020-02-04T23:01:52.90248078Z"
    }
  ]
}
```

如果您知道门户的 ID，也可以使用该[DescribePortal](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribePortal.html)操作来查找门户的角色。

### 创建 SiteWise 监控服务角色 (CLI)
<a name="create-portal-role-cli"></a>

使用以下步骤创建新的 SiteWise 监控服务角色。

**创建 SiteWise 监控服务角色**

1. 使用允许 Monito SiteWise r 担任该角色的信任策略创建角色。此示例根据存储在 JSON 字符串中的信任策略创建名为 **MySiteWiseMonitorPortalRole** 的角色。

------
#### [ Linux, macOS, or Unix ]

   ```
   aws iam create-role --role-name MySiteWiseMonitorPortalRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "monitor.iotsitewise.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }'
   ```

------
#### [ Windows command prompt ]

   ```
   aws iam create-role --role-name MySiteWiseMonitorPortalRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"monitor.iotsitewise.amazonaws.com\"},\"Action\":\"sts:AssumeRole\"}]}"
   ```

------

1. 从输出中的角色元数据复制角色 ARN。创建门户时，您可以使用此 ARN 将角色与门户关联。有关创建门户的更多信息，请参阅 *AWS IoT SiteWise API 参考[CreatePortal](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreatePortal.html)*中的。

1. 

   1. 对于 SiteWise 监控器（经典）-将`AWSIoTSiteWiseMonitorPortalAccess`策略附加到角色，或附加定义等效权限的策略。

      ```
      aws iam attach-role-policy --role-name MySiteWiseMonitorPortalRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSIoTSiteWiseMonitorPortalAccess
      ```

   1. 对于 SiteWise 监控器（AI 感知）-将`IoTSiteWiseAIPortalAccessPolicy`策略附加到角色，或附加定义等效权限的策略。例如，创建具有门户访问权限的策略。以下示例创建了一个名为的策略`MySiteWiseMonitorPortalAccess`。

      ```
      aws iam create-policy \
          --policy-name MySiteWiseMonitorPortalAccess \
          --policy-document '{
          "Version": "2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "iotsitewise:CreateProject",
                      "iotsitewise:DescribePortal",
                      "iotsitewise:ListProjects",
                      "iotsitewise:DescribeProject",
                      "iotsitewise:UpdateProject",
                      "iotsitewise:DeleteProject",
                      "iotsitewise:CreateDashboard",
                      "iotsitewise:DescribeDashboard",
                      "iotsitewise:UpdateDashboard",
                      "iotsitewise:DeleteDashboard",
                      "iotsitewise:ListDashboards",
                      "iotsitewise:ListAssets",
                      "iotsitewise:DescribeAsset",
                      "iotsitewise:ListAssociatedAssets",
                      "iotsitewise:ListAssetProperties",
                      "iotsitewise:DescribeAssetProperty",
                      "iotsitewise:GetAssetPropertyValue",
                      "iotsitewise:GetAssetPropertyValueHistory",
                      "iotsitewise:GetAssetPropertyAggregates",
                      "iotsitewise:GetInterpolatedAssetPropertyValues",
                      "iotsitewise:BatchGetAssetPropertyAggregates",
                      "iotsitewise:BatchGetAssetPropertyValue",
                      "iotsitewise:BatchGetAssetPropertyValueHistory",
                      "iotsitewise:ListAssetRelationships",
                      "iotsitewise:DescribeAssetModel",
                      "iotsitewise:ListAssetModels",
                      "iotsitewise:DescribeAssetCompositeModel",
                      "iotsitewise:DescribeAssetModelCompositeModel",
                      "iotsitewise:ListAssetModelProperties",
                      "iotsitewise:ExecuteQuery",
                      "iotsitewise:ListTimeSeries",
                      "iotsitewise:DescribeTimeSeries",
                      "iotsitewise:InvokeAssistant",
                      "iotsitewise:DescribeDataset",
                      "iotsitewise:ListDatasets",
                      "iotevents:DescribeAlarmModel",
                      "iotevents:ListTagsForResource",
                      "iottwinmaker:ListWorkspaces",
                      "iottwinmaker:ExecuteQuery",
                      "iottwinmaker:GetWorkspace",
                      "identitystore:DescribeUser"
                  ],
                  "Resource": "*"
              }
          ]
      }'
      ```

**将服务角色附加到现有门户**

1. 要检索门户的现有详细信息，请运行以下命令。*portal-id*替换为门户的 ID。

   ```
   aws iotsitewise describe-portal --portal-id portal-id
   ```

   该操作返回一个响应，其中包含如下格式的门户详细信息。

   ```
   {
       "portalId": "a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE",
       "portalArn": "arn:aws:iotsitewise:region:account-id:portal/a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE",
       "portalName": "WindFarmPortal",
       "portalDescription": "A portal that contains wind farm projects for Example Corp.",
       "portalClientId": "E-1a2b3c4d5e6f_sn6tbqHVzLWVEXAMPLE",
       "portalStartUrl": "https://a1b2c3d4-5678-90ab-cdef-aaaaaEXAMPLE.app.iotsitewise.aws",
       "portalContactEmail": "support@example.com",
       "portalStatus": {
           "state": "ACTIVE"
       },
       "portalCreationDate": "2020-04-29T23:01:52.90248068Z",
       "portalLastUpdateDate": "2020-04-29T00:28:26.103548287Z",
       "roleArn": "arn:aws:iam::123456789012:role/service-role/AWSIoTSiteWiseMonitorServiceRole_1aEXAMPLE"
   }
   ```

1. 要将服务角色附加到门户，请运行以下命令。*role-arn*替换为服务角色 ARN，并将剩余参数替换为门户的现有值。

   ```
   aws iotsitewise update-portal \
     --portal-id portal-id \
     --role-arn role-arn \
     --portal-name portal-name \
     --portal-description portal-description \
     --portal-contact-email portal-contact-email
   ```

## SiteWise 监控更新 AWSIo TSite WiseMonitorServiceRole
<a name="monitor-role-permission-updates"></a>

您可以查看有关 for M SiteWise onit **AWSIoTSiteWiseMonitorServiceRole**or 更新的详细信息，从该服务开始跟踪更改时开始。要获得有关此页面变更的自动提醒，请订阅 “ AWS IoT SiteWise 文档历史记录” 页面上的 RSS feed。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  [AWSIoTSiteWiseMonitorPortalAccess](#monitor-service-role-permissions) - 更新的策略  |  AWS IoT SiteWise 更新了警报功能的[AWSIoTSiteWiseMonitorPortalAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTSiteWiseMonitorPortalAccess)托管策略。  | 2021 年 5 月 27 日 | 
|  AWS IoT SiteWise 开始跟踪更改  |  AWS IoT SiteWise 开始跟踪其服务角色的变化。  | 2020 年 12 月 15 日 | 

# 在中设置事件警报的权限 AWS IoT SiteWise
<a name="alarms-iam-permissions"></a>

使用 AWS IoT Events 警报模型监控 AWS IoT SiteWise 资产时，您必须拥有以下 IAM 权限：
+ 允许 AWS IoT Events 向发送数据的 AWS IoT Events 服务角色 AWS IoT SiteWise。有关更多信息，请参阅 *AWS IoT Events 开发人员指南*中的适用于 AWS IoT Events的 [身份和访问管理](https://docs.aws.amazon.com/iotevents/latest/developerguide/security-iam.html)。
+ 您必须拥有以下 AWS IoT SiteWise 操作权限：`iotsitewise:DescribeAssetModel`和`iotsitewise:UpdateAssetModelPropertyRouting`。这些权限允许 AWS IoT SiteWise 向 AWS IoT Events 警报模型发送资产属性值。

有关更多信息，请参阅 *IAM 用户指南*[的基于资源的策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)。

## 所需的操作权限
<a name="alarms-action-permissions"></a>

管理员可以使用 AWS JSON 策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。JSON 策略的 `Action` 元素描述可用于在策略中允许或拒绝访问的操作。

在定义 AWS IoT Events 警报模型之前，必须授予以下权限，允许 AWS IoT SiteWise 向警报模型发送资产属性值。
+ `iotsitewise:DescribeAssetModel`，`iotsitewise:ListAssetModels`— AWS IoT Events 允许检查资产属性是否存在。
+ `iotsitewise:UpdateAssetModelPropertyRouting`— AWS IoT SiteWise 允许自动创建允许 AWS IoT SiteWise 向其发送数据的订阅 AWS IoT Events。

有关 AWS IoT SiteWise 支持的操作的更多信息，请参阅《*服务授权参考*》 AWS IoT SiteWise中[定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiotsitewise.html#awsiotsitewise-actions-as-permissions)。

**Example 权限策略示例 1**  
以下策略允许 AWS IoT SiteWise 向任何 AWS IoT Events 警报模型发送资产属性值。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:CreateAlarmModel",
                "iotevents:UpdateAlarmModel"
            ],
            "Resource": "arn:aws:iotevents:us-east-1:123456789012:alarmModel/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:DescribeAssetModel",
                "iotsitewise:ListAssetModels",
                "iotsitewise:UpdateAssetModelPropertyRouting"
            ],
            "Resource": "arn:aws:iotsitewise:us-east-1:123456789012:asset-model/*"
        }
    ]
}
```

**Example 权限策略示例 2**  
以下策略 AWS IoT SiteWise 允许将指定资产属性的值发送到指定的 AWS IoT Events 警报模型。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:CreateAlarmModel",
                "iotevents:UpdateAlarmModel"
            ],
            "Resource": "arn:aws:iotevents:us-east-1:123456789012:alarmModel/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:DescribeAssetModel",
                "iotsitewise:ListAssetModels"
            ],
            "Resource": "arn:aws:iotsitewise:us-east-1:123456789012:asset-model/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:UpdateAssetModelPropertyRouting"
            ],
            "Resource": [
                "arn:aws:iotsitewise:us-east-1:123456789012:asset-model/12345678-90ab-cdef-1234-567890abcdef"
            ],
            "Condition": {
                "StringLike": {
                    "iotsitewise:propertyId": "abcdef12-3456-7890-abcd-ef1234567890",
                    "aws:ResourceTag/AlarmModel": "arn:aws:iotevents:us-east-1:123456789012:alarmModel/MyAlarmModel"
                }
            }
        }
    ]
}
```

## （可选） ListInputRoutings 权限
<a name="alarms-listInputRoutings-permissions"></a>

更新或删除资产模型时， AWS IoT SiteWise 可以检查中的警报模型是否 AWS IoT Events 正在监视与该资产模型关联的资产属性。这可以防止您删除 AWS IoT Events 警报当前正在使用的资产属性。要在中启用此功能 AWS IoT SiteWise，您必须拥有`iotevents:ListInputRoutings`权限。此权限 AWS IoT SiteWise 允许调用所支持[ListInputRoutings](https://docs.aws.amazon.com/iotevents/latest/apireference/API_ListInputRoutings.html)的 API 操作 AWS IoT Events。

**注意**  
强烈建议您添加 `ListInputRoutings` 权限。

**Example 权限策略示例**  
以下政策允许您更新和删除资产模型，并使用中的 `ListInputRoutings` API AWS IoT SiteWise。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:UpdateAssetModel",
                "iotsitewise:DeleteAssetModel",
                "iotevents:ListInputRoutings"
            ],
            "Resource": "arn:aws:iotsitewise:us-east-1:123456789012:asset-model/*"
        }
    ]
}
```

------

## SiteWise 监控器所需的权限
<a name="alarms-swmonitor-permissions"></a>

如果要在 SiteWise 监控门户中使用警报功能，则必须使用以下策略更新[SiteWise 监控服务角色](monitor-service-role.md)：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iotsitewise:DescribePortal",
                "iotsitewise:CreateProject",
                "iotsitewise:DescribeProject",
                "iotsitewise:UpdateProject",
                "iotsitewise:DeleteProject",
                "iotsitewise:ListProjects",
                "iotsitewise:BatchAssociateProjectAssets",
                "iotsitewise:BatchDisassociateProjectAssets",
                "iotsitewise:ListProjectAssets",
                "iotsitewise:CreateDashboard",
                "iotsitewise:DescribeDashboard",
                "iotsitewise:UpdateDashboard",
                "iotsitewise:DeleteDashboard",
                "iotsitewise:ListDashboards",
                "iotsitewise:CreateAccessPolicy",
                "iotsitewise:DescribeAccessPolicy",
                "iotsitewise:UpdateAccessPolicy",
                "iotsitewise:DeleteAccessPolicy",
                "iotsitewise:ListAccessPolicies",
                "iotsitewise:DescribeAsset",
                "iotsitewise:ListAssets",
                "iotsitewise:ListAssociatedAssets",
                "iotsitewise:DescribeAssetProperty",
                "iotsitewise:GetAssetPropertyValue",
                "iotsitewise:GetAssetPropertyValueHistory",
                "iotsitewise:GetAssetPropertyAggregates",
                "iotsitewise:BatchPutAssetPropertyValue",
                "iotsitewise:ListAssetRelationships",
                "iotsitewise:DescribeAssetModel",
                "iotsitewise:ListAssetModels",
                "iotsitewise:UpdateAssetModel",
                "iotsitewise:UpdateAssetModelPropertyRouting",
                "sso-directory:DescribeUsers",
                "sso-directory:DescribeUser",
                "iotevents:DescribeAlarmModel",
                "iotevents:ListTagsForResource"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:BatchAcknowledgeAlarm",
                "iotevents:BatchSnoozeAlarm",
                "iotevents:BatchEnableAlarm",
                "iotevents:BatchDisableAlarm"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "iotevents:keyValue": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:CreateAlarmModel",
                "iotevents:TagResource"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "aws:RequestTag/iotsitewisemonitor": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iotevents:UpdateAlarmModel",
                "iotevents:DeleteAlarmModel"
            ],
            "Resource": "*",
            "Condition": {
                "Null": {
                    "aws:ResourceTag/iotsitewisemonitor": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "iotevents.amazonaws.com"
                    ]
                }
            }
        }
    ]
}
```

------

# 跨服务混淆了副手预防 AWS IoT SiteWise
<a name="cross-service-confused-deputy-prevention"></a>

混淆代理问题是一个安全性问题，即不具有某操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在中 AWS，跨服务模仿可能会导致混乱的副手问题。一个服务（*呼叫服务*) 调用另一项服务（*所谓的服务*)时，可能会发生跨服务模拟。可以操纵调用服务以使用其权限对另一个客户的资源进行操作，否则该服务不应有访问权限。为了防止这种情况， AWS 提供可帮助您保护所有服务的服务委托人数据的工具，这些服务委托人有权限访问账户中的资源。

我们建议在资源策略中使用[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)和[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)全局条件上下文密钥来限制为资源 AWS IoT SiteWise 提供其他服务的权限。如果 `aws:SourceArn` 值不包含账户 ID，例如 Amazon S3 存储桶 Amazon 资源名称（ARN），您必须使用两个全局条件上下文键来限制权限。如果同时使用全局条件上下文密钥和包含账户 ID 的 `aws:SourceArn` 值，则 `aws:SourceAccount` 值和 `aws:SourceArn` 值中的账户在同一策略语句中使用时，必须使用相同的账户 ID。
+  如果您只希望将一个资源与跨服务访问相关联，请使用 `aws:SourceArn`。
+ 如果您想允许该账户中的任何资源与跨服务使用操作相关联，请使用。`aws:SourceAccount`

的值`aws:SourceArn`必须是与`sts:AssumeRole`请求关联的 AWS IoT SiteWise 客户资源。

防范混淆代理问题最有效的方法是使用 `aws:SourceArn` 全局条件上下文键和资源的完整 ARN。如果您不知道资源的完整 ARN，或正在指定多个资源，请针对 ARN 未知部分使用带有通配符 (`*`) 的 `aws:SourceArn` 全局上下文条件键。例如 `arn:aws:servicename:*:123456789012:*`。

**Example - 混淆代理问题防范**  
以下示例显示了如何在中使用`aws:SourceArn`和`aws:SourceAccount`全局条件上下文键 AWS IoT SiteWise 来防止出现混淆的副手问题。    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Sid": "ConfusedDeputyPreventionExamplePolicy",
    "Effect": "Allow",
    "Principal": {
      "Service": "iotsitewise.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "ArnLike": {
        "aws:SourceArn": "arn:aws:iotsitewise:*:123456789012:*"
      },
      "StringEquals": {
        "aws:SourceAccount": "123456789012"
      }
    }
  }
}
```

# 对 AWS IoT SiteWise 身份和访问进行故障排除
<a name="security_iam_troubleshoot"></a>

使用以下信息来帮助您诊断和修复使用 AWS IoT SiteWise 和 AWS Identity and Access Management (IAM) 时可能遇到的常见问题。

**Topics**
+ [

## 我无权在以下位置执行操作 AWS IoT SiteWise
](#security_iam_troubleshoot-no-permissions)
+ [

## 我无权执行 `iam:PassRole`
](#security_iam_troubleshoot-passrole)
+ [

## 我想允许 AWS 账户之外的人访问我的 AWS IoT SiteWise 资源
](#security_iam_troubleshoot-cross-account-access)

## 我无权在以下位置执行操作 AWS IoT SiteWise
<a name="security_iam_troubleshoot-no-permissions"></a>

如果 AWS 管理控制台 告诉您您无权执行某项操作，则必须联系管理员寻求帮助。管理员是指提供用户名和密码的人员。

当 `mateojackson` IAM 用户尝试使用控制台查看有关资产的详细信息，但不具有 `iotsitewise:DescribeAsset` 权限时，会发生以下示例错误。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: iotsitewise:DescribeAsset on resource: a1b2c3d4-5678-90ab-cdef-22222EXAMPLE
```

在这种情况下，Mateo 请求管理员更新其策略，以允许他使用 `iotsitewise:DescribeAsset` 操作访问 ID 为 `a1b2c3d4-5678-90ab-cdef-22222EXAMPLE` 的资产资源。

## 我无权执行 `iam:PassRole`
<a name="security_iam_troubleshoot-passrole"></a>

如果您收到一个错误，表明您无权执行 `iam:PassRole` 操作，则必须更新策略以允许您将角色传递给。 AWS IoT SiteWise

有些 AWS 服务 允许您将现有角色传递给该服务，而不是创建新的服务角色或服务相关角色。为此，您必须具有将角色传递到服务的权限。

当名为 `marymajor` 的 IAM 用户尝试使用控制台在 AWS IoT SiteWise中执行操作时，会发生以下示例错误。但是，服务必须具有服务角色所授予的权限才可执行此操作。Mary 不具有将角色传递到服务的权限。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在这种情况下，必须更新 Mary 的策略以允许她执行 `iam:PassRole` 操作。

如果您需要帮助，请联系您的 AWS 管理员。您的管理员是提供登录凭证的人。

## 我想允许 AWS 账户之外的人访问我的 AWS IoT SiteWise 资源
<a name="security_iam_troubleshoot-cross-account-access"></a>

您可以创建一个角色，以便其他账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖，可以代入角色。对于支持基于资源的策略或访问控制列表 (ACLs) 的服务，您可以使用这些策略向人们授予访问您的资源的权限。

要了解更多信息，请参阅以下内容：
+ 要了解是否 AWS IoT SiteWise 支持这些功能，请参阅[如何 AWS IoT SiteWise 与 IAM 配合使用](security_iam_service-with-iam.md)。
+ 要了解如何提供对您拥有的资源的访问权限 AWS 账户 ，请参阅 [IAM 用户*指南中的向您拥有 AWS 账户 的另一个 IAM 用户*提供访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)权限。
+ 要了解如何向第三方提供对您的资源的访问[权限 AWS 账户，请参阅 *IAM 用户指南*中的向第三方提供](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)访问权限。 AWS 账户 
+ 要了解如何通过身份联合验证提供访问权限，请参阅《IAM 用户指南》**中的[为经过外部身份验证的用户（身份联合验证）提供访问权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 要了解使用角色和基于资源的策略进行跨账户访问之间的差别，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。