

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

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

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

**Topics**
+ [受众](#security_iam_audience)
+ [使用 IAM 身份进行身份验证](#security_iam_authentication)
+ [使用策略管理访问](#security_iam_access-manage)
+ [如何 AWS IoT 与 IAM 配合使用](security_iam_service-with-iam.md)
+ [AWS IoT 基于身份的策略示例](security_iam_id-based-policy-examples.md)
+ [AWS 的托管策略 AWS IoT](security-iam-awsmanpol.md)
+ [对 AWS IoT 身份和访问进行故障排除](security_iam_troubleshoot.md)

## 受众
<a name="security_iam_audience"></a>

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

## 使用 IAM 身份进行身份验证
<a name="security_iam_authentication"></a>

 AWS IoT 身份中可以是设备 (X.509) 证书、Amazon Cognito 身份或 IAM 用户或群组。本主题仅讨论 IAM 身份。有关 AWS IoT 支持的其他身份的更多信息，请参阅[客户端身份验证](client-authentication.md)。

身份验证是您 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)。

## 使用策略管理访问
<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 IoT 与 IAM 配合使用
<a name="security_iam_service-with-iam"></a>

在使用 IAM 管理访问权限之前 AWS IoT，您应该了解哪些 IAM 功能可供使用 AWS IoT。要全面了解如何 AWS IoT 和其他 AWS 服务与 IAM 配合使用，请参阅 IAM *用户指南中的与 IAM* [配合使用的AWS 服务](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_aws-services-that-work-with-iam.html)。

**Topics**
+ [AWS IoT 基于身份的策略](#security_iam_service-with-iam-id-based-policies)
+ [AWS IoT 基于资源的政策](#security_iam_service-with-iam-resource-based-policies)
+ [基于 AWS IoT 标签的授权](#security_iam_service-with-iam-tags)
+ [AWS IoT IAM 角色](#security_iam_service-with-iam-roles)

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

使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源，以及指定在什么条件下允许或拒绝操作。 AWS IoT 支持特定操作、资源和条件键。要了解在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》** 中的 [IAM JSON 策略元素参考](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_elements.html)。

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

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

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

下表列出了 IAM 物联网操作、关联 AWS IoT 的 API 以及该操作所操纵的资源。


****  

| 策略操作 | AWS IoT API | 资源 | 
| --- | --- | --- | 
| 物联网：AcceptCertificateTransfer | AcceptCertificateTransfer |  `arn:aws:iot:region:account-id:cert/cert-id`  ARN 中 AWS 账户 指定的必须是证书要转移到的账户。   | 
| 物联网：AddThingToThingGroup | AddThingToThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：AssociateTargetsWithJob | AssociateTargetsWithJob | none  | 
| 物联网：AttachPolicy | AttachPolicy |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` 或者 `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：AttachPrincipalPolicy | AttachPrincipalPolicy |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：AttachSecurityProfile | AttachSecurityProfile |  `arn:aws:iot:region:account-id:securityprofile/security-profile-name` `arn:aws:iot:region:account-id:dimension/dimension-name`  | 
| 物联网：AttachThingPrincipal | AttachThingPrincipal |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：CancelCertificateTransfer | CancelCertificateTransfer |  `arn:aws:iot:region:account-id:cert/cert-id`  ARN 中 AWS 账户 指定的必须是证书要转移到的账户。   | 
| 物联网：CancelJob | CancelJob |  `arn:aws:iot:region:account-id:job/job-id`  | 
| 物联网：CancelJobExecution | CancelJobExecution |  `arn:aws:iot:region:account-id:job/job-id` `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：ClearDefaultAuthorizer | ClearDefaultAuthorizer | 无 | 
| 物联网：CreateAuthorizer | CreateAuthorizer |  `arn:aws:iot:region:account-id:authorizer/authorizer-function-name`  | 
| 物联网：CreateCertificateFromCsr | CreateCertificateFromCsr | \$1 | 
| 物联网：CreateDimension | CreateDimension | `arn:aws:iot:region:account-id:dimension/dimension-name` | 
| 物联网：CreateJob | CreateJob |  `arn:aws:iot:region:account-id:job/job-id` `arn:aws:iot:region:account-id:thinggroup/thing-group-name` `arn:aws:iot:region:account-id:thing/thing-name` `arn:aws:iot:region:account-id:jobtemplate/job-template-id`  | 
| 物联网：CreateJobTemplate | CreateJobTemplate |  `arn:aws:iot:region:account-id:job/job-id` `arn:aws:iot:region:account-id:jobtemplate/job-template-id`  | 
| 物联网：CreateKeysAndCertificate | CreateKeysAndCertificate | \$1 | 
| 物联网：CreatePolicy | CreatePolicy | `arn:aws:iot:region:account-id:policy/policy-name` | 
| 物联网：CreatePolicyVersion | CreatePolicyVersion |  `arn:aws:iot:region:account-id:policy/policy-name`  这必须是 AWS IoT 策略，而不是 IAM 策略。   | 
| 物联网：CreateRoleAlias | CreateRoleAlias |  (参数：roleAlias) `arn:aws:iot:region:account-id:rolealias/role-alias-name`  | 
| 物联网：CreateSecurityProfile | CreateSecurityProfile |  `arn:aws:iot:region:account-id:securityprofile/security-profile-name` `arn:aws:iot:region:account-id:dimension/dimension-name`  | 
| 物联网：CreateThing | CreateThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：CreateThingGroup | CreateThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` 针对要创建的组和父组 (如果使用)  | 
| 物联网：CreateThingType | CreateThingType |  `arn:aws:iot:region:account-id:thingtype/thing-type-name`  | 
| 物联网：CreateTopicRule | CreateTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：DeleteAuthorizer | DeleteAuthorizer |  `arn:aws:iot:region:account-id:authorizer/authorizer-name`  | 
| 物联网:删除 CACertificate | 删除 CACertificate |  `arn:aws:iot:region:account-id:cacert/cert-id`  | 
| 物联网：DeleteCertificate | DeleteCertificate |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：DeleteDimension | DeleteDimension |  `arn:aws:iot:region:account-id:dimension/dimension-name`  | 
| 物联网：DeleteJob | DeleteJob |  `arn:aws:iot:region:account-id:job/job-id`  | 
| 物联网：DeleteJobTemplate | DeleteJobTemplate |  `arn:aws:iot:region:account-id:job/job-template-id`  | 
| 物联网：DeleteJobExecution | DeleteJobExecution |  `arn:aws:iot:region:account-id:job/job-id` `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：DeletePolicy | DeletePolicy |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：DeletePolicyVersion | DeletePolicyVersion |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：DeleteRegistrationCode | DeleteRegistrationCode | \$1 | 
| 物联网：DeleteRoleAlias | DeleteRoleAlias |  `arn:aws:iot:region:account-id:rolealias/role-alias-name`  | 
| 物联网：DeleteSecurityProfile | DeleteSecurityProfile |  `arn:aws:iot:region:account-id:securityprofile/security-profile-name` `arn:aws:iot:region:account-id:dimension/dimension-name`  | 
| 物联网：DeleteThing | DeleteThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：DeleteThingGroup | DeleteThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：DeleteThingType | DeleteThingType |  `arn:aws:iot:region:account-id:thingtype/thing-type-name`  | 
| 物联网：DeleteTopicRule | DeleteTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网:deletev2 LoggingLevel | deleteV2 LoggingLevel |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：DeprecateThingType | DeprecateThingType |  `arn:aws:iot:region:account-id:thingtype/thing-type-name`  | 
| 物联网：DescribeAuthorizer | DescribeAuthorizer |  `arn:aws:iot:region:account-id:authorizer/authorizer-function-name` (参数：authorizerName) none  | 
| 物联网:描述 CACertificate | 描述 CACertificate |  `arn:aws:iot:region:account-id:cacert/cert-id`  | 
| 物联网：DescribeCertificate | DescribeCertificate |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：DescribeDefaultAuthorizer | DescribeDefaultAuthorizer | 无  | 
| 物联网：DescribeEndpoint | DescribeEndpoint | \$1 | 
| 物联网：DescribeEventConfigurations | DescribeEventConfigurations | none  | 
| 物联网：DescribeIndex | DescribeIndex |  `arn:aws:iot:region:account-id:index/index-name`  | 
| 物联网：DescribeJob | DescribeJob |  `arn:aws:iot:region:account-id:job/job-id`  | 
| 物联网：DescribeJobExecution | DescribeJobExecution | 无 | 
| 物联网：DescribeJobTemplate | DescribeJobTemplate |  `arn:aws:iot:region:account-id:job/job-template-id`  | 
| 物联网：DescribeRoleAlias | DescribeRoleAlias |  `arn:aws:iot:region:account-id:rolealias/role-alias-name`  | 
| 物联网：DescribeThing | DescribeThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：DescribeThingGroup | DescribeThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：DescribeThingRegistrationTask | DescribeThingRegistrationTask | 无 | 
| 物联网：DescribeThingType | DescribeThingType |  `arn:aws:iot:region:account-id:thingtype/thing-type-name`  | 
| 物联网：DetachPolicy | DetachPolicy |  `arn:aws:iot:region:account-id:cert/cert-id` 或者 `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：DetachPrincipalPolicy | DetachPrincipalPolicy |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：DetachSecurityProfile | DetachSecurityProfile |  `arn:aws:iot:region:account-id:securityprofile/security-profile-name` `arn:aws:iot:region:account-id:dimension/dimension-name`  | 
| 物联网：DetachThingPrincipal | DetachThingPrincipal |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：DisableTopicRule | DisableTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：EnableTopicRule | EnableTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：GetEffectivePolicies | GetEffectivePolicies |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：GetIndexingConfiguration | GetIndexingConfiguration | 无 | 
| 物联网：GetJobDocument | GetJobDocument |  `arn:aws:iot:region:account-id:job/job-id`  | 
| 物联网：GetLoggingOptions | GetLoggingOptions | \$1 | 
| 物联网：GetPolicy | GetPolicy |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：GetPolicyVersion | GetPolicyVersion |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：GetRegistrationCode | GetRegistrationCode | \$1 | 
| 物联网：GetTopicRule | GetTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：ListAttachedPolicies | ListAttachedPolicies |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` 或者 `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：ListAuthorizers | ListAuthorizers | 无 | 
| 物联网:列表 CACertificates | 名单 CACertificates | \$1 | 
| 物联网：ListCertificates | ListCertificates | \$1 | 
| 物联网：ListCertificatesByCA | ListCertificatesByCA | \$1 | 
| 物联网：ListIndices | ListIndices | 无 | 
| 物联网：ListJobExecutionsForJob | ListJobExecutionsForJob | 无 | 
| 物联网：ListJobExecutionsForThing | ListJobExecutionsForThing | 无 | 
| 物联网：ListJobs | ListJobs |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` 如果使用 thingGroupName 参数  | 
| 物联网：ListJobTemplates | ListJobs | 无 | 
| 物联网：ListOutgoingCertificates | ListOutgoingCertificates | \$1 | 
| 物联网：ListPolicies | ListPolicies | \$1 | 
| 物联网：ListPolicyPrincipals | ListPolicyPrincipals | \$1 | 
| 物联网：ListPolicyVersions | ListPolicyVersions |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：ListPrincipalPolicies | ListPrincipalPolicies |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：ListPrincipalThings | ListPrincipalThings |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：ListRoleAliases | ListRoleAliases | 无 | 
| 物联网：ListTargetsForPolicy | ListTargetsForPolicy |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：ListThingGroups | ListThingGroups | 无 | 
| 物联网：ListThingGroupsForThing | ListThingGroupsForThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：ListThingPrincipals | ListThingPrincipals |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：ListThingRegistrationTaskReports | ListThingRegistrationTaskReports | 无 | 
| 物联网：ListThingRegistrationTasks | ListThingRegistrationTasks | 无 | 
| 物联网：ListThingTypes | ListThingTypes | \$1 | 
| 物联网：ListThings | ListThings | \$1 | 
| 物联网：ListThingsInThingGroup | ListThingsInThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：ListTopicRules | ListTopicRules | \$1 | 
| IoT: listv2 LoggingLevels | Listv2 LoggingLevels | 无 | 
| 物联网:注册 CACertificate | 注册 CACertificate | \$1 | 
| 物联网：RegisterCertificate | RegisterCertificate | \$1 | 
| 物联网：RegisterThing | RegisterThing | 无 | 
| 物联网：RejectCertificateTransfer | RejectCertificateTransfer |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：RemoveThingFromThingGroup | RemoveThingFromThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：ReplaceTopicRule | ReplaceTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：SearchIndex | SearchIndex |  `arn:aws:iot:region:account-id:index/index-id`  | 
| 物联网：SetDefaultAuthorizer | SetDefaultAuthorizer |  `arn:aws:iot:region:account-id:authorizer/authorizer-function-name`  | 
| 物联网：SetDefaultPolicyVersion | SetDefaultPolicyVersion |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：SetLoggingOptions | SetLoggingOptions |  `arn:aws:iot:region:account-id:role/role-name`  | 
| IoT: setv2 LoggingLevel | setv2 LoggingLevel |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| IoT: setv2 LoggingOptions | setv2 LoggingOptions |  `arn:aws:iot:region:account-id:role/role-name`  | 
| 物联网：StartThingRegistrationTask | StartThingRegistrationTask | 无 | 
| 物联网：StopThingRegistrationTask | StopThingRegistrationTask | 无 | 
| 物联网：TestAuthorization | TestAuthorization |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：TestInvokeAuthorizer | TestInvokeAuthorizer | 无 | 
| 物联网：TransferCertificate | TransferCertificate |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：UpdateAuthorizer | UpdateAuthorizer |  `arn:aws:iot:region:account-id:authorizerfunction/authorizer-function-name`  | 
| 物联网:更新 CACertificate | 更新 CACertificate |  `arn:aws:iot:region:account-id:cacert/cert-id`  | 
| 物联网：UpdateCertificate | UpdateCertificate |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：UpdateDimension | UpdateDimension |  `arn:aws:iot:region:account-id:dimension/dimension-name`  | 
| 物联网：UpdateEventConfigurations | UpdateEventConfigurations | 无 | 
| 物联网：UpdateIndexingConfiguration | UpdateIndexingConfiguration | 无 | 
| 物联网：UpdateRoleAlias | UpdateRoleAlias |  `arn:aws:iot:region:account-id:rolealias/role-alias-name`  | 
| 物联网：UpdateSecurityProfile | UpdateSecurityProfile |  `arn:aws:iot:region:account-id:securityprofile/security-profile-name` `arn:aws:iot:region:account-id:dimension/dimension-name`  | 
| 物联网：UpdateThing | UpdateThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：UpdateThingGroup | UpdateThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：UpdateThingGroupsForThing | UpdateThingGroupsForThing |  `arn:aws:iot:region:account-id:thing/thing-name` `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 

正在执行的策略操作在操作前 AWS IoT 使用以下前缀:`iot:`. 例如，要授予某人列出他们 AWS 账户 在 `ListThings` API 中注册的所有物联网事物的权限，您需要将该`iot:ListThings`操作包含在他们的策略中。策略声明必须包含`Action`或`NotAction`元素。 AWS IoT 定义了自己的一组操作，这些操作描述了您可以使用此服务执行的任务。

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

```
"Action": [
      "ec2:action1",
      "ec2:action2"
```

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

```
"Action": "iot:Describe*"
```

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

#### Device Advisor 操作
<a name="security_iam_service-actions-device-advisor"></a>

下表列出了 IAM物联网Device Advisor 操作、关联的 AWS IoT Device Advisor API 以及操作处理的资源。


****  

| 策略操作 | AWS IoT API | 资源 | 
| --- | --- | --- | 
| iotdeviceAdvisor：CreateSuiteDefinition | CreateSuiteDefinition |  无  | 
| iotdeviceAdvisor：DeleteSuiteDefinition | DeleteSuiteDefinition |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id`  | 
| iotdeviceAdvisor：GetSuiteDefinition | GetSuiteDefinition |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id`  | 
| iotdeviceAdvisor：GetSuiteRun | GetSuiteRun |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-run-id`  | 
| iotdeviceAdvisor：GetSuiteRunReport | GetSuiteRunReport |  `arn:aws:iotdeviceadvisor:region:account-id:suiterun/suite-definition-id/suite-run-id`  | 
| iotdeviceAdvisor：ListSuiteDefinitions | ListSuiteDefinitions | 无 | 
| iotdeviceAdvisor：ListSuiteRuns | ListSuiteRuns |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id`  | 
| iotdeviceAdvisor：ListTagsForResource | ListTagsForResource |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id` `arn:aws:iotdeviceadvisor:region:account-id:suiterun/suite-definition-id/suite-run-id`  | 
| iotdeviceAdvisor：StartSuiteRun | StartSuiteRun |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id`  | 
| iotdeviceAdvisor：TagResource | TagResource |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id` `arn:aws:iotdeviceadvisor:region:account-id:suiterun/suite-definition-id/suite-run-id`  | 
| iotdeviceAdvisor：UntagResource | UntagResource |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id` `arn:aws:iotdeviceadvisor:region:account-id:suiterun/suite-definition-id/suite-run-id`  | 
| iotdeviceAdvisor：UpdateSuiteDefinition | UpdateSuiteDefinition |  `arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id`  | 
| iotdeviceAdvisor：StopSuiteRun | StopSuiteRun |  `arn:aws:iotdeviceadvisor:region:account-id:suiterun/suite-definition-id/suite-run-id`  | 

 AWS IoT 设备顾问中的策略操作在操作前使用以下前缀:`iotdeviceadvisor:`. 例如，要授予某人列出他们在 ListSuiteDefinitions API 中注册的所有套件定义 AWS 账户 的权限，您需要将该`iotdeviceadvisor:ListSuiteDefinitions`操作包含在他们的策略中。

### 资源
<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": "*"
```


**AWS IoT 资源**  

| 策略操作 | AWS IoT API | 资源 | 
| --- | --- | --- | 
| 物联网：AcceptCertificateTransfer | AcceptCertificateTransfer |  `arn:aws:iot:region:account-id:cert/cert-id`  ARN 中 AWS 账户 指定的必须是证书要转移到的账户。   | 
| 物联网：AddThingToThingGroup | AddThingToThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：AssociateTargetsWithJob | AssociateTargetsWithJob | 无  | 
| 物联网：AttachPolicy | AttachPolicy | `arn:aws:iot:region:account-id:thinggroup/thing-group-name` 或者 `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：AttachPrincipalPolicy | AttachPrincipalPolicy |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：AttachThingPrincipal | AttachThingPrincipal |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：CancelCertificateTransfer | CancelCertificateTransfer |  `arn:aws:iot:region:account-id:cert/cert-id`  ARN 中 AWS 账户 指定的必须是证书要转移到的账户。   | 
| 物联网：CancelJob | CancelJob |  `arn:aws:iot:region:account-id:job/job-id`  | 
| 物联网：CancelJobExecution | CancelJobExecution |  `arn:aws:iot:region:account-id:job/job-id` `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：ClearDefaultAuthorizer | ClearDefaultAuthorizer | 无 | 
| 物联网：CreateAuthorizer | CreateAuthorizer |  `arn:aws:iot:region:account-id:authorizer/authorizer-function-name`  | 
| 物联网：CreateCertificateFromCsr | CreateCertificateFromCsr | \$1 | 
| 物联网：CreateJob | CreateJob |  `arn:aws:iot:region:account-id:job/job-id` `arn:aws:iot:region:account-id:thinggroup/thing-group-name` `arn:aws:iot:region:account-id:thing/thing-name` `arn:aws:iot:region:account-id:jobtemplate/job-template-id`  | 
| 物联网：CreateJobTemplate | CreateJobTemplate |  `arn:aws:iot:region:account-id:job/job-id` `arn:aws:iot:region:account-id:jobtemplate/job-template-id`  | 
| 物联网：CreateKeysAndCertificate | CreateKeysAndCertificate | \$1 | 
| 物联网：CreatePolicy | CreatePolicy | `arn:aws:iot:region:account-id:policy/policy-name` | 
| CreatePolicyVersion | 物联网：CreatePolicyVersion |  `arn:aws:iot:region:account-id:policy/policy-name`  这必须是 AWS IoT 策略，而不是 IAM 策略。   | 
| 物联网：CreateRoleAlias | CreateRoleAlias |  (参数：roleAlias) `arn:aws:iot:region:account-id:rolealias/role-alias-name`  | 
| 物联网：CreateThing | CreateThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：CreateThingGroup | CreateThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` 针对要创建的组和父组 (如果使用)  | 
| 物联网：CreateThingType | CreateThingType |  `arn:aws:iot:region:account-id:thingtype/thing-type-name`  | 
| 物联网：CreateTopicRule | CreateTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：DeleteAuthorizer | DeleteAuthorizer |  `arn:aws:iot:region:account-id:authorizer/authorizer-name`  | 
| 物联网:删除 CACertificate | 删除 CACertificate |  `arn:aws:iot:region:account-id:cacert/cert-id`  | 
| 物联网：DeleteCertificate | DeleteCertificate |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：DeleteJob | DeleteJob |  `arn:aws:iot:region:account-id:job/job-id`  | 
| 物联网：DeleteJobExecution | DeleteJobExecution |  `arn:aws:iot:region:account-id:job/job-id` `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：DeleteJobTemplate | DeleteJobTemplate |  `arn:aws:iot:region:account-id:jobtemplate/job-template-id`  | 
| 物联网：DeletePolicy | DeletePolicy |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：DeletePolicyVersion | DeletePolicyVersion |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：DeleteRegistrationCode | DeleteRegistrationCode | \$1 | 
| 物联网：DeleteRoleAlias | DeleteRoleAlias |  `arn:aws:iot:region:account-id:rolealias/role-alias-name`  | 
| 物联网：DeleteThing | DeleteThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：DeleteThingGroup | DeleteThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：DeleteThingType | DeleteThingType |  `arn:aws:iot:region:account-id:thingtype/thing-type-name`  | 
| 物联网：DeleteTopicRule | DeleteTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网:deletev2 LoggingLevel | deleteV2 LoggingLevel |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：DeprecateThingType | DeprecateThingType |  `arn:aws:iot:region:account-id:thingtype/thing-type-name`  | 
| 物联网：DescribeAuthorizer | DescribeAuthorizer |  `arn:aws:iot:region:account-id:authorizer/authorizer-function-name` (参数：authorizerName) none  | 
| 物联网:描述 CACertificate | 描述 CACertificate |  `arn:aws:iot:region:account-id:cacert/cert-id`  | 
| 物联网：DescribeCertificate | DescribeCertificate |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：DescribeDefaultAuthorizer | DescribeDefaultAuthorizer | 无  | 
| 物联网：DescribeEndpoint | DescribeEndpoint | \$1 | 
| 物联网：DescribeEventConfigurations | DescribeEventConfigurations | none  | 
| 物联网：DescribeIndex | DescribeIndex |  `arn:aws:iot:region:account-id:index/index-name`  | 
| 物联网：DescribeJob | DescribeJob |  `arn:aws:iot:region:account-id:job/job-id`  | 
| 物联网：DescribeJobExecution | DescribeJobExecution | 无 | 
| 物联网：DescribeJobTemplate | DescribeJobTemplate |  `arn:aws:iot:region:account-id:jobtemplate/job-template-id`  | 
| 物联网：DescribeRoleAlias | DescribeRoleAlias |  `arn:aws:iot:region:account-id:rolealias/role-alias-name`  | 
| 物联网：DescribeThing | DescribeThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：DescribeThingGroup | DescribeThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：DescribeThingRegistrationTask | DescribeThingRegistrationTask | 无 | 
| 物联网：DescribeThingType | DescribeThingType |  `arn:aws:iot:region:account-id:thingtype/thing-type-name`  | 
| 物联网：DetachPolicy | DetachPolicy |  `arn:aws:iot:region:account-id:cert/cert-id` 或者 `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：DetachPrincipalPolicy | DetachPrincipalPolicy |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：DetachThingPrincipal | DetachThingPrincipal |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：DisableTopicRule | DisableTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：EnableTopicRule | EnableTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：GetEffectivePolicies | GetEffectivePolicies |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：GetIndexingConfiguration | GetIndexingConfiguration | 无 | 
| 物联网：GetJobDocument | GetJobDocument |  `arn:aws:iot:region:account-id:job/job-id`  | 
| 物联网：GetLoggingOptions | GetLoggingOptions | \$1 | 
| 物联网：GetPolicy | GetPolicy |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：GetPolicyVersion | GetPolicyVersion |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：GetRegistrationCode | GetRegistrationCode | \$1 | 
| 物联网：GetTopicRule | GetTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：ListAttachedPolicies | ListAttachedPolicies |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` 或者 `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：ListAuthorizers | ListAuthorizers | 无 | 
| 物联网:列表 CACertificates | 名单 CACertificates | \$1 | 
| 物联网：ListCertificates | ListCertificates | \$1 | 
| 物联网：ListCertificatesByCA | ListCertificatesByCA | \$1 | 
| 物联网：ListIndices | ListIndices | 无 | 
| 物联网：ListJobExecutionsForJob | ListJobExecutionsForJob | 无 | 
| 物联网：ListJobExecutionsForThing | ListJobExecutionsForThing | 无 | 
| 物联网：ListJobs | ListJobs |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` 如果使用 thingGroupName 参数  | 
| 物联网：ListJobTemplates | ListJobTemplates | 无 | 
| 物联网：ListOutgoingCertificates | ListOutgoingCertificates | \$1 | 
| 物联网：ListPolicies | ListPolicies | \$1 | 
| 物联网：ListPolicyPrincipals | ListPolicyPrincipals |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：ListPolicyVersions | ListPolicyVersions |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：ListPrincipalPolicies | ListPrincipalPolicies |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：ListPrincipalThings | ListPrincipalThings |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：ListRoleAliases | ListRoleAliases | 无 | 
| 物联网：ListTargetsForPolicy | ListTargetsForPolicy |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：ListThingGroups | ListThingGroups | 无 | 
| 物联网：ListThingGroupsForThing | ListThingGroupsForThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：ListThingPrincipals | ListThingPrincipals |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：ListThingRegistrationTaskReports | ListThingRegistrationTaskReports | 无 | 
| 物联网：ListThingRegistrationTasks | ListThingRegistrationTasks | 无 | 
| 物联网：ListThingTypes | ListThingTypes | \$1 | 
| 物联网：ListThings | ListThings | \$1 | 
| 物联网：ListThingsInThingGroup | ListThingsInThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：ListTopicRules | ListTopicRules | \$1 | 
| IoT: listv2 LoggingLevels | Listv2 LoggingLevels | 无 | 
| 物联网:注册 CACertificate | 注册 CACertificate | \$1 | 
| 物联网：RegisterCertificate | RegisterCertificate | \$1 | 
| 物联网：RegisterThing | RegisterThing | 无 | 
| 物联网：RejectCertificateTransfer | RejectCertificateTransfer |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：RemoveThingFromThingGroup | RemoveThingFromThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name` `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：ReplaceTopicRule | ReplaceTopicRule |  `arn:aws:iot:region:account-id:rule/rule-name`  | 
| 物联网：SearchIndex | SearchIndex |  `arn:aws:iot:region:account-id:index/index-id`  | 
| 物联网：SetDefaultAuthorizer | SetDefaultAuthorizer |  `arn:aws:iot:region:account-id:authorizer/authorizer-function-name`  | 
| 物联网：SetDefaultPolicyVersion | SetDefaultPolicyVersion |  `arn:aws:iot:region:account-id:policy/policy-name`  | 
| 物联网：SetLoggingOptions | SetLoggingOptions | \$1 | 
| IoT: setv2 LoggingLevel | setv2 LoggingLevel | \$1 | 
| IoT: setv2 LoggingOptions | setv2 LoggingOptions | \$1 | 
| 物联网：StartThingRegistrationTask | StartThingRegistrationTask | 无 | 
| 物联网：StopThingRegistrationTask | StopThingRegistrationTask | 无 | 
| 物联网：TestAuthorization | TestAuthorization |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：TestInvokeAuthorizer | TestInvokeAuthorizer | 无 | 
| 物联网：TransferCertificate | TransferCertificate |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：UpdateAuthorizer | UpdateAuthorizer |  `arn:aws:iot:region:account-id:authorizerfunction/authorizer-function-name`  | 
| 物联网:更新 CACertificate | 更新 CACertificate |  `arn:aws:iot:region:account-id:cacert/cert-id`  | 
| 物联网：UpdateCertificate | UpdateCertificate |  `arn:aws:iot:region:account-id:cert/cert-id`  | 
| 物联网：UpdateEventConfigurations | UpdateEventConfigurations | 无 | 
| 物联网：UpdateIndexingConfiguration | UpdateIndexingConfiguration | 无 | 
| 物联网：UpdateRoleAlias | UpdateRoleAlias |  `arn:aws:iot:region:account-id:rolealias/role-alias-name`  | 
| 物联网：UpdateThing | UpdateThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 
| 物联网：UpdateThingGroup | UpdateThingGroup |  `arn:aws:iot:region:account-id:thinggroup/thing-group-name`  | 
| 物联网：UpdateThingGroupsForThing | UpdateThingGroupsForThing |  `arn:aws:iot:region:account-id:thing/thing-name`  | 

有关格式的更多信息 ARNs，请参阅 [Amazon 资源名称 (ARNs) 和 AWS 服务命名空间](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

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

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

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

#### Device Advisor 资源
<a name="security_iam_service-device-advisor-resources"></a>

要为 Device Advisor IAM 策略定义资源级限制，请使用以下资源 ARN 格式来定义套件和套件运行。 AWS IoT 

套件定义资源 ARN 格式  
`arn:aws:iotdeviceadvisor:region:account-id:suitedefinition/suite-definition-id`

套件运行资源 ARN 格式  
`arn:aws:iotdeviceadvisor:region:account-id:suiterun/suite-definition-id/suite-run-id`

### 条件键
<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)。

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


**AWS IoT 条件键**  

| AWS IoT 条件键 | 描述 | Type | 
| --- | --- | --- | 
| aws:RequestTag/\$1\$1tag-key\$1 | 用户向 AWS IoT发出的请求中包含的标签键。 | 字符串 | 
| aws:ResourceTag/\$1\$1tag-key\$1 | 附加到 AWS IoT 资源的标签的标签密钥组件。 | 字符串 | 
| aws:TagKeys | 与请求中的资源关联的所有标签键名称的列表。 | 字符串 | 

要查看 AWS IoT 条件键列表，请参阅 *IAM 用户指南 AWS IoT*中的[条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-policy-keys)。要了解您可以使用条件键的操作和资源，请参阅[操作定义者 AWS IoT](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)。

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



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

## AWS IoT 基于资源的政策
<a name="security_iam_service-with-iam-resource-based-policies"></a>

基于资源的策略是 JSON 策略文档，用于指定委托人可以在哪些条件下对 AWS IoT 资源执行哪些操作。

AWS IoT 不支持基于 IAM 资源的策略。但是，它确实支持 AWS IoT 基于资源的政策。有关更多信息，请参阅 [AWS IoT Core 政策](iot-policies.md)。

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

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

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

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

I [AM 角色](https://docs.aws.amazon.com/service-authorization/latest/reference/id_roles.html)是您内部具有特定权限 AWS 账户 的实体。

### 将临时凭证与 AWS IoT
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

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

AWS IoT 支持使用临时证书。

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

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

AWS IoT 不支持服务相关角色。

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

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

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

默认情况下，IAM 用户和角色没有创建或修改 AWS IoT 资源的权限。他们也无法使用 AWS 管理控制台 AWS CLI、或 AWS API 执行任务。IAM 管理员必须创建 IAM 策略，以便为用户和角色授予权限以对所需的指定资源执行特定的 API 操作。然后，管理员必须将这些策略附加到需要这些权限的用户或组。

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

**Topics**
+ [策略最佳实践](#security_iam_service-with-iam-policy-best-practices)
+ [使用控制 AWS IoT 台](#security_iam_id-based-policy-examples-console)
+ [允许用户查看他们自己的权限](#security_iam_id-based-policy-examples-view-own-permissions)
+ [根据标签查看 AWS IoT 资源](#security_iam_id-based-policy-examples-view-thing-tags)
+ [根据标签查看 AWS IoT 设备顾问资源](#security_iam-device-advisor-tags)

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

基于身份的策略决定了某人是否可以在您的账户中创建、访问或删除 AWS IoT 资源。这些操作可能会使 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 台
<a name="security_iam_id-based-policy-examples-console"></a>

要访问 AWS IoT 控制台，您必须拥有一组最低权限。这些权限必须允许您列出和查看有关您的 AWS IoT 资源的详细信息 AWS 账户。如果创建比必需的最低权限更为严格的基于身份的策略，对于附加了该策略的实体（用户或角色），控制台将无法按预期正常运行。

为确保这些实体仍然可以使用 AWS IoT 控制台，还要将以下 AWS 托管策略附加到这些实体：`AWSIoTFullAccess`。有关更多信息，请参阅《IAM 用户指南》**中的[为用户添加权限](https://docs.aws.amazon.com/service-authorization/latest/reference/id_users_change-permissions.html#users_change_permissions-add-console)。

对于仅调用 AWS CLI 或 AWS 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": "*"
        }
    ]
}
```

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

您可以在基于身份的策略中使用条件，以便基于标签控制对 AWS IoT 资源的访问。该示例说明了如何创建策略以允许查看事物。不过，只有在事物标签 `Owner` 具有该用户的用户名值时，才会授予权限。此策略还授予在控制台上完成此操作的必要权限。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListBillingGroupsInConsole",
            "Effect": "Allow",
            "Action": "iot:ListBillingGroups",
            "Resource": "*"
        },
        {
            "Sid": "ViewBillingGroupsIfOwner",
            "Effect": "Allow",
           "Action": "iot:DescribeBillingGroup",
            "Resource": "arn:aws:iot:*:*:billinggroup/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"}
        }
        }
    ]
}
```

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

## 根据标签查看 AWS IoT 设备顾问资源
<a name="security_iam-device-advisor-tags"></a>

您可以在基于身份的策略中使用条件，以便基于标签控制对 AWS IoT Device Advisor 资源的访问。以下示例说明如何创建策略以允许查看特定套件定义。但是，仅当套件定义标签具有值设置为 `MQTT` 的 `SuiteType` 时，才会授予权限。此策略还授予在控制台上完成此操作的必要权限。

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewSuiteDefinition",
            "Effect": "Allow",
            "Action": "iotdeviceadvisor:GetSuiteDefinition",
            "Resource": "arn:aws:iotdeviceadvisor:*:*:suitedefinition/*",
            "Condition": {
                "StringEquals": {"aws:ResourceTag/SuiteType": "MQTT"}
        }
        }
    ]
}
```

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







要向用户、群组和角色添加权限，使用 AWS 托管策略比自己编写策略要容易得多。创建仅为团队提供所需权限的 [IAM 客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)需要时间和专业知识。要快速入门，您可以使用我们的 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 托管策略中的权限。服务偶尔会向 AWS 托管式策略添加额外权限以支持新特征。此类更新会影响附加策略的所有身份（用户、组和角色）。当启动新特征或新操作可用时，服务最有可能会更新 AWS 托管式策略。服务不会从 AWS 托管策略中移除权限，因此策略更新不会破坏您的现有权限。

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

**注意**  
AWS IoT 适用于两者 AWS IoT 和 IAM 策略。本主题仅讨论 IAM 策略，它为控制面板和数据面板 API 操作定义策略操作。另请参阅[AWS IoT Core 政策](iot-policies.md)。









## AWS 托管策略： AWSIoTConfig访问权限
<a name="security-iam-awsmanpol-AWSIoTConfigAccess"></a>





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



此策略向相关身份授予权限，以允许访问所有 AWS IoT 配置操作。此策略可能会影响数据处理和存储。要在中查看此政策 AWS 管理控制台，请参阅[AWSIoTConfig访问权限](https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTConfigAccess$jsonEditor?section=permissions)。



**权限详细信息**

该策略包含以下权限。




+ `iot`— 检索 AWS IoT 数据并执行物联网配置操作。



****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:AcceptCertificateTransfer",
                "iot:AddThingToThingGroup",
                "iot:AssociateTargetsWithJob",
                "iot:AttachPolicy",
                "iot:AttachPrincipalPolicy",
                "iot:AttachThingPrincipal",
                "iot:CancelCertificateTransfer",
                "iot:CancelJob",
                "iot:CancelJobExecution",
                "iot:ClearDefaultAuthorizer",
                "iot:CreateAuthorizer",
                "iot:CreateCertificateFromCsr",
                "iot:CreateJob",
                "iot:CreateKeysAndCertificate",
                "iot:CreateOTAUpdate",
                "iot:CreatePolicy",
                "iot:CreatePolicyVersion",
                "iot:CreateRoleAlias",
                "iot:CreateStream",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:CreateThingType",
                "iot:CreateTopicRule",
                "iot:DeleteAuthorizer",
                "iot:DeleteCACertificate",
                "iot:DeleteCertificate",
                "iot:DeleteJob",
                "iot:DeleteJobExecution",
                "iot:DeleteOTAUpdate",
                "iot:DeletePolicy",
                "iot:DeletePolicyVersion",
                "iot:DeleteRegistrationCode",
                "iot:DeleteRoleAlias",
                "iot:DeleteStream",
                "iot:DeleteThing",
                "iot:DeleteThingGroup",
                "iot:DeleteThingType",
                "iot:DeleteTopicRule",
                "iot:DeleteV2LoggingLevel",
                "iot:DeprecateThingType",
                "iot:DescribeAuthorizer",
                "iot:DescribeCACertificate",
                "iot:DescribeCertificate",
                "iot:DescribeDefaultAuthorizer",
                "iot:DescribeEndpoint",
                "iot:DescribeEventConfigurations",
                "iot:DescribeIndex",
                "iot:DescribeJob",
                "iot:DescribeJobExecution",
                "iot:DescribeRoleAlias",
                "iot:DescribeStream",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:DescribeThingRegistrationTask",
                "iot:DescribeThingType",
                "iot:DetachPolicy",
                "iot:DetachPrincipalPolicy",
                "iot:DetachThingPrincipal",
                "iot:DisableTopicRule",
                "iot:EnableTopicRule",
                "iot:GetEffectivePolicies",
                "iot:GetIndexingConfiguration",
                "iot:GetJobDocument",
                "iot:GetLoggingOptions",
                "iot:GetOTAUpdate",
                "iot:GetPolicy",
                "iot:GetPolicyVersion",
                "iot:GetRegistrationCode",
                "iot:GetTopicRule",
                "iot:GetV2LoggingOptions",
                "iot:ListAttachedPolicies",
                "iot:ListAuthorizers",
                "iot:ListCACertificates",
                "iot:ListCertificates",
                "iot:ListCertificatesByCA",
                "iot:ListIndices",
                "iot:ListJobExecutionsForJob",
                "iot:ListJobExecutionsForThing",
                "iot:ListJobs",
                "iot:ListOTAUpdates",
                "iot:ListOutgoingCertificates",
                "iot:ListPolicies",
                "iot:ListPolicyPrincipals",
                "iot:ListPolicyVersions",
                "iot:ListPrincipalPolicies",
                "iot:ListPrincipalThings",
                "iot:ListRoleAliases",
                "iot:ListStreams",
                "iot:ListTargetsForPolicy",
                "iot:ListThingGroups",
                "iot:ListThingGroupsForThing",
                "iot:ListThingPrincipals",
                "iot:ListThingRegistrationTaskReports",
                "iot:ListThingRegistrationTasks",
                "iot:ListThings",
                "iot:ListThingsInThingGroup",
                "iot:ListThingTypes",
                "iot:ListTopicRules",
                "iot:ListV2LoggingLevels",
                "iot:RegisterCACertificate",
                "iot:RegisterCertificate",
                "iot:RegisterThing",
                "iot:RejectCertificateTransfer",
                "iot:RemoveThingFromThingGroup",
                "iot:ReplaceTopicRule",
                "iot:SearchIndex",
                "iot:SetDefaultAuthorizer",
                "iot:SetDefaultPolicyVersion",
                "iot:SetLoggingOptions",
                "iot:SetV2LoggingLevel",
                "iot:SetV2LoggingOptions",
                "iot:StartThingRegistrationTask",
                "iot:StopThingRegistrationTask",
                "iot:TestAuthorization",
                "iot:TestInvokeAuthorizer",
                "iot:TransferCertificate",
                "iot:UpdateAuthorizer",
                "iot:UpdateCACertificate",
                "iot:UpdateCertificate",
                "iot:UpdateEventConfigurations",
                "iot:UpdateIndexingConfiguration",
                "iot:UpdateRoleAlias",
                "iot:UpdateStream",
                "iot:UpdateThing",
                "iot:UpdateThingGroup",
                "iot:UpdateThingGroupsForThing",
                "iot:UpdateAccountAuditConfiguration",
                "iot:DescribeAccountAuditConfiguration",
                "iot:DeleteAccountAuditConfiguration",
                "iot:StartOnDemandAuditTask",
                "iot:CancelAuditTask",
                "iot:DescribeAuditTask",
                "iot:ListAuditTasks",
                "iot:CreateScheduledAudit",
                "iot:UpdateScheduledAudit",
                "iot:DeleteScheduledAudit",
                "iot:DescribeScheduledAudit",
                "iot:ListScheduledAudits",
                "iot:ListAuditFindings",
                "iot:CreateSecurityProfile",
                "iot:DescribeSecurityProfile",
                "iot:UpdateSecurityProfile",
                "iot:DeleteSecurityProfile",
                "iot:AttachSecurityProfile",
                "iot:DetachSecurityProfile",
                "iot:ListSecurityProfiles",
                "iot:ListSecurityProfilesForTarget",
                "iot:ListTargetsForSecurityProfile",
                "iot:ListActiveViolations",
                "iot:ListViolationEvents",
                "iot:ValidateSecurityProfileBehaviors"
            ],
            "Resource": "*"
        }
    ]
}
```

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





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



此策略向相关身份授予权限，以允许只读访问所有 AWS IoT 配置操作。要在中查看此政策 AWS 管理控制台，请参阅[AWSIoTConfigReadOnlyAccess](https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTConfigReadOnlyAccess$jsonEditor?section=permissions)。



**权限详细信息**

该策略包含以下权限。




+ `iot` – 对物联网配置操作执行只读操作。



****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:DescribeAuthorizer",
                "iot:DescribeCACertificate",
                "iot:DescribeCertificate",
                "iot:DescribeDefaultAuthorizer",
                "iot:DescribeEndpoint",
                "iot:DescribeEventConfigurations",
                "iot:DescribeIndex",
                "iot:DescribeJob",
                "iot:DescribeJobExecution",
                "iot:DescribeRoleAlias",
                "iot:DescribeStream",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:DescribeThingRegistrationTask",
                "iot:DescribeThingType",
                "iot:GetEffectivePolicies",
                "iot:GetIndexingConfiguration",
                "iot:GetJobDocument",
                "iot:GetLoggingOptions",
                "iot:GetOTAUpdate",
                "iot:GetPolicy",
                "iot:GetPolicyVersion",
                "iot:GetRegistrationCode",
                "iot:GetTopicRule",
                "iot:GetV2LoggingOptions",
                "iot:ListAttachedPolicies",
                "iot:ListAuthorizers",
                "iot:ListCACertificates",
                "iot:ListCertificates",
                "iot:ListCertificatesByCA",
                "iot:ListIndices",
                "iot:ListJobExecutionsForJob",
                "iot:ListJobExecutionsForThing",
                "iot:ListJobs",
                "iot:ListOTAUpdates",
                "iot:ListOutgoingCertificates",
                "iot:ListPolicies",
                "iot:ListPolicyPrincipals",
                "iot:ListPolicyVersions",
                "iot:ListPrincipalPolicies",
                "iot:ListPrincipalThings",
                "iot:ListRoleAliases",
                "iot:ListStreams",
                "iot:ListTargetsForPolicy",
                "iot:ListThingGroups",
                "iot:ListThingGroupsForThing",
                "iot:ListThingPrincipals",
                "iot:ListThingRegistrationTaskReports",
                "iot:ListThingRegistrationTasks",
                "iot:ListThings",
                "iot:ListThingsInThingGroup",
                "iot:ListThingTypes",
                "iot:ListTopicRules",
                "iot:ListV2LoggingLevels",
                "iot:SearchIndex",
                "iot:TestAuthorization",
                "iot:TestInvokeAuthorizer",
                "iot:DescribeAccountAuditConfiguration",
                "iot:DescribeAuditTask",
                "iot:ListAuditTasks",
                "iot:DescribeScheduledAudit",
                "iot:ListScheduledAudits",
                "iot:ListAuditFindings",
                "iot:DescribeSecurityProfile",
                "iot:ListSecurityProfiles",
                "iot:ListSecurityProfilesForTarget",
                "iot:ListTargetsForSecurityProfile",
                "iot:ListActiveViolations",
                "iot:ListViolationEvents",
                "iot:ValidateSecurityProfileBehaviors"
            ],
            "Resource": "*"
        }
    ]
}
```

