使用接口端点访问 Amazon OpenSearch 无服务器()Amazon PrivateLink - 亚马逊 OpenSearch 服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用接口端点访问 Amazon OpenSearch 无服务器()Amazon PrivateLink

您可以使用 Amazon PrivateLink 在您的 VPC 与 Amazon OpenSearch 无服务器之间创建私有连接。可以像在 VPC 中一样访问 OpenSearch 无服务器,而无需使用互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接。VPC 中的实例不需要公共 IP 地址即可访问 OpenSearch 无服务器。有关 VPC 网络访问的更多信息,请参阅 Amazon OpenSearch Serverless 的网络连接模式

您可以通过创建由 Amazon PrivateLink提供支持的接口端点来建立此私有连接。我们将在您为接口端点指定的每个子网中创建一个端点网络接口。这些是请求者托管的网络接口,用作发往无服务器的流量的入口点。 OpenSearch

有关更多信息,请参阅《Amazon PrivateLink 指南》中的通过 Amazon PrivateLink访问 Amazon Web Services 服务

集合端点 DNS 解析

创建 VPC 端点时,该服务会创建一个新的 Amazon Route 53 私有托管区并将其附加到 VPC。此私有托管区包含一条记录,用于将 OpenSearch 无服务器集合的通配符 DNS 记录(*.aoss.us-east-1.amazonaws.com)解析为端点使用的接口地址。只需使用 VPC 中的一个 OpenSearch 无服务器 VPC 端点即可访问每个 Amazon Web Services 区域的所有集合和控制面板。每个包含 OpenSearch 无服务器端点的 VPC 均有自己的私有托管区。

OpenSearch 无服务器还为区域中的所有集合创建了一条公有 Route 53 通配符 DNS 记录。DNS 名称解析为 OpenSearch 无服务器公有 IP 地址。不含 OpenSearch 无服务器 VPC 端点的 VPC 客户端或公有网络客户端可以使用公有 Route 53 解析器,并可使用这些 IP 地址访问集合和控制面板。 VPCs VPC 端点的 IP 地址类型(IPv4 IPv6、或双栈)取决于您在为无服务器创建接口端点时提供的子网。 OpenSearch

注意

OpenSearch Serverless 会为服务域解析创建额外的 Amazon Route 53 私有托管区域 `<region>.opensearch.amazonaws.com (`)。 OpenSearch 您可以通过中的update-vpc-endpoint命令将现有 IPv4 VPC 端点更新为双栈端点。 Amazon CLI

给定 VPC 的 DNS 解析器地址是 VPC CIDR 的辅助 IP 地址。VPC 中的任何客户端均需使用该解析器获取任何集合的 VPC 端点地址。解析器使用由 OpenSearch Serverless 创建的私有托管区。使用该解析器足以处理任何账户中的所有集合。也可以对一些集合端点使用 VPC 解析器,对另一些集合端点使用公有解析器,尽管通常并不需要这样做。

VPCs 和网络访问策略

要为集合授予网络权限,您可以使用 OpenSearch 无服务器网络访问策略。 OpenSearch APIs 您可以从 VPC 端点或公有 Internet 控制此网络访问。由于网络策略仅控制流量权限,因此还必须设置数据访问策略,指定对集合及其索引中的数据执行操作的权限。将 OpenSearch 无服务器 VPC 端点视为服务接入点,将网络访问策略视为集合和控制面板的网络级接入点,将数据访问策略视为对集合数据进行任何操作的精细访问控制接入点。

由于您可以在网络策略 IDs 中指定多个 VPC 端点,因此我们建议您为每个需要访问集合的 VPC 创建一个 VPC 端点。这些 VPCs可以属于其他 Amazon 账户,而不是 OpenSearch Serverless 集合和网络策略所属的账户。我们建议您不要在两个账户之间创建 VPC-to-VPC对等或其他代理解决方案,这样一个账户的 VPC 可以使用另一个账户的 VPC 端点。相较于每个 VPC 都有自己的端点,这种做法的安全性和成本效益会有所下降。即使其他 VPC 的管理员已在网络策略中设置对第一个 VPC 端点的访问权限,也无法轻易查看第一个 VPC。

VPCs 和端点策略

Amazon OpenSearch Serverless 支持以下方面的终端节点策略。 VPCs端点策略是一种基于 IAM 资源的策略,您可以将其附加到 VPC 端点来控制哪 Amazon 些主体能使用端点访问服务。 Amazon 有关更多信息,请参阅使用端点策略控制对 VPC 端点的访问

要使用端点策略,必须先创建接口端点。您可以使用无服务器控制台或 OpenSearch 无服务器 API 创建接口端点。 OpenSearch 创建接口端点后,您需要将端点策略添加到端点。有关更多信息,请参阅使用接口端点访问 Amazon OpenSearch 无服务器(Amazon PrivateLink)

注意

您无法在 OpenSearch 服务控制台中直接定义端点策略。

端点策略不会覆盖或取代您可能已配置的其他基于身份的策略、基于资源的策略、网络策略或数据访问策略。有关如何更新端点策略的更多信息,请参阅使用端点策略控制对 VPC 端点的访问

