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

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

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

借助 Amazon IoT Core,您可以使用接口 VPC 终端节点在您的虚拟私有云 (VPC) 中创建物联网数据终端节点。接口 VPC 终端节点由 Amazon PrivateLink一种 Amazon 技术提供支持,您可以使用该技术 Amazon 通过私有 IP 地址访问在其上运行的服务。有关更多信息,请参阅 Amazon Virtual Private Cloud

要将远程网络(例如公司网络)上的现场设备连接到您的 Amazon VPC,请参阅网络到 Amazon VPC 连接表中列出的选项。

为 Amazon IoT Core 数据平面创建 VPC 终端节点

您可以为 Amazon IoT Core 数据平面 API 创建 VPC 终端节点,将您的设备连接到 Amazon IoT 服务和其他 Amazon 服务。要开始使用 VPC 终端节点,请创建一个接口 VPC 终端节点并选择 Amazon IoT Core 作为 Amazon 服务。如果您使用的是 CLI,describe-vpc-endpoint-services请先致电确保您选择 Amazon IoT Core 的是您的特定可用区 Amazon Web Services 区域。例如,在 us-east-1 中,此命令将类似于:

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

用于自动创建 DNS 记录的 VPC 特征已被禁用。要连接到这些端点,您必须手动创建私有 DNS 记录。有关私有 VPC DNS 记录的更多信息,请参阅 接口终端节点的私有 DNS。有关 Amazon IoT Core VPC 限制的更多信息,请参阅限制

要将 MQTT 客户端连接到 VPC 端点接口,请执行以下操作:

  • 您必须在附加到 VPC 的私有托管区域中手动创建 DNS 记录。要开始使用,请参阅创建私有托管区域

  • 在您的私有托管区域中,为 VPC 端点的每个弹性网络接口 IP 创建别名记录。如果您有多个 VPC 终端节点的多个网络接口 IP,请在所有加权记录之间创建权重相等的加权 DNS 记录。按描述字段中的 VPC 终端节点 ID 筛选后,这些 IP 地址可从 DescribeNetworkInterfacesAPI 调用中获得。

有关创建 Amazon VPC 接口终端节点和为 Amazon IoT Core 数据平面配置私有托管区域,请参阅以下详细说明。

创建 Amazon VPC 接口端点

您可以创建接口 VPC 终端节点以连接到由提供支持的 Amazon 服务 Amazon PrivateLink。使用以下步骤创建连接到 Amazon IoT Core 数据平面或 Amazon IoT Core 凭据提供程序的接口 VPC 终端节点。有关更多信息,请参阅使用接口 VPC 终端节点访问 Amazon 服务

注意

为 Amazon IoT Core 数据平面和 Amazon IoT Core 证书提供者创建 Amazon VPC 接口终端节点的过程类似,但您必须对终端节点进行特定更改才能使连接正常运行。

使用 VPC 端点控制台创建接口 VPC 端点

  1. 导航到 VPC 端点控制台,在左侧菜单的虚拟私有云下,选择端点,然后选择创建端点

  2. 创建端点页面上,指定以下信息。

    • Service category(服务类别)选择Amazon Web Service

    • 对于 Service Name(服务名称),通过输入关键字 iot 进行搜索。在显示的 iot 服务列表中,请选择端点。

      如果您为 Amazon IoT Core 数据平面创建 VPC 终端节点,请为您的区域选择 Amazon IoT Core 数据平面 API 终端节点。终端节点的格式为 com.amazonaws.region.iot.data

      如果您为 Amazon IoT Core 凭证提供者创建 VPC 终端节点,请选择您所在地区的 Amazon IoT Core 凭证提供商终端节点。终端节点的格式为 com.amazonaws.region.iot.credentials

      注意

      中国区域 Amazon IoT Core 数据平面的服务名称将采用以下格式cn.com.amazonaws.region.iot.data。中国区域不支持为 Amazon IoT Core 凭证提供者创建 VPC 终端节点。

    • 对于 VPCSubnets(子网),选择要在其中创建端点的 VPC 和要在其中创建端点网络的可用区 (AZ)。

    • 对于 Enable DNS name(启用 DNS 名称),请确保未选择 Enable for this endpoint(为此端点启用)。 Amazon IoT Core 数据平面和 Amazon IoT Core 凭据提供商都不支持私有 DNS 名称。

    • 对于 Security group(安全组),选择要与端点网络接口关联的安全组。

    • 您可以选择添加或删除标签。标签是用于与端点关联的名称-值对。

  3. 要创建 VPC 终端节点,请选择 Create endpoint(创建端点)。

创建 Amazon PrivateLink 终端节点后,在终端节点的详细信息选项卡中,您将看到 DNS 名称列表。您可以使用在本部分中创建的这些 DNS 名称中的一个来配置私有托管区域

配置私有托管区域

您可以使用在上一部分中创建的这些 DNS 名称中的一个来配置私有托管区域。

对于 Amazon IoT Core 数据平面

DNS 名称必须是您的域配置名称或 IoT:Data-ATS 端点。DNS 名称的示例,可以是:xxx-ats.data.iot.region.amazonaws.com