## AWS 托管策略： AWSIoTData访问权限
<a name="security-iam-awsmanpol-AWSIoTDataAccess"></a>





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



此策略授予相关的身份权限，允许访问所有 AWS IoT 数据操作。数据操作通过 MQTT 或 HTTP 协议发送数据。要在 AWS 管理控制台中查看该策略，请参阅 [https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTDataAccess?section=permissions](https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTDataAccess?section=permissions)。



**权限详细信息**

该策略包含以下权限。




+ `iot`— 检索 AWS IoT 数据并允许对 AWS IoT 消息操作进行完全访问权限。



****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Connect",
                "iot:Publish",
                "iot:Subscribe",
                "iot:Receive",
                "iot:GetThingShadow",
                "iot:UpdateThingShadow",
                "iot:DeleteThingShadow",
                "iot:ListNamedShadowsForThing"
            ],
            "Resource": "*"
        }
    ]
}
```

## AWS 托管策略： AWSIoTFull访问权限
<a name="security-iam-awsmanpol-AWSIoTFullAccess"></a>





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



此策略向相关身份授予权限，以允许访问所有 AWS IoT 配置和消息收发操作。要在中查看此政策 AWS 管理控制台，请参阅[https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTFullAccess?section=permissions](https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTFullAccess?section=permissions)。



**权限详细信息**

该策略包含以下权限。




+ `iot`— 检索 AWS IoT 数据并允许完全访问 AWS IoT 配置和消息传送操作。
+ `iotjobsdata`— 检索 AWS IoT 作业数据并允许完全访问 AWS IoT 任务数据平面 API 操作。



****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:*",
                "iotjobsdata:*"
            ],
            "Resource": "*"
        }
    ]
}
```

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





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



