本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon IoT Core 与接口VPC端点一起使用
借 Amazon IoT Core助,您可以使用接口终端节点在虚拟私有云 (VPC) 中创建 IoT 数据VPC端点。接口VPC端点由 Amazon PrivateLink一种 Amazon 技术提供支持,您可以使用该技术使用私有 IP 地址访问 Amazon 在其上运行的服务。有关更多信息,请参阅 Amazon Virtual Private Cloud。
要将远程网络上的现场设备(例如公司网络)连接到您的 AmazonVPC,请参阅Network-to-Amazon VPC连接列表中列出的选项。
内容
为 Amazon IoT Core 数据平面创建VPC端点
您可以为 Amazon IoT Core 数据平面创建VPC终端节点API,以将您的设备连接到 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记录。有关私有VPCDNS记录的更多信息,请参阅接口终端节点DNS的私有记录。有关 Amazon IoT Core VPC限制的更多信息,请参阅限制。
要将MQTT客户端连接到VPC端点接口,请执行以下操作:
-
您必须在与您的关联的私有托管区域中手动创建DNS记录VPC。要开始使用,请参阅创建私有托管区域。
-
在您的私有托管区域内,为VPC终端节点的每个 elastic network interface IP 创建别名记录。如果您有多个网络接口IPs用于多个VPC端点,请在所有加权DNS记录中创建权重相等的加权记录。按描述字段中的VPC端点 ID 筛选后,即可从DescribeNetworkInterfacesAPI呼叫中获得这些 IP 地址。
请参阅以下详细说明,了解如何创建 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
-
导航到VPC
端点控制台,在左侧菜单的虚拟私有云下,选择终端节点,然后选择创建端点。 -
在创建端点页面上,指定以下信息。
-
为 Service category(服务类别)选择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的位置,以及要在其中创建终端节点网络的可用区 (AZs)。
-
在 “启用DNS名称” 中,确保未选中 “为此端点启用”。 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
端点。该名称必须与私有托管区名称相同。 -
对于 Record type(记录类型),请将该值保持为
A - Routes traffic to an IPv4 address and some Amazon resources
。 -
对于将流量值/路由到终端节点,请选择别名到VPC终端节点。然后选择您的 Region(区域),接着从显示的端点列表中选择您之前创建的端点,如 创建 Amazon VPC 接口终端节点 中所述。
-
-
选择 Define simple record(定义简单记录)以创建您的记录。
控制对VPC终端节点 Amazon IoT Core 的访问
您可以使用VPC条件上下文密钥 Amazon IoT Core将设备访问限制为仅允许通过VPC端点访问。 Amazon IoT Core 支持以下VPC相关的上下文密钥:
注意
Amazon IoT Core 不支持终端节点的终VPC端节点策略。
例如,以下策略授予 Amazon IoT Core 使用与事物名称匹配的客户端 ID 进行连接的权限,以及向以事物名称为前缀的任何主题发布内容的权限,条件是设备连接到具有特定 E VPC ndpoint 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目前,只有Amazon IoT Core 数据端点和Amazon IoT Core 凭据提供程序端点支持端点。 VPC联邦信息处理标准 (FIPS) 端点不支持端点。
物联网数据VPC端点的局限性
本节介绍物联网数据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终端节点 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 接口VPC终端节点在所有Amazon IoT Core
支持的区域