对于 Amazon IoT Core 凭证提供商

DNS 名称必须是您的 iot:CredentialProvider 端点。DNS 名称的示例,可以是:xxxx.credentials.iot.region.amazonaws.com

注意

为 Amazon IoT Core 数据平面和 Amazon IoT Core 凭据提供程序配置私有托管区域的过程类似,但是您必须对端点进行特定更改才能使连接正常运行。

创建私有托管区域

使用 Route 53 控制台创建私有托管区域

  1. 导航到 Route 53 托管区域控制台并选择 Create hosted zone(创建托管区域)。

  2. Create hosted zone(创建托管区域)页面上,指定以下信息。

    • 域名中,输入您的 iot:Data-ATSiot:CredentialProvider 端点的端点地址。以下 Amazon CLI 命令显示如何通过公共网络获取端点:aws iot describe-endpoint --endpoint-type iot:Data-ATSaws iot describe-endpoint --endpoint-type iot:CredentialProvider

      注意

      如果您使用的是自定义域,请参阅将自定义域与 VPC 端点结合使用。 Amazon IoT Core 凭据提供者不支持自定义域。

    • 对于 Type(类型),选择 Private hosted zone(私有托管区域)。

    • 或者,您可以添加或删除要与托管区域关联的标签。

  3. 要创建您的私有托管区域,请选择 Create hosted zone(创建托管区域)。

有关更多信息,请参阅创建私有托管区域

创建记录

创建私有托管区域后,您可以创建一个记录,告诉 DNS 如何将流量路由到该域。

创建记录

  1. 在显示的托管区域列表中,选择您之前创建的私有托管区域,然后选择 Create record(创建记录)。

  2. 使用向导提供的方法创建记录。如果控制台为您提供了 Quick create(快速创建)的方法,选择 Switch to wizard(切换到向导)。

  3. Routing policy(路由策略)中选择 Simple Routing(简单路由),然后选择 Next(下一步)。

  4. Configure records(配置记录)下,选择 Define simple record(定义简单记录)。

  5. Define simple record(定义简单记录)页面:

    • 记录名称中,输入 iot:Data-ATSiot:CredentialProvider 端点。该名称必须与私有托管区名称相同。

    • 对于 Record type(记录类型),请将该值保持为 A - Routes traffic to an IPv4 address and some Amazon resources

    • 对于 Value/Route traffic to(值/流量路由至),选择 Alias to VPC endpoint(向 VPC 添加别名)。然后选择您的 Region(区域),接着从显示的端点列表中选择您之前创建的端点,如 创建 Amazon VPC 接口端点 中所述。

  6. 选择 Define simple record(定义简单记录)以创建您的记录。

控制 Amazon IoT Core 通过 VPC 终端节点的访问权限

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

注意

Amazon IoT Core 不支持 VPC 终端节点的终端节点策略

例如,以下策略授予 Amazon IoT Core 使用与事物名称匹配的客户端 ID 进行连接的权限,以及向以事物名称为前缀的任何主题发布内容的权限,条件是设备连接到具有特定 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}/*" ] } ] }

限制

目前,仅 Amazon IoT Core 数据端点和 Amazon IoT Core 凭证提供商端点支持 VPC 端点。

IoT 数据 VPC 端点的限制

本部分介绍 IoT 数据 VPC 端点的限制。

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

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

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

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

  • 不支持 VPC 端点策略

  • 对于为 Amazon IoT Core 数据平面创建的 VPC 终端节点, Amazon IoT Core 不支持使用地区或区域公有 DNS 记录。

凭证提供商端点的限制

本部分介绍凭证提供商 VPC 端点的限制。

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

  • VPC 端点将仅提供 ATS 证书

  • 不支持 VPC 端点策略

  • 凭证提供商端点不支持自定义域名。

  • 对于为 Amazon IoT Core 凭证提供者创建的 VPC 终端节点, Amazon IoT Core 不支持使用地区或区域公有 DNS 记录。

使用扩展 VPC 终端节点 Amazon IoT Core

Amazon IoT Core 接口 VPC 终端节点限制为通过单个接口终端节点连接的 100,000 台设备。如果您的使用案例需要更多到代理的并发连接,那么我们建议您使用多个 VPC 终端节点并在接口终端节点之间手动路由您的设备。创建私有 DNS 记录将流量路由到 VPC 终端节点时,确保创建与 VPC 终端节点 数量相同的加权记录,以便在多个终端节点之间 分配流量。

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

如果要将自定义域与 VPC 端点结合使用,必须在私有托管区域中创建自定义域名记录,并在 Route53 中创建路由记录。有关更多信息,请参阅创建私有托管区域

注意

仅 Amazon IoT Core 数据端点支持自定义域。

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

Amazon IoT Core 所有Amazon IoT Core 支持的区域均提供接口 VPC 终端节点。 Amazon IoT Core 中国地区不支持 Amazon IoT Core 凭证提供商的接口 VPC 终端节点,以及。 Amazon GovCloud (US) Regions