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

通过 IAM 跨账户访问

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

首先,创建一个客户托管 IAM 策略(如创建 IAM 策略中所述),就像您在 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) 的 client1 注册表中注册的事物名称 Amazon IoT Core 连接到 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", } ] }