为 Amazon OpenSearch Ingestion 管道配置 VPC 访问 - 亚马逊 OpenSearch 服务

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

为 Amazon OpenSearch Ingestion 管道配置 VPC 访问

您可以使用接口 VPC 端点访问 Amazon OpenSearch Ingestion 管道。VPC 是专供您的 AWS 账户 使用的虚拟网络。它在逻辑上与 AWS 云中的其他虚拟网络隔绝。通过 VPC 端点来访问管道,有利于在 OpenSearch Ingestion 和 VPC 中的其他服务之间安全地进行通信,而无需互联网网关、NAT 设备或 VPN 连接。AWS 云中的所有流量都会保持安全。

OpenSearch Ingestion 通过创建由 AWS PrivateLink 提供支持的接口端点来建立此私有连接。在创建管道过程中,我们会在您指定的每个子网中创建一个端点网络接口。这些接口是由请求方管理的网络接口,用作发往 OpenSearch Ingestion 管道的流量的入口点。您还可以选择自行创建和管理接口端点。

使用 VPC,您可以强制在 VPC 边界内通过 OpenSearch Ingestion 管道传输数据,而不是通过公共互联网传输。非 VPC 内部管道通过面向公众的端点和互联网收发数据。

使用 VPC 访问的管道可以写入公有或 VPC OpenSearch Service 域,以及公有或 VPC OpenSearch 无服务器集合。

注意事项

为管道配置 VPC 时,请考虑以下事项。

  • 管道无需与其接收器位于同一 VPC 中。也不需要在两个 VPC 之间建立连接。OpenSearch Ingestion 负责为您建立连接。

  • 您只能为管道指定一个 VPC。

  • 与公有管道不同的是,VPC 管道必须与其写入的域或集合接收器位于同一 AWS 区域 中。

  • 您可以选择将管道部署到 VPC 的一个、两个或三个子网中。子网分布在部署 Ingestion OpenSearch 计算单位 (OCU) 的可用区中。

  • 如果您只在一个子网中部署管道,则可用区出现故障时,您将无法摄取数据。为确保高可用性,我们建议您使用两个或三个子网配置管道。

  • 指定安全组是可选的。如果您未提供安全组,OpenSearch Ingestion 将使用 VPC 中指定的默认安全组。

限制

使用 VPC 访问的管道存在以下限制。

  • 创建管道后,将无法更改其网络配置。如果您在 VPC 中启动管道,则后续无法将其更改为公共端点,反之亦然。

  • 您可以使用接口 VPC 端点或公有端点启动管道,但不能同时使用 VPC 端点和公有端点启动管道。在创建管道时只能选择其一。

  • 在预置使用 VPC 访问的管道后,将不能将其移到其他 VPC 中,也不能更改其子网或安全组设置。

  • 如果管道写入使用 VPC 访问的域或集合接收器,则在管道创建后将无法返回,也无法更改接收器(VPC 或公有)。必须删除,然后使用新的接收器重新创建管道。您仍然可以从公有接收器切换到使用 VPC 访问的接收器。

  • 您无法提供对 VPC 管道的跨账户摄取访问权限

先决条件

在预置使用 VPC 访问的管道之前,必须先执行以下操作:

  • 创建 VPC

    要创建 VPC,可以使用 Amazon VPC 控制台、AWS CLI 或 AWS 开发工具包之一。有关更多信息,请参阅 Amazon VPC 用户指南 中的使用 VPC。如果您已有 VPC,请跳过此步骤。

  • 预留 IP 地址

    OpenSearch Ingestion 在创建管道期间指定的每个子网中安装一个弹性网络接口。每个网络接口都与一个 IP 地址关联。必须为每个子网预留一个用于网络接口的 IP 地址。

为管道配置 VPC 访问权限

您可以在 OpenSearch Service 控制台中或使用 AWS CLI 为管道启用 VPC 访问权限。