默认情况下,端点策略授予对 VPC 端点的完全访问权限。

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

尽管默认 VPC 端点策略授予端点完全访问权限,但您可以配置 VPC 端点策略以允许访问特定角色和用户。为此,请参阅以下示例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "123456789012", "987654321098" ] }, "Action": "*", "Resource": "*" } ] }

您可以指定 S OpenSearch erverless 集合作为条件元素包含在 VPC 端点策略中。为此,请参阅以下示例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": [ "coll-abc" ] } } } ] }

支持 S aoss:CollectionId upport

Condition": { "StringEquals": { "aoss:CollectionId": "collection-id" } }

您可以在 VPC 端点策略中使用 SAML 身份来确定 VPC 端点访问权限。您必须在 VPC 端点策略的主体部分使用通配符 (*)。为此,请参阅以下示例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:SamlGroups": [ "saml/123456789012/idp123/group/football", "saml/123456789012/idp123/group/soccer", "saml/123456789012/idp123/group/cricket" ] } } } ] }

此外,您可以将端点策略配置为包含特定的 SAML 主体策略。为此,请参阅以下内容:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "StringEquals": { "aoss:SamlPrincipal": [ "saml/123456789012/idp123/user/user1234"] } } } ] }

有关将 SAML 身份验证与 Amazon Serverless 结合使用的更多信息,请参阅适用于 Amazon OpenSearch 无服务器的 SAML 身份验证。 OpenSearch

您还可以在同一 VPC 端点策略中包含 IAM 和 SAML 用户。为此,请参阅以下示例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aoss:SamlGroups": [ "saml/123456789012/idp123/group/football", "saml/123456789012/idp123/group/soccer", "saml/123456789012/idp123/group/cricket" ] } } }, { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": "*", "Resource": "*" } ] }

您也可以 EC2 通过接口 VPC 终端节点从亚马逊访问亚马逊的 OpenSearch 无服务器集合。有关更多信息,请参阅从 Amazon 访问 OpenSearch 无服务器集合 EC2 (通过接口 VPC 终端节点)

注意事项

在为 OpenSearch 无服务器设置接口端点之前,请考虑以下事项:

  • OpenSearch 无服务器支持通过接口端点调用所有受支持OpenSearch 的 API 操作(而非配置 API 操作)。

  • 在为 OpenSearch Serverless 创建接口端点后,仍然需要将其包含在网络访问策略中,以便它访问无服务器集合。

  • 默认情况下,允许通过接口端点对 OpenSearch 无服务器进行完全访问。您可以将安全组与端点网络接口关联,以控制通过接口端点流 OpenSearch 向无服务器的流量。

  • 单个 Amazon Web Services 账户 可以拥有最多 50 个 OpenSearch 无服务器 VPC 端点。

  • 如果网络策略启用通过公有 Internet 访问集合 API 或控制面板,则任何 VPC 和公有 Internet 均可访问您的集合。

  • 如果您在本地且位于 VPC 外部,则不能直接使用 DNS 解析程序进行 OpenSearch 无服务器 VPC 端点解析。如果需要 VPN 访问权限,则 VPC 需要 DNS 代理解析程序供外部客户端使用。Route 53 提供入站端点选项,您可以使用此选项解析从本地网络或其他 VPC 对您的 VPC 执行的 DNS 查询。

  • OpenSearch Serverless 创建并挂载到 VPC 的私有托管区由服务托管,但会在您的 Amazon Route 53 资源中显示并向您的账户计费。

  • 有关其他注意事项,请参阅 Amazon PrivateLink 指南中的注意事项

所需权限

OpenSearch 无服务器的 VPC 访问使用以下 Amazon Identity and Access Management (IAM)权限。您可以指定 IAM 条件,以将用户限制到特定集合。

  • aoss:CreateVpcEndpoint:创建 VPC 端点。

  • aoss:ListVpcEndpoints:列出所有 VPC 端点。

  • aoss:BatchGetVpcEndpoint:查看有关 VPC 端点子集的详细信息。

  • aoss:UpdateVpcEndpoint:修改 VPC 端点。

  • aoss:DeleteVpcEndpoint:删除 VPC 端点。

此外,您需要以下 Amazon EC2 和 Route 53 权限才能创建 VPC 端点。

  • ec2:CreateTags

  • ec2:CreateVpcEndpoint

  • ec2:DeleteVpcEndPoints

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSubnets

  • ec2:DescribeVpcEndpoints

  • ec2:DescribeVpcs

  • ec2:ModifyVpcEndPoint

  • route53:AssociateVPCWithHostedZone

  • route53:ChangeResourceRecordSets

  • route53:CreateHostedZone

  • route53:DeleteHostedZone

  • route53:GetChange

  • route53:GetHostedZone

  • route53:ListHostedZonesByName

  • route53:ListHostedZonesByVPC

  • route53:ListResourceRecordSets

为 OpenSearch 无服务器创建接口端点

您可以使用控制台或 OpenSearch 无服务器 API 为无服务器创建接口端点。 OpenSearch