此策略授予相关的身份权限，允许用户创建 Amazon CloudWatch Logs 群组并将日志流式传输到这些群组。此策略已附加到您的 CloudWatch 日志记录角色。要在中查看此政策 AWS 管理控制台，请参阅[https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTLogging?section=permissions](https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTLogging?section=permissions)。



**权限详细信息**

该策略包含以下权限。




+ `logs`— 检索 CloudWatch 日志。还允许创建 CloudWatch 日志组并将日志流式传输到这些组。



****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:PutMetricFilter",
                "logs:PutRetentionPolicy",
                "logs:GetLogEvents",
                "logs:DeleteLogStream"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

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





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



此策略授予相关的身份权限，允许访问创建 AWS IoT 作业、 AWS IoT 代码签名作业和描述 AWS 代码签名者作业。要在中查看此政策 AWS 管理控制台，请参阅[`AWSIoTOTAUpdate`。](https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTOTAUpdate?section=permissions)



**权限详细信息**

该策略包含以下权限。




+ `iot`— 创建 AWS IoT 工作和代码签名作业。
+ `signer`— 创建 AWS 代码签名者作业。



****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "iot:CreateJob",
            "signer:DescribeSigningJob"
        ],
        "Resource": "*"
    }
}
```

## AWS 托管策略： AWSIoTRule操作
<a name="security-iam-awsmanpol-AWSIoTRuleActions"></a>





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



此策略授予相关的身份权限，允许访问 AWS IoT 规则操作中支持的所有 AWS 服务人。要在中查看此政策 AWS 管理控制台，请参阅[https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTRuleActions?section=permissions](https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTRuleActions?section=permissions)。



**权限详细信息**

该策略包含以下权限。




+ `iot` - 执行用于发布规则操作消息的操作。
+ `dynamodb` - 将消息插入到 DynamoDB 表或将消息拆分为 DynamoDB 表的多列。
+ `s3` - 将对象存储在 Amazon S3 存储桶中。
+ `kinesis` - 将消息发送到 Amazon Kinesis 流对象。
+ `firehose` - 在 Firehose 流对象中插入记录。
+ `cloudwatch`-更改 CloudWatch 警报状态或向 CloudWatch指标发送消息数据。
+ `sns` - 执行使用 Amazon SNS 发布通知的操作。此操作的范围仅限于 AWS IoT SNS 主题。
+ `sqs` - 插入要添加到 SQS 队列的消息。
+ `es`-向 OpenSearch 服务服务发送消息。



****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "dynamodb:PutItem",
            "kinesis:PutRecord",
            "iot:Publish",
            "s3:PutObject",
            "sns:Publish",
            "sqs:SendMessage*",
            "cloudwatch:SetAlarmState",
            "cloudwatch:PutMetricData",
            "es:ESHttpPut",
            "firehose:PutRecord"
        ],
        "Resource": "*"
    }
}
```

