AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

跨账户访问

AWS IoT 允许您支持委托人订阅并不属于委托人的 AWS 账户中定义的主题或向该主题发布消息。您可以通过创建 IAM 策略和 IAM 角色并将策略附加到角色来配置跨账户访问。

首先,创建一个客户托管 IAM 策略(如创建 IAM 策略中所述),就像您在 AWS 账户中为其他用户和证书创建策略一样。

Registered devices (16)Unregistered devices (16)
Registered devices (16)

对于已在 AWS IoT 注册表中注册的设备,以下策略向设备授予权限,以使用在您的账户的 123456789012 AWS IoT 注册表中注册的事务名称连接到 AWS IoT 和发布到名称前缀为 my/topic/thingName 特定的主题:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:Connection.Thing.ThingName}"], } ] }
Unregistered devices (16)

对于未在 AWS IoT 注册表中注册的设备,以下策略为设备授予权限以使用在您的账户 (123456789012) 的 AWS IoT 注册表中注册的事物名称 client1 连接到 my/topic/,以及发布到名称前缀为 AWS IoT 的客户端 ID 特定的主题:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}"] } ] }

接下来,按照创建向 IAM 用户委派权限的角色中的步骤执行操作。输入要与之共享访问权限的 AWS 账户的账户 ID。接下来是最后一步,请将您刚刚创建的策略附加到角色。如果您稍后需要修改要向其授予权限的 AWS 账户 ID,可使用以下信任策略格式执行操作:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:us-east-1:567890123456:user:MyUser" }, "Action": "sts:AssumeRole", } ] }