本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 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" } ] }