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

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

Amazon IoT Greengrass 和接口 VPC 端点 (Amazon PrivateLink)

您可以通过创建接口 VPC 端点在 VPC 和 Amazon IoT Greengrass 控制面板之间建立私有连接。您可以使用此端点来管理 Amazon IoT Greengrass 服务中的组件、部署和核心设备。接口端点由 Amazon PrivateLink 提供支持,该技术支持您通过私密方式访问 Amazon IoT Greengrass API,而无需互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接。VPC 中的实例即使没有公有 IP 地址也可与 Amazon IoT Greengrass API 进行通信。VPC 和 Amazon IoT Greengrass 之间的流量不会脱离 Amazon 网络。

每个接口端点均由子网中的一个或多个弹性网络接口表示。

有关更多信息,请参阅 Amazon VPC 用户指南中的接口 VPC 端点 (Amazon PrivateLink)

Amazon IoT Greengrass VPC 端点注意事项

请先查看 Amazon VPC 用户指南中的接口端点属性和限制,然后再为 Amazon IoT Greengrass 设置 VPC 接口端点。此外,请了解以下注意事项:

为 Amazon IoT Greengrass 控制平面操作创建接口 VPC 端点

您可以使用 Amazon VPC 控制台或Amazon Command Line Interface(Amazon CLI)为 Amazon IoT Greengrass 控制面板创建 VPC 端点。有关更多信息,请参阅《Amazon VPC 用户指南》中的创建接口端点

使用以下服务名称为 Amazon IoT Greengrass 创建 VPC 端点:

  • com.amazonaws.region.greengrass

如果为端点启用私有 DNS,则可以使用其默认 DNS 名称作为区域,向 Amazon IoT Greengrass 发送 API 请求,例如 greengrass.us-east-1.amazonaws.com。默认情况下将启用私有 DNS。

有关更多信息,请参阅《Amazon VPC 用户指南》中的通过接口端点访问服务

为 Amazon IoT Greengrass 创建 VPC 端点策略

您可以为 VPC 端点附加控制对 Amazon IoT Greengrass 控制面板操作的访问的端点策略。该策略指定以下信息:

  • 可执行操作的主体。

  • 主体可以执行的操作。

  • 主体可以对其执行操作的资源。

有关更多信息,请参阅《Amazon VPC 用户指南》中的使用 VPC 端点控制对服务的访问权限

例 示例:Amazon IoT Greengrass 操作的 VPC 端点策略

下面是用于 Amazon IoT Greengrass 的端点策略示例。当附加到端点时,此策略会向所有资源上的所有主体授予对列出的 Amazon IoT Greengrass 操作的访问权限。

{ "Statement": [ { "Principal": "*", "Effect": "Allow", "Action": [ "greengrass:CreateDeployment", "greengrass:ListEffectiveDeployments" ], "Resource": "*" } ] }

在 VPC 中操作 Amazon IoT Greengrass 核心设备

您可以在没有公共互联网访问的情况下,在 VPC 中操作 Greengrass 核心设备并执行部署。您必须至少使用相应的 DNS 别名设置以下 VPC 端点。有关如何创建和使用 VPC 端点的更多信息,请参阅《Amazon VPC 用户指南》中的创建 VPC 端点

注意

对于 Amazon IoT data和 Amazon IoT 凭证,已禁用自动创建 DNS 记录的 VPC 功能。要连接这些端点,您必须手动创建私有 DNS 记录。有关更多信息,请参阅接口端点的私有 DNS。有关 Amazon IoT Core VPC 限制的更多信息,请参阅 VPC 端点的限制

先决条件

限制

  • 中国区域和 Amazon GovCloud (US) Regions不支持在 VPC 中运行 Greengrass 核心设备。

  • 有关 Amazon IoT data 和 Amazon IoT 凭证提供程序 VPC 端点限制的更多信息,请参阅限制

将您的 Greengrass 核心设备设置为在 VPC 中运行

  1. 获取您的 Amazon Web Services 账户的 Amazon IoT 端点,然后将其保存以备后用。您的设备使用这些端点来连接 Amazon IoT。执行以下操作:

    1. 获取您的 Amazon Web Services 账户的 Amazon IoT 数据端点。

      aws iot describe-endpoint --endpoint-type iot:Data-ATS

      如果请求成功,响应类似如下示例。

      { "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com" }
    2. 获取您的 Amazon Web Services 账户的 Amazon IoT 凭证端点。

      aws iot describe-endpoint --endpoint-type iot:CredentialProvider

      如果请求成功,响应类似如下示例。

      { "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" }
  2. 为 Amazon IoT data和 Amazon IoT 凭证端点创建 Amazon VPC 接口:

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

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

      • 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.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(创建端点)。

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

  4. 创建 Amazon S3 端点。有关更多信息,请参阅为 Amazon S3 创建 VPC 端点

  5. 如果您使用的是 Amazon 提供的 Greengrass 组件,则可能需要其他端点和配置。要查看端点要求,请从 Amazon 提供的组件列表中选择组件,然后查看“要求”部分。例如,日志管理器组件要求规定,该组件必须能够向端点 logs.region.amazonaws.com 执行出站请求。

    如果您使用的是自己的组件,则可能需要查看依赖关系并进行其他测试,以确定是否需要任何其它端点。

  6. 在 Greengrass Nucleus 配置中,必须将 greengrassDataPlaneEndpoint 设置为 iotdata。有关更多信息,请参阅 Greengrass Nucleus 配置

  7. 如果您在 us-east-1 区域,请在 Greengrass Nucleus 配置中将配置参数 s3EndpointType 设置为 REGIONAL。此功能适用于 Greengrass Nucleus 2.11.3 或更高版本。

例 示例:组件配置
{ "aws.greengrass.Nucleus": { "configuration": { "awsRegion": "us-east-1", "iotCredEndpoint": "xxxxxx.credentials.iot.region.amazonaws.com", "iotDataEndpoint": "xxxxxx-ats.iot.region.amazonaws.com", "greengrassDataPlaneEndpoint": "iotdata", "s3EndpointType": "REGIONAL" ... } } }

下表提供了有关相应的自定义私有 DNS 别名的信息。

服务 VPC 端点服务名称 VPC 端点类型 自定义私有 DNS 别名 注意

Amazon IoT data

com.amazonaws.region.iot.data

接口

prefix-ats.iot.region.amazonaws.com

私有 DNS 记录应与您账户的 Amazon IoT data端点相匹配:aws iot describe–endpoint ––endpoint–type iot:Data-ATS

Amazon IoT 凭证

com.amazonaws.region.iot.credentials

接口

prefix.credentials.iot.region.amazonaws.com

私有 DNS 记录应与您账户的 Amazon IoT 凭证端点相匹配:aws iot describe–endpoint ––endpoint–type iot:CredentialProvider

Amazon S3

com.amazonaws.region.s3

接口

DNS 记录是自动创建的。