

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

# Device Advisor VPC 端点 (AWS PrivateLink)
<a name="device-advisor-vpc-endpoint"></a>

您可以通过创建接口 VPC 终端节点在您的 VPC 和 AWS IoT Core Device Advisor 测试终端节点（数据平*面）之间建立私有*连接。在将 AWS IoT 设备部署到生产环境 AWS IoT Core 之前，您可以使用此端点验证设备的可靠性和安全连接。Device Advisor 的预构建测试可帮助您根据最佳实践验证您的设备软件，以便使用 [TLS](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)、[MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)、[设备影子](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html)和 [AWS IoT Jobs](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html)。

[AWS PrivateLink](https://aws.amazon.com/privatelink)为物联网设备使用的接口端点提供动力。此服务可帮助您以私有方式访问 AWS IoT Core Device Advisor 测试端点，而无需互联网网关、NAT 设备、VPN 连接或 Direct Connect 连接。您的 VPC 中发送 TCP 和 MQTT 数据包的实例不需要公有 IP 地址即可与 AWS IoT Core Device Advisor 测试终端节点通信。您的 VPC 和 VPC 之间的流量 AWS IoT Core Device Advisor 不会离开 AWS Cloud。IoT 设备和 Device Advisor 测试案例之间的任何 TLS 和 MQTT 通信均在您 AWS 账户中的资源范围内。

每个接口端点均由子网中的一个或多个[弹性网络接口](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)表示。

要了解有关使用接口 VPC 端点的更多信息，请参阅《Amazon VPC 用户指南》**中的[接口 VPC 端点 (AWS PrivateLink) ](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)。

## AWS IoT Core Device Advisor VPC 终端节点的注意事项
<a name="vpc-considerations"></a>

在设置接口 VPC 端点之前，请先查看《Amazon VPC 用户指南》**中的[接口端点属性和限制](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations)。继续之前，请注意以下各项：
+ AWS IoT Core Device Advisor 目前支持从您的 VPC 调用设备顾问测试端点（数据平面）。消息代理使用数据面板通信发送和接收数据。这是在 TLS 和 MQTT 数据包的帮助下实现的。用于 AWS IoT Core Device Advisor 将您的 AWS IoT 设备连接到设备顾问测试端点的 VPC 终端节点。此 VPC 端点不使用[控制面板 API 操作](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotdeviceadvisor/index.html)。要创建或运行测试套件或其他控制平面 APIs，请通过公共互联网使用控制台、 AWS SDK 或 AWS 命令行界面。
+ 以下 AWS 区域 支持 VPC 终端节点 AWS IoT Core Device Advisor：
  + 美国东部（弗吉尼亚州北部）
  + 美国西部（俄勒冈）
  + 亚太地区（东京）
  + 欧洲地区（爱尔兰）
+  Device Advisor 支持使用 X.509 客户端证书和 RSA 服务器证书的 MQTT。
+ 目前不支持 [VPC 端点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。
+ 查看 VPC 端点[先决条件](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#prerequisites-interface-endpoints)，了解有关如何[创建连接 VPC 端点的资源](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)的说明。您必须创建 VPC 和私有子网才能使用 AWS IoT Core Device Advisor VPC 终端节点。
+ 您的 AWS PrivateLink 资源有配额。有关更多信息，请参阅 [AWS PrivateLink 配额](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html)。
+ VPC 终端节点仅支持 IPv4 流量。

## 为创建接口 VPC 终端节点 AWS IoT Core Device Advisor
<a name="vpc-interface"></a>

要开始使用 VPC 端点，请[创建接口 VPC 端点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。接下来，选择 AWS IoT Core Device Advisor 作为 AWS 服务。如果您使用 AWS IoT Core Device Advisor 的是 AWS CLI，请[describe-vpc-endpoint-services](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoint-services.html)致电确认您的可用区中是否存在 AWS 区域。确认连接到端点的安全组允许对 MQTT 和 TLS 流量使用 [TCP 协议通信](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)。例如，在美国东部（弗吉尼亚州北部）区域中，使用以下命令：

```
aws ec2 describe-vpc-endpoint-services --service-name com.amazonaws.us-east-1.deviceadvisor.iot
```

您可以使用以下服务名称创建 VPC 终端节点： AWS IoT Core 
+ com.amazonaws.*region*.deviceadvisor.iot

默认情况下，对于此端点开启私有 DNS。这确保默认测试端点的使用保持在您的私有子网内。要获取您的账户或设备级终端节点，请使用控制台 AWS CLI 或 S AWS DK。例如，如果您在公有子网或公共互联网上运行 [get-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotdeviceadvisor/get-endpoint.html)，则可以获取您的端点并使用它来连接到 Device Advisor。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[通过接口端点访问服务](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint)。

为了将 MQTT 客户端连接到 VPC 终端节点接口，该 AWS PrivateLink 服务会在连接到您的 VPC 的私有托管区域中创建 DNS 记录。这些 DNS 记录将 AWS IoT 设备的请求定向到 VPC 端点。

## 控制 AWS IoT Core Device Advisor 通过 VPC 终端节点的访问
<a name="vpc-controlling-access"></a>

您可以使用 VPC [条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)限制设备访问 AWS IoT Core Device Advisor 和仅允许通过 VPC 终端节点进行访问。 AWS IoT Core 支持以下与 VPC 相关的上下文密钥：
+  [SourceVpc](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpc) 
+  [SourceVpce](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcevpce) 
+  [VPCSourcelp](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-vpcsourceip) 

**注意**  
 AWS IoT Core Device Advisor 目前不支持 [VPC 终端节点策略](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#vpc-endpoint-policies)。

以下策略授予 AWS IoT Core Device Advisor 使用与事物名称匹配的客户端 ID 进行连接的权限。它还会发布到任何以事物名称为前缀的主题。该策略以设备连接到具有特定 VPC 端点 ID 的 VPC 端点为条件。此策略拒绝连接到您的公有 AWS IoT Core Device Advisor 测试端点的尝试。

****  

```
{
"Version":"2012-10-17",		 	 	 
    "Statement": [
        {
"Effect": "Allow",
            "Action": [
                "iot:Connect"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
            ],
            "Condition": {
"StringEquals": {
"aws:SourceVpce": "vpce-1a2b3c4d"
            }
        }
            
        },
        {
"Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/${iot:Connection.Thing.ThingName}/*"
            ]
        }
    ]
}
```