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

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

Amazon OpenSearch Serverless 的网络访问

Amazon OpenSearch Serverless 馆藏的网络设置决定了该馆藏是否可以从公共网络通过互联网访问,或者是否必须以私密方式访问。

私人访问权限可以应用于以下一项或两项:

  • OpenSearch 无服务器托管的 VPC 终端节点

  • 支持, Amazon Web Services 例如 Amazon Bedrock

您可以分别为集合的OpenSearch端点及其对应的OpenSearch 仪表板端点配置网络访问权限。

网络访问权限是允许从不同源网络进行访问的隔离机制。例如,如果集合的 OpenSearch Dashboards 端点可以公开访问,但 OpenSearch API 端点不可访问,则用户在从公共网络连接时只能通过仪表板访问集合数据。如果他们尝试直接从公共网络调用 OpenSearch API,则会被屏蔽。网络设置可以用于源类型到资源类型的此类排列。

网络策略

网络策略使您能够通过为符合策略中定义的规则的集合自动分配网络访问权限设置,从而大规模管理许多集合。

在网络策略中,您可以指定一系列规则。这些规则定义了对集合端点和 OpenSearch 仪表板端点的访问权限。每条规则都由访问类型(公共或私有)和资源类型(集合和/或 OpenSearch 仪表板端点)组成。对于每种资源类型(collectiondashboard),您可以指定一系列规则,用于定义策略将适用于哪些集合。

在此示例策略中,第一条规则为以该术语开头的所有集合指定了对集合终端节点和仪表板终端节点的 VPC 终端节点的访问权限marketing*。它还指定了 Amazon Bedrock 访问权限。

注意

Amazon Web Services 诸如 Amazon Bedrock 之类的私有访问权限适用于集合的 OpenSearch 终端节点,不适用于 OpenSearch 控制面板终端节点。即使ResourceTypedashboard,也 Amazon Web Services 无法授予对 OpenSearch 仪表板的访问权限。

第二条规则指定针对 finance 集合的公共访问权限,但仅适用于集合端点(无控制面板访问权限)。

[ { "Description":"Marketing access", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/marketing*" ] }, { "ResourceType":"dashboard", "Resource":[ "collection/marketing*" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ], "SourceServices":[ "bedrock.amazonaws.com" ], }, { "Description":"Sales access", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

此政策仅为以 “财务” 开头的集合提供对 OpenSearch 仪表板的公开访问权限。任何直接访问 OpenSearch API 的尝试都将失败。

[ { "Description": "Dashboards access", "Rules": [ { "ResourceType": "dashboard", "Resource": [ "collection/finance*" ] } ], "AllowFromPublic": true } ]

网络策略可以应用于现有集合以及未来集合。例如,您可以创建一个集合,然后使用与集合名称相匹配的规则创建网络策略。在创建集合之前,无需创建网络策略。

注意事项

在为集合配置网络访问权限时,请考虑以下事项:

  • 如果您计划为集合配置 VPC 终端节点访问权限,则必须先创建至少一个OpenSearch 无服务器托管的 VPC 终端节点。

  • 对的私有访问权限 Amazon Web Services 仅适用于集合的 OpenSearch端点,不适用于 OpenSearch 仪表板端点。即使ResourceTypedashboard,也 Amazon Web Services 无法授予对 OpenSearch 仪表板的访问权限。

  • 如果集合可以从公共网络访问,则也可以从所有 OpenSearch 无服务器托管的 VPC 终端节点和所有终端节点访问该集合。 Amazon Web Services

  • 多个网络策略可以应用于一个集合。有关更多信息,请参阅 策略优先顺序

所需权限

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

  • aoss:CreateSecurityPolicy:创建网络访问策略。

  • aoss:ListSecurityPolicies:列出当前账户中的所有网络策略。

  • aoss:GetSecurityPolicy:查看网络访问策略规范。

  • aoss:UpdateSecurityPolicy:修改给定的网络访问策略,并更改 VPC ID 或公共访问指定。

  • aoss:DeleteSecurityPolicy:删除网络访问策略(将其与所有集合分离后)。

以下基于身份的访问策略允许用户查看所有网络策略,并使用资源模式 collection/application-logs 更新策略:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "aoss:UpdateSecurityPolicy" ], "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": "application-logs" } } }, { "Effect": "Allow", "Action": [ "aoss:ListSecurityPolicies", "aoss:GetSecurityPolicy" ], "Resource": "*" } ] }

