本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 IAM 跨账户访问
AWS IoT Core 允许您允许委托人发布或订阅 AWS 账户 未归委托人所有的主题中定义的主题。您可以通过创建 IAM policy 和 IAM 角色并将策略附加到角色来配置跨账户访问。
首先,创建一个客户托管 IAM policy(如创建 IAM policy 中所述),就像您在 AWS 账户中为其他用户和证书创建策略一样。
对于在注册 AWS IoT Core 表中注册的设备,以下策略允许设备 AWS IoT Core 使用与设备的事物名称相匹配的客户端 ID 进行连接,并向设备的事物名称my/topic/thing-name
thing-name
所在位置发布信息:
- JSON
-
-
{
"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}"
]
}
]
}
对于未在注册 AWS IoT Core 表中注册的设备,以下策略允许设备使用在您的账户 (123456789012) client1
注册 AWS IoT Core 表中注册的事物名称来连接 AWS IoT Core 并发布到名称前缀为的客户端 ID 专用主题:my/topic/
- JSON
-
-
{
"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 用户委派权限的角色中的步骤操作。输入要与之共享访问权限的 AWS 账户 的账户 ID。接下来是最后一步,请将您刚刚创建的策略附加到角色。如果您稍后需要修改要向其授予权限的 AWS
ID,可使用以下信任策略格式执行操作:
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::567890123456
:user/MyUser
"
},
"Action": "sts:AssumeRole"
}
]
}