

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

# 对接口 VPC 终端节点使用 Amazon IoT Device Management 安全隧道
<a name="IoTCore-ST-VPC"></a>

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

接口 VPC 终端节点由[Amazon PrivateLink](https://docs.amazonaws.cn//vpc/latest/privatelink/what-is-privatelink.html)一项技术提供支持，该技术使您能够使用私有 IP 地址私密访问服务。有关更多信息，请参阅 Amazon PrivateLink 指南中的[使用接口 VPC 终端节点访问 Amazon 服务](https://docs.amazonaws.cn//vpc/latest/privatelink/create-interface-endpoint.html)。

**Topics**
+ [前提条件](#Create-ST-VPC-endpoints-prereq)
+ [通过 VPC 终端节点接收隧道通知](#ST-VPC-Receive-notifications)
+ [为安全隧道传输创建 VPC 终端节点](#Create-ST-VPC-endpoints-Create)
+ [在代理服务器上配置 VPC 终端节点策略](#Create-ST-VPC-endpoints-Configure)
+ [后续步骤](#Create-ST-VPC-endpoints-Next)

## 前提条件
<a name="Create-ST-VPC-endpoints-prereq"></a>

在为创建 VPC 终端节点之前 Amazon IoT Secure Tunneling，请确认您已具备以下条件：
+ 具有创建 VPC 终端节点所需权限的 Amazon 账户。
+ 您 Amazon 账户中的 VPC。
+ 了解 Amazon IoT Device Management 安全隧道的概念。
+ 熟悉 VPC 终端节点策略和 Amazon Identity and Access Management (IAM)

## 通过 VPC 终端节点接收隧道通知
<a name="ST-VPC-Receive-notifications"></a>

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

有关如何在 Amazon IoT Core 数据平面中创建和配置 VPC 终端节点的说明，请参阅 Amazon IoT 开发人员指南中的[Amazon IoT Core 与接口 VPC 终端节点一起使用](https://docs.amazonaws.cn/iot/latest/developerguide/IoTCore-VPC.html)。

## 为安全隧道传输创建 VPC 终端节点
<a name="Create-ST-VPC-endpoints-Create"></a>

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

**创建用于安全隧道的 VPC 终端节点**

1. 按照 Amazon VPC 开发人员指南中[创建接口终端节点](https://docs.amazonaws.cn//vpc/latest/privatelink/create-interface-endpoint.html)中的步骤进行操作

1. 对于**服务名称**，请根据您的终端节点类型选择以下选项之一：

**控制面板**
   + 标准：`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>}}用你的 Amazon Web Services 区域. 例如 `us-east-1`。

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

## 在代理服务器上配置 VPC 终端节点策略
<a name="Create-ST-VPC-endpoints-Configure"></a>

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

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

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

### 代理服务器 VPC 终端节点策略示例
<a name="w2aac17c35c31c15b9"></a>

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

**Example -默认策略**  
此策略允许您的 VPC 内的设备通过任何 Amazon 账户连接到创建终端节点 Amazon Web Services 区域 所在地的任何隧道。  

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
```

**Example -限制对特定 Amazon 账户的访问权限**  
此策略仅允许 VPC 终端节点连接到特定 Amazon 账户中的隧道。  

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "iot:ConnectToTunnel",
            "Resource": [
                "arn:aws:iot:us-east-1:111122223333:tunnel/*",
                "arn:aws:iot:us-east-1:444455556666:tunnel/*"
            ]
        }
    ]
}
```

**Example -通过隧道端点限制连接**  
您可以将 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"
                }
            }
        }
    ]
}
```

**Example -根据资源标签限制访问权限**  
此策略仅允许 VPC 终端节点连接到标有特定键值对的隧道。  

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "iot:ConnectToTunnel",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Environment": "Production"
                }
            }
        }
    ]
}
```

**Example -综合保单条件**  
此策略演示了如何组合多个策略元素。它允许连接到特定 Amazon 账户中的任何隧道，但前提是隧道标记`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"
                }
            }
        }
    ]
}
```

## 后续步骤
<a name="Create-ST-VPC-endpoints-Next"></a>

在为创建和配置您的 VPC 终端节点后 Amazon IoT Secure Tunneling，请考虑以下事项：
+ 通过终端节点连接设备，测试您的 VPC 终端节点配置。
+ 通过 Amazon CloudWatch 指标监控 VPC 终端节点的使用情况。
+ 根据您的安全要求，根据需要查看和更新您的 VPC 终端节点策略。

有关 Amazon IoT Device Management 安全隧道的更多信息，请参阅。[Amazon IoT Secure Tunneling](https://docs.amazonaws.cn//iot/latest/developerguide/secure-tunneling.html)