策略优先顺序

在某些情况下,网络策略规则可能会在策略内部或策略之间重叠。发生这种情况时,指定公共访问权限的规则将优先于为两个规则共用的任何集合指定私有访问权限的规则。

例如,在以下策略中,两条规则都指定针对 finance 集合的网络访问权限,但一条规则指定 VPC 访问权限,而另一条规则指定公共访问权限。在这种情况下,公共访问权限仅会针对“finance”(财务)集合(因为该集合同时存在于两条规则中)覆盖 VPC 访问权限,因此可以从公共网络访问“finance”(财务)集合。“sales”(销售)集合将具有从指定端点进行 VPC 访问的权限。

[ { "Description":"Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/sales", "collection/finance" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ] }, { "Description":"Rule 2", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

如果不同规则中的多个 VPC 端点适用于一个集合,则这些规则具有累加性,可以从所有指定端点访问该集合。如果您设置AllowFromPublictrue但同时提供一个或多个SourceVPCEsSourceServices,则 OpenSearch Serverless 会忽略 VPC 终端节点和服务标识符,关联的集合将具有公开访问权限。

创建网络策略(控制台)

网络策略可以应用于现有策略以及未来策略。建议您在开始创建集合之前,先创建网络策略。

创建 OpenSearch 无服务器网络策略
  1. 打开亚马逊 OpenSearch 服务控制台,网址为 https://console.aws.amazon.com/aos/home

  2. 在左侧导航面板上,展开 Serverless(无服务器),然后选择 Network policies(网络策略)。

  3. 选择 Create network policy(创建网络策略)。

  4. 为策略提供名称和描述。

  5. 提供一条或多条规则。这些规则定义了您的 OpenSearch 无服务器集合及其 OpenSearch 仪表板端点的访问权限。

    每个规则包含以下元素:

    元素 描述
    Rule name(规则名称) 描述规则内容的名称。例如,“VPC access for marketing team”(针对营销团队的 VPC 访问权限)。
    Access type(访问类型) 选择公共访问或私有访问权限。然后,选择以下一项或两项:
    资源类型 选择是提供对 OpenSearch 端点(允许调用 OpenSearch API)、 OpenSearch 仪表板(允许访问可视化效果和 OpenSearch 插件用户界面)的访问权限,还是两者兼而有之。
    注意

    Amazon Web Service 私有访问权限仅适用于集合的 OpenSearch 端点,不适用于 OpenSearch 仪表板端点。即使您选择 “OpenSearch 控制面板”,也 Amazon Web Services 只能被授予终端节点访问权限。

    对于您选择的每种资源类型,您可以选择现有集合以将策略设置应用于它,和/或创建一个或多个资源模式。资源模式由前缀和通配符 (*) 组成,用于定义策略设置将应用于哪些集合。

    例如,如果您包括名为 Marketing* 的模式,则名称以“Marketing”(营销)开头的任何新建或现有集合都将自动应用此策略中的网络设置。一个通配符 (*) 可将策略应用于所有当前和未来集合。

    此外,您可以指定不带通配符的 f ut ure 集合的名称,例如Finance。 OpenSearch Serverless 会将策略设置应用于任何新创建的具有该名称的集合。

  6. 当您对策略配置感到满意时,选择 Create(创建)。

创建网络策略(Amazon CLI)

要使用 OpenSearch 无服务器 API 操作创建网络策略,您需要以 JSON 格式指定规则。该CreateSecurityPolicy请求接受内联策略和.json 文件。所有集合和模式都必须采用 collection/<collection name|pattern> 形式。

注意

资源类型dashboards仅允许访问 OpenSearch 仪表板的权限,但是为了使 OpenSearch 仪表板正常运行,您还必须允许来自相同来源的集合访问权限。有关示例,请参阅下面的第二个策略。

要指定私有访问权限,请包括以下一个或两个元素:

  • SourceVPCEs— 指定一个或多个 OpenSearch 无服务器托管 VPC 终端节点。

  • SourceServices— 指定一个或多个支持的标识符 Amazon Web Services。当前,支持以下服务标识符:

    • bedrock.amazonaws.com— Amazon Bedrock

以下示例网络策略仅为以前缀log*开头的集合提供对 VPC 终端节点和 Amazon Bedrock 以及对收集端点的私有访问权限。经过身份验证的用户无法登录 OpenSearch 控制面板;他们只能通过编程方式访问集合端点。

[ { "Description":"Private access for log collections", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/log*" ] } ], "AllowFromPublic":false, "SourceVPCEs":[ "vpce-050f79086ee71ac05" ], "SourceServices":[ "bedrock.amazonaws.com" ], } ]

以下策略为名为的单个集合提供对 OpenSearch 终端节点 OpenSearch 仪表板的公共访问权限finance。如果集合不存在,则网络设置将在创建该集合时应用于该集合。

[ { "Description":"Public access for finance collection", "Rules":[ { "ResourceType":"dashboard", "Resource":[ "collection/finance" ] }, { "ResourceType":"collection", "Resource":[ "collection/finance" ] } ], "AllowFromPublic":true } ]

以下请求将创建上述网络策略:

aws opensearchserverless create-security-policy \ --name sales-inventory \ --type network \ --policy "[{\"Description\":\"Public access for finance collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/finance\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/finance\"]}],\"AllowFromPublic\":true}]"

要在 JSON 文件中提供策略,请使用 --policy file://my-policy.json 格式

查看网络策略

在创建集合之前,您可能想预览账户中的现有网络策略,以查看哪个网络策略的资源模式与您的集合名称相匹配。以下ListSecurityPolicies请求列出了您账户中的所有网络政策:

aws opensearchserverless list-security-policies --type network

该请求将返回有关所有已配置的网络策略的信息。要查看某一具体策略中定义的模式规则,请在响应的 securityPolicySummaries 元素内容中查找策略信息。请注意本政策typename和,并在GetSecurityPolicy请求中使用这些属性来接收包含以下策略详细信息的响应:

{ "securityPolicyDetail": [ { "type": "network", "name": "my-policy", "policyVersion": "MTY2MzY5MTY1MDA3Ml8x", "policy": "[{\"Description\":\"My network policy rule\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection/*\"]}],\"AllowFromPublic\":true}]", "createdDate": 1663691650072, "lastModifiedDate": 1663691650072 } ] }

要查看有关特定策略的详细信息,请使用GetSecurityPolicy命令。

更新网络策略

当您修改针对网络的 VPC 端点或公共访问权限指定时,所有相关集合都会受到影响。要在 OpenSearch Serverless 控制台中更新网络策略,请展开网络策略,选择要修改的策略,然后选择编辑。进行更改,然后选择保存

要使用 OpenSearch 无服务器 API 更新网络策略,请使用UpdateSecurityPolicy命令。您必须在请求中包括策略版本。您可以使用 ListSecurityPoliciesGetSecurityPolicy 命令检索策略版本。包括最新策略版本可以确保您不会无意中覆盖其他人所做的更改。

以下请求将使用新策略 JSON 文档更新网络策略:

aws opensearchserverless update-security-policy \ --name sales-inventory \ --type network \ --policy-version MTY2MzY5MTY1MDA3Ml8x \ --policy file://my-new-policy.json

删除网络策略

必须先将网络策略与所有集合分离,然后才能删除网络策略。要在 OpenSearch Serverless 控制台中删除策略,请选择该策略并选择删除

你也可以使用以下DeleteSecurityPolicy命令:

aws opensearchserverless delete-security-policy --name my-policy --type network