向 Amazon IoT 规则授予所需的访问权限 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

向 Amazon IoT 规则授予所需的访问权限

您可以使用 IAM 角色来控制每个规则可以访问的Amazon资源。在创建规则之前,您必须创建一个 IAM 角色,并对其应用允许访问所需Amazon资源的策略。执行规则时,Amazon IoT 将代入该角色。

创建用于向 Amazon IoT 规则授予所需访问权限的 IAM 角色和 Amazon IoT 策略 (Amazon CLI)

  1. 将以下信任策略文档(用于授予 Amazon IoT 代入此角色的权限)保存到名为 iot-role-trust.json 的文件。

    { "Version":"2012-10-17", "Statement":[{ "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

    使用 create-role 命令,指定 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" } }
  2. 将以下 JSON 保存到名为 my-iot-policy.json 的文件中。

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

    该 JSON 是授予 Amazon IoT 管理员对 DynamoDB 的访问权限的示例策略文档。

    使用 create-policy 命令授予 Amazon IoT 在代入该角色后访问您的 Amazon 资源的权限,并传入 my-iot-policy.json 文件:

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

    有关如何在 Amazon IoT 的策略中授予对 Amazon 服务的访问权限的更多信息,请参阅 创建 Amazon IoT 规则

    create-policy 命令的输出中包含该策略的 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" } }
  3. 使用 attach-role-policy 命令将您的策略附加到角色:

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