将 Amazon IoT Core 和接口 VPC 终端节点一起使用 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将 Amazon IoT Core 和接口 VPC 终端节点一起使用

Amazon IoT Core 使您能够使用接口 VPC 终端节点在您的 VPC 中创建 IoT 数据端点。接口 VPC 终端节点由 Amazon PrivateLink 提供支持,该Amazon技术使您能够通过使用私有 IP 地址访问在Amazon上运行的服务。有关更多信息,请参阅 Amazon Virtual Private Cloud

为了将远程网络上的现场设备(如企业网络)连接到 Amazon VPC,请参阅网络到 Amazon VPC 的连接矩阵中列出的各种选项。

注意

IoT Core 的 VPC 终端节点目前在Amazon中国区域不受支持。

章节主题:

创建 Amazon IoT Core 的 VPC 终端节点

要开始使用 VPC 终端节点,只需创建接口 VPC 终端节点,然后选择 IoT Core 作为Amazon服务。如果您使用 CLI,请务必首先调用 describe-vpc-endpoint-services,以确保您选择了一个可用区域,其中 Amazon IoT Core 存在于您的特定区域中。例如,在 us-east-1 中,此命令将类似于:

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

使用 VPC 终端节点控制对 Amazon IoT Core 的访问

您可以将设备访问限制为 Amazon IoT Core 以仅允许使用 VPC 条件上下文键通过 VPC 终端节点访问。 Amazon IoT Core 支持以下 VPC 相关的上下文键:

注意

例如,以下策略授予权限以使用与事物名称匹配的客户端 ID 连接到 Amazon IoT Core ,并发布到任何以事物名称为前缀的主题,具体条件是设备连接到具有特定 VPC 终端节点 ID 的 VPC 终端节点。此策略将拒绝连接到您的公有 IoT 数据端点的尝试。

{ "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}/*" ] } ] }

VPC 终端节点的限制

本部分介绍与公有端点相比,VPC 终端节点的限制。

  • 当前,VPC 终端节点仅受 IoT 数据端点支持

  • MQTT 保持活动状态的时间限制为 230 秒。保持活动状态超过该时段的时间将自动减少到 230 秒

  • 每个 VPC 终端节点总共支持 100,000 台并发互联设备。如果您需要更多连接,请参阅 使用 IoT Core 扩缩 VPC 终端节点

  • VPC 终端节点仅支持 IPv4 流量。

  • VPC 终端节点将仅提供 ATS 证书,但自定义域除外。

  • 目前不支持 VPC 终端节点策略

使用 IoT Core 扩缩 VPC 终端节点

Amazon IoT Core 接口 VPC 终端节点仅限于通过单个接口端点连接的十万台互联设备。如果您的使用案例需要更多的并发连接到代理,那么我们建议您使用多个 VPC 终端节点并在接口终端节点之间手动路由您的设备。创建 VPC 终端节点时,请指定 --no-private-dns-enabled 作为参数来禁用为接口自动生成的私有 DNS 记录。

要将 DNS 查询从您的设备正确路由到 VPC 终端节点接口,您必须在附加到 VPC 的私有托管区域中创建加权 DNS 记录。要开始操作,请参阅创建私有托管区域。在您的私有托管区域内,您必须根据 ENI IP 为 VPC 终端节点创建一个别名记录,并使所有加权记录具有相同权重。这些 IP 地址可在使用描述字段中的 VPC 终端节点筛选时从 DescribeNetworkInterfaces API Call 中提取。

将自定义域用于 VPC 终端节点

当您启用私有 DNS 选项时, Amazon IoT Core 的 VPC 终端节点将只在您的Amazon账户中生成匹配Amazon托管域的通配符私有 DNS 条目。如果要将自定义域与 VPC 终端节点一起使用,则必须设置一个附加到 VPC 的私有托管区域,该 VPC 应当与您希望用于 Amazon IoT Core 的域名相匹配。有关设置私有托管区域的更多信息。有关更多信息,请参阅创建私有托管区域

我们建议为作为 VPCE 一部分创建的每个 ENI 创建多个加权记录,以便将用于您的自定义域的流量路由到 Amazon IoT Core 。您可以调用 DescribeNetworkInterfaces 并在描述字段中按 VPC 终端节点 ID 删选,从而获得作为 VPC 终端节点的一部分创建的 ENI 的 IP 列表。

适用于 Amazon IoT Core 的 VPC 终端节点的可用性

Amazon IoT Core 接口 VPC 终端节点在所有 Amazon IoT Core 支持的区域中可用,但Amazon中国区域除外。