本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon OpenSearch Serverless 的网络访问
Amazon OpenSearch Serverless 馆藏的网络设置决定了该馆藏是否可以从公共网络通过互联网访问,或者是否必须以私密方式访问。
私有访问适用于以下一种或两种情形:
-
OpenSearch 无服务器托管的 VPC 终端节点
-
支持, Amazon Web Services 服务 例如 Amazon Bedrock
您可以分别为集合的OpenSearch端点及其对应的OpenSearch 仪表板端点配置网络访问权限。
网络访问权限是允许从不同源网络进行访问的隔离机制。例如,如果集合的 OpenSearch Dashboards 端点可以公开访问,但 OpenSearch API 端点不可访问,则用户在从公共网络连接时只能通过仪表板访问集合数据。如果他们尝试 OpenSearch APIs直接从公共网络呼叫,他们将被屏蔽。网络设置可以用于源类型到资源类型的此类排列。Amazon OpenSearch Serverless 同时支持 IPv4 和 IPv6连接。
网络策略
网络策略使您能够通过为符合策略中定义的规则的集合自动分配网络访问权限设置,从而大规模管理许多集合。
在网络策略中,您可以指定一系列规则。这些规则定义了对集合端点和 OpenSearch 仪表板端点的访问权限。每条规则都由访问类型(公共或私有)和资源类型(集合和/或 OpenSearch 仪表板端点)组成。对于每种资源类型(collection
和 dashboard
),您可以指定一系列规则,用于定义策略将适用于哪些集合。
在此示例策略中,第一条规则针对以 marketing*
一词开头的所有集合,指定了对集合端点和控制面板端点的 VPC 端点访问权限。此外还指定了 Amazon Bedrock 访问权限。
注意
Amazon Web Services 服务 诸如 Amazon Bedrock 之类的私有访问权限仅适用于集合的 OpenSearch 终端节点,不适用于 OpenSearch 控制面板终端节点。即使ResourceType
是dashboard
,也 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 仪表板端点。即使
ResourceType
是dashboard
,也 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
更新策略:
注意
此外, OpenSearch Serverless 需要aoss:APIAccessAll
和aoss:DashboardsAccessAll
权限才能使用集合资源。有关更多信息,请参阅 使用 OpenSearch API 操作。
策略优先顺序
在某些情况下,网络策略规则可能会在策略内部或策略之间重叠。发生这种情况时,对于以下两条规则共用的任何集合,指定公有访问权限的规则将覆盖指定私有访问权限的规则。
例如,在以下策略中,两条规则都指定针对 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 端点适用于一个集合,则这些规则具有累加性,可以从所有指定端点访问该集合。如果您设置AllowFromPublic
为true
但同时提供一个或多个SourceVPCEs
或SourceServices
,则 OpenSearch Serverless 会忽略 VPC 终端节点和服务标识符,关联的集合将具有公开访问权限。
创建网络策略(控制台)
网络策略可以应用于现有策略以及未来策略。建议您在开始创建集合之前,先创建网络策略。
创建 OpenSearch 无服务器网络策略
-
在https://console.aws.amazon.com/aos/家
中打开亚马逊 OpenSearch 服务控制台。 -
在左侧导航面板上,展开 Serverless(无服务器),然后选择 Network policies(网络策略)。
-
选择 Create network policy(创建网络策略)。
-
为策略提供名称和描述。
-
提供一条或多条规则。这些规则定义了您的 OpenSearch 无服务器集合及其 OpenSearch 仪表板端点的访问权限。
每个规则包含以下元素:
元素 描述 Rule name(规则名称) 描述规则内容的名称。例如,“VPC access for marketing team”(针对营销团队的 VPC 访问权限)。 Access type(访问类型) 选择公有或私有访问。选择选择以下一项或两项: -
用于访问的 VPC 终端节点 — 指定一个或多个OpenSearch 无服务器托管的 VPC 终端节点 — 托管 VPC 终端节点。
-
Amazon Web Services 服务 私人访问权限-选择一个或多个支持的访问权限 Amazon Web Services 服务。
资源类型 选择是提供对 OpenSearch 端点(允许调用 OpenSearch API)、 OpenSearch 仪表板(允许访问可视化效果和 OpenSearch 插件用户界面)的访问权限,还是两者兼而有之。 注意
Amazon Web Services 服务 私有访问权限仅适用于集合的 OpenSearch 端点,不适用于 OpenSearch 仪表板端点。即使您选择 “OpenSearch 控制面板”,也 Amazon Web Services 服务 只能被授予终端节点访问权限。
对于您选择的每种资源类型,您可以选择要应用策略设置的现有集合, and/or 创建一个或多个资源模式。资源模式由前缀和通配符 (*) 组成,用于定义策略设置将应用于哪些集合。
例如,如果您包括名为
Marketing*
的模式,则名称以“Marketing”(营销)开头的任何新建或现有集合都将自动应用此策略中的网络设置。一个通配符 (*
) 可将策略应用于所有当前和未来集合。此外,您可以指定不带通配符的 f ut ure 集合的名称,例如
Finance
。 OpenSearch Serverless 会将策略设置应用于任何新创建的具有该名称的集合。 -
-
当您对策略配置感到满意时,选择 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
-
以下示例网络策略向一个 VPC 端点和 Amazon Bedrock 授予了对集合端点的私有访问权限,但仅限以前缀 log*
开头的集合。经过身份验证的用户无法登录 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
元素内容中查找策略信息。请注意本政策type
的name
和,并在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命令。您必须在请求中包括策略版本。您可以使用 ListSecurityPolicies
或 GetSecurityPolicy
命令检索策略版本。包括最新策略版本可以确保您不会无意中覆盖其他人所做的更改。
以下请求将使用新策略 JSON 文档更新网络策略:
aws opensearchserverless update-security-policy \ --name sales-inventory \ --type network \ --policy-version
MTY2MzY5MTY1MDA3Ml8x
\ --policy file://my-new-policy.json
删除网络策略
必须先将网络策略与所有集合分离,然后才能删除网络策略。要在 OpenSearch 无服务器控制台中删除策略,请选择该策略并选择删除。
你也可以使用以下DeleteSecurityPolicy命令:
aws opensearchserverless delete-security-policy --name
my-policy
--type network