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

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

使用接口终端节点访问 Amazon OpenSearch Serverless ()Amazon PrivateLink

您可以使用 Amazon PrivateLink 在您的 VPC 和 Amazon OpenSearch Serverless 之间创建私有连接。您可以像在 VPC 中一样访问 OpenSearch 无服务器,无需使用互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 连接。您的 VPC 中的实例不需要公有 IP 地址即可访问 OpenSearch 无服务器。

您可以通过创建由 Amazon PrivateLink提供支持的接口端点来建立此私有连接。我们将在您为接口端点指定的每个子网中创建一个端点网络接口。这些是请求者管理的网络接口,用作发往 Serverless 的流量的入口点。 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 区域 VPC 中的所有集合和控制面板。每个带有 S OpenSearch erverless 终端节点的 VPC 都有自己的私有托管区域。

OpenSearch Serverless 还会为该地区的所有集合创建一条公共 Route 53 通配符 DNS 记录。DNS 名称解析为 OpenSearch 无服务器公有 IP 地址。没有 OpenSearch 无服务器 VPC 终端节点的 VPC 中的客户端或公共网络中的客户端可以使用公共 Route 53 解析器,并使用这些 IP 地址访问集合和控制面板。

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

VPC 和网络访问策略

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

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

VPC 和端点策略

Amazon OpenSearch Serverless 支持 VPC 的终端节点策略。终端节点策略是您附加到 VPC 终端节点的基于 IAM 资源的策略,用于控制哪些 Amazon 委托人可以使用该终端节点访问您的 Amazon 服务。有关更多信息,请参阅使用端点策略控制对 VPC 端点的访问

要使用端点策略,必须先创建接口端点。您可以使用无服务器控制台或 OpenSearch 无服务器 API 创建接口端点。 OpenSearch 创建接口端点后,您需要将端点策略添加到端点。有关更多信息,请参阅使用接口终端节点访问 Amazon OpenSearch Serverless(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": "*" } ] }

您可以指定一个 OpenSearch 无服务器集合作为条件元素包含在您的 VPC 终端节点策略中。为此,请参阅以下示例:

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

您可以在 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": { "aws:SamlPrincipal": [ "saml/123456789012/idp123/user/user1234"] } } } ] }

有关在 Amazon Serverless 中使用 SAML 身份验证的更多信息,请参阅 Amazon OpenSearch Serverless 的 SAML 身份验证。 OpenSearch

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

{ "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" ] } } }, { "Effect": "Allow", "Principal": { "AWS": [ "123456789012" ] }, "Action": "*", "Resource": "*" } ] }

注意事项

在为 OpenSearch Serverless 设置接口终端节点之前,请考虑以下事项:

  • OpenSearch Serverless 支持通过接口端点调用所有支持OpenSearch 的 API 操作(不是配置 API 操作)。

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

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

  • 单个最多 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. 打开亚马逊 OpenSearch 服务控制台,网址为 https://console.aws.amazon.com/aos/home

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

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

  4. 为端点提供名称。

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

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

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

  8. 选择创建端点

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

注意

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

下一步:为端点授予针对集合的访问权限

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