

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

# 授予 AWS IoT 规则所需的访问权限
授予 访问权限

使用 IAM 角色控制每条规则有权访问的 AWS 资源。在创建规则之前，您必须使用允许访问所需 AWS 资源的策略创建 IAM 角色。 AWS IoT 在实施规则时扮演这个角色。

**完成以下步骤以创建 IAM 角色和 AWS IoT 策略，以授予 AWS IoT 规则所需的访问权限 (AWS CLI)。**

1. 将以下信任策略文档（该文档授予代入该角色的 AWS IoT 权限）保存到名为的文件中`iot-role-trust.json`。  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "iot.amazonaws.com"
           },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "123456789012"
               },
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:iot:us-east-1:123456789012:rule/rulename"
               }
           }
           }
       ]
   }
   ```

   使用 [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) 命令，指定 `iot-role-trust.json` 文件，创建 IAM 角色：

   ```
   aws iam create-role --role-name my-iot-role --assume-role-policy-document file://iot-role-trust.json
   ```

   此命令的输出如下所示：

   ```
   {
   	"Role": {
   		"AssumeRolePolicyDocument": "url-encoded-json",
   		"RoleId": "AKIAIOSFODNN7EXAMPLE",
   		"CreateDate": "2015-09-30T18:43:32.821Z",
   		"RoleName": "my-iot-role",
   		"Path": "/",
   		"Arn": "arn:aws:iam::123456789012:role/my-iot-role"
   	}
   }
   ```

1. 将以下 JSON 保存到名为 `my-iot-policy.json` 的文件中。  
****  

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

   此 JSON 是一个示例策略文档，用于向 AWS IoT 管理员授予对 DynamoDB 的访问权限。

   在担任角色后，使用 [create-](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html) p AWS IoT olicy 命令授予对 AWS 资源的访问权限，并传入`my-iot-policy.json`文件：

   ```
   aws iam create-policy --policy-name my-iot-policy --policy-document file://my-iot-policy.json
   ```

   有关如何在的策略 AWS 服务 中授予访问权限的更多信息 AWS IoT，请参阅[创建 AWS IoT 规则](iot-create-rule.md)。

   [create-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html) 命令的输出中包含该策略的 ARN。将策略附加到角色。

   ```
   {
   	"Policy": {
   		"PolicyName": "my-iot-policy",
   		"CreateDate": "2015-09-30T19:31:18.620Z",
   		"AttachmentCount": 0,
   		"IsAttachable": true,
   		"PolicyId": "ZXR6A36LTYANPAI7NJ5UV",
   		"DefaultVersionId": "v1",
   		"Path": "/",
   		"Arn": "arn:aws:iam::123456789012:policy/my-iot-policy",
   		"UpdateDate": "2015-09-30T19:31:18.620Z"
   	}
   }
   ```

1. 使用[attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)命令将您的策略附加到您的角色：

   ```
   aws iam attach-role-policy --role-name my-iot-role --policy-arn "arn:aws:iam::123456789012:policy/my-iot-policy"
   ```

## 撤销规则引擎访问


要立即撤销规则引擎访问，请执行以下操作

1. 从[信任策略](https://docs.aws.amazon.com/iot/latest/developerguide/iot-create-role.html)中移除 iot.amazonaws.com

1. 按照步骤[撤销物联网角色会话](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html)