管理从 VPC 端点访问 OpenSearch UI 的权限
您可以使用 Amazon PrivateLink 在您的 VPC 和 OpenSearch UI 之间创建私有连接。使用此连接,您可以访问 OpenSearch UI 应用程序,如同位于同一 VPC 一样。如此一来,您无需配置互联网网关、NAT 设备、VPN 连接或 Amazon Direct Connect 即可建立连接。VPC 中的实例不需要公共 IP 地址即可访问 OpenSearch UI。
要建立此私有连接,您首先需要创建由 Amazon PrivateLink 提供支持的接口端点。在您为接口端点指定的每个子网中,都会自动创建一个端点网络接口。这些是请求者托管的网络接口,用作发往 OpenSearch UI 应用程序流量的入口点。
在 VPC 和 OpenSearch UI 之间创建私有连接
您可以使用 Amazon Web Services 管理控制台 或 Amazon CLI 创建私有连接,以便从 VPC 访问 OpenSearch UI。
在 VPC 和 OpenSearch UI 之间创建私有连接(控制台)
使用控制台,在 VPC 和 OpenSearch UI 之间创建私有连接
-
登录到位于 https://console.aws.amazon.com/aos/home
的 Amazon OpenSearch Service 控制台。 -
在左侧导航的无服务器项下,选择 VPC 端点。
-
选择创建 VPC 端点。
-
对于名称,输入端点的名称。
-
对于 VPC,选择您要从中访问 OpenSearch UI 应用程序的 VPC。
-
对于子网,选择一个您要从中访问 OpenSearch UI 应用程序的子网。
注意
端点的 IP 地址和 DNS 类型取决于子网类型:
-
双栈:所有子网都具有 IPv4 和 IPv6 地址范围。
-
IPv6:所有子网均为仅 IPv6 子网。
-
IPv4:所有子网都具有 IPv4 地址范围。
-
-
对于安全组,选择一个或多个要与端点网络接口关联的安全组。
注意
在此步骤中,您可以在该步骤中限制您授权进入端点的入站流量的端口、协议和源。确保安全组规则允许将使用 VPC 端点的资源与 OpenSearch UI 应用程序进行通信,同时也能与该端点的网络接口进行通信。
-
8. 选择创建端点。
在 VPC 和 OpenSearch UI 之间创建私有连接(Amazon CLI)
使用 Amazon CLI,在 VPC 和 OpenSearch UI 之间创建私有连接
运行以下命令。将占位符值替换为您自己的信息。
aws opensearchserverless create-vpc-endpoint \ --regionregion\ --endpointendpoint\ --namevpc_endpoint_name\ --vpc-idvpc_id\ --subnet-idssubnet_ids
更新 VPC 端点策略以允许访问 OpenSearch UI 应用程序
创建私有连接后,请更新 VPC 端点策略,通过指定应用程序 ID 允许访问 VPC 端点策略中的 OpenSearch UI 应用程序。
有关更新 VPC 端点策略的信息,请参阅《Amazon PrivateLink 指南》中的 Update a VPC endpoint policy。
确保 VPC 端点策略包含以下语句。将占位符值替换为您自己的信息。
{ "Statement": [{ "Action": ["opensearch:*"], "Effect": "Allow", "Principal": "*", "Resource": "*", "Condition": { "StringEquals": { "opensearch:ApplicationId": ["opensearch-ui-application-id"] } } }] }
在 VPC 端点策略中撤销对 OpenSearch UI 的访问权限
OpenSearch UI 需要在 VPC 端点策略中明确授予权限,才能允许用户从 VPC 访问该应用程序。如果您不再希望用户从 VPC 访问 OpenSearch UI,则可在端点策略中移除该权限。此后,用户在尝试访问 OpenSearch UI 时会遇到 403 forbidden 错误消息。
有关更新 VPC 端点策略的信息,请参阅《Amazon PrivateLink 指南》中的 Update a VPC endpoint policy。
以下是拒绝从 VPC 访问 UI 应用程序的 VPC 端点策略示例:
{ "Statement": [{ "Action": ["opensearch:*"], "Effect": "Allow", "Principal": "*", "Resource": "*", "Condition": { "StringEquals": { "opensearch:ApplicationId": [""] } } }] }