

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 通过 IAM 跨账户访问
<a name="cross-account-access"></a>

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

首先，创建一个客户托管 IAM 策略（如[创建 IAM 策略](https://docs.amazonaws.cn//IAM/latest/UserGuide/access_policies_create.html)中所述），就像您在 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 表中注册的事物名称来连接 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 用户委派权限的角色](https://docs.amazonaws.cn//IAM/latest/UserGuide/id_roles_create_for-user.html)中的步骤操作。输入要与之共享访问权限的 Amazon Web Services 账户 的账户 ID。接下来是最后一步，请将您刚刚创建的策略附加到角色。如果您稍后需要修改要向其授予权限的 Amazon ID，可使用以下信任策略格式执行操作：

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": { 
                "AWS": "arn:aws:iam::567890123456:user/MyUser"
        },
            "Action": "sts:AssumeRole"
        }
    ]
}
```