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

通过 IAM 跨账户访问

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

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

对于在 Amazon IoT Core 注册表中注册的设备,以下策略为设备授予权限以使用与设备的事物名称匹配的客户端 ID 连接到 Amazon IoT Core 以及发布到 my/topic/thing-name ,其中 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) 的 Amazon IoT Core 注册表中注册的事物名称 client1 连接到 Amazon IoT Core,以及发布到名称前缀为 my/topic/ 的客户端 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 用户委派权限的角色中的步骤执行操作。输入要与之共享访问权限的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" } ] }