本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 IAM 跨账户访问
Amazon IoT Core 允许您允许委托人发布或订阅在 Amazon Web Services 账户 非委托人所有权中定义的主题。您可以通过创建 IAM 策略和 IAM 角色并将策略附加到角色来配置跨账户访问。
首先,创建一个客户托管 IAM 策略(如创建 IAM 策略中所述),就像您在 Amazon Web Services 账户中为其他用户和证书创建策略一样。
对于在注册 Amazon IoT Core 表中注册的设备,以下策略向设备授予 Amazon IoT Core 使用与设备事物名称相匹配的客户端 ID 进行连接以及向设备事物名称发布到设备事物名称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 表中注册的事物名称来连接到名称前缀为的客户端 ID-specific 主题 Amazon IoT Core 并向其发布内容: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::567890123456:user/MyUser" }, "Action": "sts:AssumeRole" } ] }