将 Amazon IoT Core 和接口 VPC 端点一起使用
Amazon IoT Core 使您能够使用接口 VPC 端点在您的虚拟私有云(VPC)中创建物联网数据端点。接口 VPC 端点由 Amazon PrivateLink 提供支持,Amazon 技术使您能够通过使用私有 IP 地址访问在 Amazon 上运行的服务。有关更多信息,请参阅 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 进行筛选时,可通过DescribeNetworkInterfaces API 调用获得这些 IP 地址。
请参阅以下详细说明,创建 Amazon VPC 接口端点并为 Amazon IoT Core 数据面板配置私有托管区域。
创建 Amazon VPC 接口端点
您可以创建接口 VPC 端点以连接到由 Amazon PrivateLink 提供支持的 Amazon 服务。使用以下过程创建连接到 Amazon IoT Core 数据面板或 Amazon IoT Core 凭证提供商的接口 VPC 端点。有关更多信息,请参阅使用接口 VPC 端点访问 Amazon 服务。
注意
为 Amazon IoT Core 数据面板和 Amazon IoT Core 凭证提供商创建 Amazon VPC 接口端点的过程类似,但您必须对端点进行特定更改才能使连接正常进行。
通过 VPC
-
导航到 VPC
端点控制台,在左侧菜单的虚拟私有云下,选择端点,然后选择创建端点。 -
在创建端点页面上,指定以下信息。
-
为服务类别选择 Amazon Web Services 服务。
-
对于 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.格式。中国区域不支持为 Amazon IoT Core 凭证提供商创建 VPC 端点。region.iot.data -
对于 VPC 和子网,选择要在其中创建端点的 VPC 和要在其中创建端点网络的可用区(AZ)。
-
对于 Enable DNS name(启用 DNS 名称),请确保未选择 Enable for this endpoint(为此端点启用)。Amazon IoT Core 数据面板和 Amazon IoT Core 凭证提供商都不支持私有 DNS 名称。
-
对于 Security group(安全组),选择要与端点网络接口关联的安全组。
-
您可以选择添加或删除标签。标签是用于与端点关联的名称-值对。
-
-
要创建 VPC 端点,请选择创建端点。
创建 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 控制台创建私有托管区域
-
导航到 Route 53
托管区域控制台并选择 Create hosted zone(创建托管区域)。 -
在 Create hosted zone(创建托管区域)页面上,指定以下信息。
-
在域名中,输入您的
iot:Data-ATS或iot:CredentialProvider端点的端点地址。以下 Amazon CLI 命令显示如何通过公共网络获取端点:aws iot describe-endpoint --endpoint-type iot:Data-ATS或aws iot describe-endpoint --endpoint-type iot:CredentialProvider。注意
如果您使用的是自定义域,请参阅将自定义域与 VPC 端点结合使用。Amazon IoT Core 凭证提供商不支持自定义域名。
-
对于 Type(类型),选择 Private hosted zone(私有托管区域)。
-
或者,您可以添加或删除要与托管区域关联的标签。
-
-
要创建您的私有托管区域,请选择 Create hosted zone(创建托管区域)。
有关更多信息,请参阅创建私有托管区域。
创建记录
创建私有托管区域后,您可以创建一个记录,告诉 DNS 如何将流量路由到该域。
创建记录
-
在显示的托管区域列表中,选择您之前创建的私有托管区域,然后选择 Create record(创建记录)。
-
使用向导提供的方法创建记录。如果控制台为您提供了 Quick create(快速创建)的方法,选择 Switch to wizard(切换到向导)。
-
在 Routing policy(路由策略)中选择 Simple Routing(简单路由),然后选择 Next(下一步)。
-
在 Configure records(配置记录)下,选择 Define simple record(定义简单记录)。
-
在 Define simple record(定义简单记录)页面:
-
在记录名称中,输入
iot:Data-ATS或iot:CredentialProvider端点。该名称必须与私有托管区名称相同。 -
对于记录类型,如果您只想支持 IPv4,请将该值保持为
A - Routes traffic to an IPv4 address and some Amazon resources。如果您只想支持 IPv6,请将该值保持为AAAA - Routes traffic to an IPv6 address and some Amazon resources。如果您想要双栈支持(IPv4 和 IPv6),请创建两条记录(A和AAAA),在托管区域中具有相同的记录名称和值/路由流量到。 -
对于 Value/Route traffic to(值/流量路由至),选择 Alias to VPC endpoint(向 VPC 添加别名)。然后选择您的 Region(区域),接着从显示的端点列表中选择您之前创建的端点,如 创建 Amazon VPC 接口端点 中所述。
-
-
选择 Define simple record(定义简单记录)以创建您的记录。
通过 VPC 端点控制对 Amazon IoT Core 的访问
您可以将设备访问限制为 Amazon IoT Core 仅允许使用 VPC 条件上下文键通过 VPC 端点访问。Amazon IoT Core 支持以下 VPC 相关的上下文键:
注意
Amazon IoT Core 不支持 VPC 端点的端点策略。
例如,以下策略授予权限以使用与事物名称匹配的客户端 ID 连接到 Amazon IoT Core,并发布到任何以事物名称为前缀的主题,具体条件是设备连接到具有特定 VPC 端点 ID 的 VPC 端点。此策略将拒绝连接到您的公有物联网数据端点的尝试。
限制
目前,仅 Amazon IoT Core 数据端点和 Amazon IoT Core 凭证提供商端点支持 VPC 端点。联邦信息处理标准(FIPS)端点不支持 VPC 端点。
IoT 数据 VPC 端点的限制
本部分介绍物联网数据 VPC 端点的限制。
-
MQTT 保持活动状态的时间限制为 230 秒。保持活动状态超过该时段的时间将自动减少到 230 秒。
-
每个 VPC 端点总共支持 10 万台并发互联设备。如果您需要更多连接,请参阅 使用 Amazon IoT Core 扩展 VPC 端点。
-
VPC 端点将仅提供 ATS 证书,但自定义域除外。
-
不支持 VPC 端点策略。
-
对于为 Amazon IoT Core 数据面板创建的 VPC 端点,Amazon IoT Core 不支持使用地区或区域性公有 DNS 记录。
凭证提供商端点的限制
本部分介绍凭证提供商 VPC 端点的限制。
使用 Amazon IoT Core 扩展 VPC 端点
Amazon IoT Core 接口 VPC 端点仅限于通过单个接口端点连接的 10 万台互联设备。如果您的使用案例需要更多到代理的并发连接,那么我们建议您使用多个 VPC 端点并在接口端点之间手动路由您的设备。创建私有 DNS 记录将流量路由到 VPC 端点时,确保创建与 VPC 端点 数量相同的加权记录,以便在多个端点之间 分配流量。
将自定义域用于 VPC 端点
如果要将自定义域与 VPC 端点结合使用,必须在私有托管区域中创建自定义域名记录,并在 Route53 中创建路由记录。有关更多信息,请参阅创建私有托管区域。
注意
仅 Amazon IoT Core 数据端点支持自定义域名。
适用于 Amazon IoT Core 的 VPC 端点的可用性
Amazon IoT Core 接口 VPC 端点在所有 Amazon IoT Core 支持的区域