为 OpenSearch 无服务器集合创建接口端点
  1. https://console.aws.amazon.com/aos/家中打开亚马逊 OpenSearch 服务控制台。

  2. 在左侧导航窗格中,展开 Serverless(无服务器),然后选择 VPC endpoints(VPC 端点)。

  3. 选择 Create VPC endpoint(创建 VPC 端点)。

  4. 为端点提供名称。

  5. 对于 VPC,选择您要从中访问 OpenSearch 无服务器的 VPC。

  6. 对于 Subnets(子网),选择一个您要从中访问 OpenSearch 无服务器的子网。

    • 端点的 IP 地址和 DNS 类型取决于子网类型

      • 双栈:所有子网都具有和地址范围 IPv4 IPv6

      • IPv6:所有子网均为 IPv6 子网

      • IPv4:所有子网都具有 IPv4 地址范围

  7. 对于 Security groups(安全组),选择要与端点网络接口关联的安全组。这是一个关键步骤,您可以在该步骤中限制您授权进入端点的入站流量的端口、协议和源。确保安全组规则允许将使用 VPC 端点与 OpenSearch Serverless 通信的资源与端点网络接口进行通信。

  8. 选择创建端点

要使用 OpenSearch 无服务器 API 创建 VPC 端点,请使用CreateVpcEndpoint命令。

注意

在创建端点后,记下其 ID(例如,vpce-abc123def4EXAMPLE)。为给端点提供针对集合的访问权限,您必须将此 ID 包含在一个或多个网络访问策略中。

在创建接口端点后,必须通过网络访问策略为其提供针对集合的访问权限。有关更多信息,请参阅 针对 Amazon OpenSearch 无服务器的网络访问权限

Amazon OpenSearch 无服务器的共享 VPC 设置

您可以使用亚马逊虚拟私有云 (VPC) Virtual Private Cloud 与组织中的 Amazon Web Services 账户 其他人共享 VPC 子网,也可以在多个资源之间共享网络基础设施,例如 VPN。 Amazon Web Services 账户

目前,除非您是共享 VPC 的所有者,否则 Amazon OpenSearch Serverless 不支持创建与共享 VPC 的 Amazon PrivateLink 连接。 Amazon PrivateLink 也不支持在之间共享连接 Amazon Web Services 账户。

但是,基于 OpenSearch Serverless 灵活的模块化架构,您仍然可以设置共享 VPC。这是因为 OpenSearch 无服务器网络基础设施与单个集合(OpenSearch 服务)基础架构是分开的。因此,您可以为一个 VPC 所在的账户创建一个 Amazon PrivateLink VPCe 终端节点,然后在其他账户的网络策略中使用一个 VPCe ID 来限制仅来自该共享 VPC 的流量。

以下过程涉及所有者账户消费者账户

所有者账户充当普通网络账户,您可以在其中设置 VPC 并与其他账户共享。消费者账户是在所有者账户与其共享的 VPC 中创建和维护其 OpenSearch 无服务器集合的账户。

先决条件

在设置共享 VPC 之前,请确保您满足以下要求:

  • 目标所有者账户必须已经在 Amazon Virtual Private Cloud 中设置了 VPC、子网、路由表和其他必需的资源。有关更多信息,请参阅《Amazon VPC 用户指南》

  • 目标所有者账户和消费者账户必须在中属于同一组织 Amazon Organizations。有关更多信息,请参阅 Amazon Organizations 《用户指南》

在所有者账户/普通网络账户中设置共享 VPC。
  1. https://console.aws.amazon.com/aos/家中登录亚马逊 OpenSearch 服务控制台。

  2. 按照为 OpenSearch 无服务器创建接口端点中的步骤操作。像您所做的那样,进行以下选择:

    • 选择与组织中的使用者账户共享的 VPC 和子网。

  3. 创建终端节点后,记下生成的 VPCe ID,并将其提供给要在使用者帐户中执行设置任务的管理员。

    VPCe IDs 是格式的vpce-abc123def4EXAMPLE

在使用者账户中设置共享 VPC
  1. https://console.aws.amazon.com/aos/家中登录亚马逊 OpenSearch 服务控制台。

  2. 如果您还没有集合,请使用中的管理 Amazon OpenSearch 无服务器馆藏信息创建集合。

  3. 使用中的信息创建网络策略(控制台)创建网络策略。像您所做的那样,进行以下选择。

    注意

    您也可以为此更新现有网络策略。

    1. 对于访问类型,选择 VPC(推荐)

    2. 对于用于访问的 VPC 终端节点,请选择所有者账户向您提供的 VPCe ID,格式为vpce-abc123def4EXAMPLE

    3. 资源类型区域,执行以下操作:

      • 选中 “允许访问 OpenSearch终端节点” 复选框,然后选择集合名称或集合模式以允许从该共享 VPC 进行访问。

      • 选中 “允许访问 OpenSearch控制面板” 复选框,然后选择用于启用从该共享 VPC 进行访问的集合名称或集合模式。

  4. 要创建新策略,请选择创建。对于现有策略,请选择更新