通过 IAM 跨账户访问 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

通过 IAM 跨账户访问

Amazon IoT Core 允许您允许委托人发布或订阅 Amazon Web Services 账户 未归委托人所有的主题中定义的主题。您可以通过创建 IAM policy 和 IAM 角色并将策略附加到角色来配置跨账户访问。

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

对于在注册 Amazon IoT Core 表中注册的设备,以下策略允许设备 Amazon IoT Core 使用与设备的事物名称相匹配的客户端 ID 进行连接,并允许设备发布到 thing-name 是设备的事物名称:my/topic/thing-name

{ "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}"], } ] }

对于未在注册 Amazon IoT Core 表中注册的设备,以下策略允许设备使用在您的账户 (123456789012) client1 注册 Amazon IoT Core 表中注册的事物名称来连接 Amazon IoT Core 并发布到名称前缀为的客户端 ID 专用主题:my/topic/

{ "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 用户委派权限的角色中的步骤操作。输入要与之共享访问权限的 Amazon Web Services 账户 的账户 ID。接下来是最后一步,请将您刚刚创建的策略附加到角色。如果您稍后需要修改要向其授予权限的 Amazon ID,可使用以下信任策略格式执行操作:

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