您可以在管道创建期间配置 VPC 访问权限。在网络下,选择 VPC 访问并配置以下设置:

设置 描述
端点管理

选择是要自己创建 VPC 端点,还是让 OpenSearch Ingestion 为您创建端点。

VPC

选择要使用的虚拟私有云 (VPC) 的 ID。VPC 和管道必须位于同一 AWS 区域 中。

子网

选择一个或多个子网。OpenSearch Service 会将 VPC 端点和弹性网络界面放入子网中。

安全组

选择一个或多个 VPC 安全组,以允许您所需的应用程序在管道公开的端口(80 或 443)和协议(HTTP 或 HTTPs)上访问 OpenSearch Ingestion 管道。

VPC 挂载选项

如果您的源是自主管理型端点,请将您的管道挂载到某个 VPC。选择提供的默认 CIDR 选项之一,或使用自定义 CIDR。

要使用 AWS CLI 配置 VPC 访问权限,请指定 --vpc-options 参数:

aws osis create-pipeline \ --pipeline-name vpc-pipeline \ --min-units 4 \ --max-units 10 \ --vpc-options SecurityGroupIds={sg-12345678,sg-9012345},SubnetIds=subnet-1212234567834asdf \ --pipeline-configuration-body "file://pipeline-config.yaml"

自主管理型 VPC 端点

创建管道时,您可以使用端点管理功能来创建使用自主管理型端点或服务托管端点的管道。端点管理是可选的,并且会默认选择由 OpenSearch Ingestion 托管的端点。

要在 AWS Management Console中创建使用自主管理型 VPC 端点的管道,请参阅使用 OpenSearch Service 控制台创建管道。要在 AWS CLI 中创建使用自主管理型 VPC 端点的管道,您可以在 create-pipeline 命令中使用 --vpc-options 参数:

--vpc-options SubnetIds=subnet-abcdef01234567890,VpcEndpointManagement=CUSTOMER

您可以在指定端点服务时自行创建到管道的端点。要查找端点服务,请使用 get-pipeline 命令,这将返回类似于以下内容的响应:

"vpcEndpointService" : "com.amazonaws.osis.us-east-1.pipeline-id-1234567890abcdef1234567890", "vpcEndpoints" : [ { "vpcId" : "vpc-1234567890abcdef0", "vpcOptions" : { "subnetIds" : [ "subnet-abcdef01234567890", "subnet-021345abcdef6789" ], "vpcEndpointManagement" : "CUSTOMER" } }

使用响应中的 vpcEndpointService,通过 AWS Management Console或 AWS CLI 创建 VPC 端点。

如果您使用自主管理型 VPC 端点,则必须在您的 VPC 中启用 DNS 属性 enableDnsSupportenableDnsHostnames。请注意,如果您的管道使用自主管理型端点,并且您停止并重启了管道,则必须在您的账户中重新创建该 VPC 端点。

VPC 访问的服务相关角色

服务相关角色是一种独特的 IAM 角色类型,它将权限委派给服务,使之能够代表您创建和管理资源。如果您选择由服务托管的 VPC 端点,则 OpenSearch Ingestion 需要名为 AWSServiceRoleForAmazonOpenSearchIngestionService 的服务相关角色才能访问您的 VPC、创建管道端点以及将网络接口放入您 VPC 的子网中。

如果您选择自主管理型 VPC 端点,OpenSearch Ingestion 需要一个名为 AWSServiceRoleForOpensearchIngestionSelfManagedVpce的服务相关角色。有关这些角色及其权限和删除方法的更多信息,请参阅使用服务相关角色创建 OpenSearch 摄取管道

OpenSearch Ingestion 将在您创建摄取管道时自动创建角色。要成功完成自动创建,在账户中创建第一个管道的用户必须拥有 iam:CreateServiceLinkedRole 操作权限。有关更多信息,请参阅 IAM 用户指南中的服务相关角色权限。创建角色后,您可以在 AWS Identity and Access Management (IAM) 控制台中查看角色。