## AWS 托管策略： AWSIoTThings注册
<a name="security-iam-awsmanpol-AWSIoTThingsRegistration"></a>





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



此策略向相关身份授予权限，以允许使用 `StartThingRegistrationTask` API 批量注册事物。此策略可能会影响数据处理和存储。要在中查看此政策 AWS 管理控制台，请参阅[https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTThingsRegistration?section=permissions](https://console.aws.amazon.com//iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTThingsRegistration?section=permissions)。



**权限详细信息**

该策略包含以下权限。




+ `iot` - 批量注册时，执行用于创建内容以及附加策略和证书的操作。



****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachPrincipalPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateCertificateFromCsr",
                "iot:CreatePolicy",
                "iot:CreateThing",
                "iot:DescribeCertificate",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:DescribeThingType",
                "iot:DetachPolicy",
                "iot:DetachThingPrincipal",
                "iot:GetPolicy",
                "iot:ListAttachedPolicies",
                "iot:ListPolicyPrincipals",
                "iot:ListPrincipalPolicies",
                "iot:ListPrincipalThings",
                "iot:ListTargetsForPolicy",
                "iot:ListThingGroupsForThing",
                "iot:ListThingPrincipals",
                "iot:RegisterCertificate",
                "iot:RegisterThing",
                "iot:RemoveThingFromThingGroup",
                "iot:UpdateCertificate",
                "iot:UpdateThing",
                "iot:UpdateThingGroupsForThing",
                "iot:AddThingToBillingGroup",
                "iot:DescribeBillingGroup",
                "iot:RemoveThingFromBillingGroup"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```





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



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




| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  [AWSIoTFull访问权限](#security-iam-awsmanpol-AWSIoTFullAccess)-更新现有策略  |  AWS IoT 添加了新的权限，允许用户使用 HTTP 协议访问 AWS IoT 任务数据平面 API 操作。 新的 IAM 策略前缀可为您提供更精细的访问控制，以访问 AWS IoT 任务数据平面终端节点。`iotjobsdata:`对于控制面板 API 操作，您仍然使用 `iot:` 前缀。有关更多信息，请参阅 [AWS IoT Core HTTPS 协议的策略](iot-data-plane-jobs.md#iot-jobs-data-http)。  | 2022 年 5 月 11 日 | 
|  AWS IoT 开始跟踪更改  |  AWS IoT 开始跟踪其 AWS 托管策略的更改。  | 2022 年 5 月 11 日 | 

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

使用以下信息来帮助您诊断和修复在使用 AWS IoT 和 IAM 时可能遇到的常见问题。

**Topics**
+ [我无权在以下位置执行操作 AWS IoT](#security_iam_troubleshoot-no-permissions)
+ [我无权执行 iam：PassRole](#security_iam_troubleshoot-passrole)
+ [我想允许我以外的人 AWS 账户 访问我的 AWS IoT 资源](#security_iam_troubleshoot-cross-account-access)

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

如果您收到错误提示，指明您无权执行某个操作，则必须更新策略以允许执行该操作。

如果 IAM 用户 `mateojackson` 尝试使用控制台查看有关事物资源的详细信息，但没有 `iot:DescribeThing` 权限，则会出现以下示例错误。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: iot:DescribeThing on resource: MyIoTThing
```

在此情况下，必须更新 `mateojackson` 用户的策略，以允许使用 `iot:DescribeThing` 操作访问事物资源。

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

使用 AWS IoT 设备顾问  
如果您使用的是 De AWS IoT vice Advisor，则当用户`mateojackson`尝试使用控制台查看有关套件定义的详细信息但没有`iotdeviceadvisor:GetSuiteDefinition`权限时，会出现以下示例错误。  

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: iotdeviceadvisor:GetSuiteDefinition on resource: MySuiteDefinition
```
在此情况下，必须更新 `mateojackson` 用户的策略，以允许使用 `iotdeviceadvisor:GetSuiteDefinition` 操作访问 *`MySuiteDefinition`* 资源。

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

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

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

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

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

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

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

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

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

要了解更多信息，请参阅以下内容：
+ 要了解是否 AWS IoT 支持这些功能，请参阅[如何 AWS IoT 与 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)。