对接口 VPC 终端节点使用AWS IoT Device Management安全隧道 - AWS IoT Core

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

对接口 VPC 终端节点使用AWS IoT Device Management安全隧道

AWS IoT Device Management安全隧道支持接口 VPC 端点。您可以使用 VPC 终端节点保持 VPC 之间和AWS网络AWS IoT Secure Tunneling内部的流量,而无需互联网网关、NAT 设备、VPN AWS Direct Connect 连接或连接。

接口 VPC 终端节点由AWS PrivateLink一项技术提供支持,该技术使您能够使用私有 IP 地址私密访问服务。有关更多信息,请参阅AWS PrivateLink指南中的使用接口 VPC 终端节点访问AWS服务

前提条件

在为创建 VPC 终端节点之前AWS IoT Secure Tunneling,请确认您已具备以下条件:

  • 具有创建 VPC 终端节点所需权限的AWS账户。

  • 您AWS账户中的 VPC。

  • 了解AWS IoT Device Management安全隧道的概念。

  • 熟悉 VPC 终端节点策略和 AWS Identity and Access Management (IAM)

通过 VPC 终端节点接收隧道通知

要通过 VPC 终端节点接收隧道通知,您的设备可以通过 VPC 终端节点连接到AWS IoT Core数据平面并订阅安全隧道预留 MQTT 主题。

有关如何在AWS IoT Core数据平面中创建和配置 VPC 终端节点的说明,请参阅AWS IoT开发人员指南中的AWS IoT Core与接口 VPC 终端节点一起使用

为安全隧道传输创建 VPC 终端节点

您可以为安全隧道控制平面和代理服务器创建 VPC 终端节点。

创建用于安全隧道的 VPC 终端节点
  1. 按照 Amazon VPC 开发人员指南中创建接口终端节点中的步骤进行操作

  2. 对于服务名称,请根据您的终端节点类型选择以下选项之一:

    控制面板
    • 标准:com.amazonaws.<region>.iot.tunneling.api

    • FIPS(在 FIPS 地区可用):com.amazonaws.<region>.iot-fips.tunneling.api

    代理服务器
    • 标准:com.amazonaws.<region>.iot.tunneling.data

    • FIPS(在 FIPS 地区可用):com.amazonaws.<region>.iot-fips.tunneling.data

    替换<region>为你的AWS 区域。例如 us-east-1

  3. 根据您的网络要求完成 VPC 终端节点创建过程中的其余步骤。

在代理服务器上配置 VPC 终端节点策略

除了用于授权隧道连接的基于客户端访问令牌的授权外,您还可以使用 VPC 终端节点策略进一步限制设备如何使用 VPC 终端节点连接到安全隧道代理服务器。VPC 终端节点策略遵循类似 IAM 的语法,并在 VPC 终端节点本身上进行配置。

请注意,代理服务器 VPC 终端节点策略唯一支持的 IAM 操作是iot:ConnectToTunnel

以下是不同的 VPC 终端节点策略的示例。

代理服务器 VPC 终端节点策略示例

以下示例显示了常见用例的代理服务器 VPC 终端节点策略配置。

例 -默认策略

此策略允许您的 VPC 内的设备通过任何AWS账户连接到创建终端节点AWS 区域所在地的任何隧道。

{ "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } ] }
例 -限制对特定AWS账户的访问权限

此策略仅允许 VPC 终端节点连接到特定AWS账户中的隧道。

{ "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "iot:ConnectToTunnel", "Resource": [ "arn:aws:iot:us-east-1:111122223333:tunnel/*", "arn:aws:iot:us-east-1:444455556666:tunnel/*" ] } ] }
例 -通过隧道端点限制连接

您可以将 VPC 终端节点的访问权限限制为仅允许设备连接到隧道的源端或目标端。

仅限来源:

{ "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "iot:ConnectToTunnel", "Resource": "*", "Condition": { "StringEquals": { "iot:ClientMode": "source" } } } ] }

仅限目的地:

{ "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "iot:ConnectToTunnel", "Resource": "*", "Condition": { "StringEquals": { "iot:ClientMode": "destination" } } } ] }
例 -根据资源标签限制访问权限

此策略仅允许 VPC 终端节点连接到标有特定键值对的隧道。

{ "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "iot:ConnectToTunnel", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ] }
例 -综合保单条件

此策略演示了如何组合多个策略元素。它允许连接到特定AWS账户中的任何隧道,但前提是隧道标记AllowConnectionsThroughPrivateLink为设置为,true并且客户端未连接到隧道的目标端。

{ "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "iot:ConnectToTunnel", "Resource": [ "arn:aws:iot:us-east-1:111122223333:tunnel/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/AllowConnectionsThroughPrivateLink": "true" } } }, { "Effect": "Deny", "Principal": "*", "Action": "iot:ConnectToTunnel", "Resource": [ "arn:aws:iot:us-east-1:111122223333:tunnel/*" ], "Condition": { "StringEquals": { "iot:ClientMode": "destination" } } } ] }

后续步骤

在为创建和配置您的 VPC 终端节点后AWS IoT Secure Tunneling,请考虑以下事项:

  • 通过终端节点连接设备,测试您的 VPC 终端节点配置。

  • 通过Amazon CloudWatch指标监控 VPC 终端节点的使用情况。

  • 根据您的安全要求,根据需要查看和更新您的 VPC 终端节点策略。

有关AWS IoT Device Management安全隧道的更多信息,请参阅。AWS IoT Secure Tunneling