跳至内容

如何通过 HTTP 身份验证结合精细访问控制从 VPC 外部访问 OpenSearch Dashboards?

2 分钟阅读
0

我在虚拟私有云 (VPC) 中有一个已激活精细访问控制的Amazon OpenSearch Service 域。我想通过用户名和密码的 HTTP 基本身份验证从 VPC 外部访问 OpenSearch Dashboards。

简短描述

默认情况下,OpenSearch Dashboards 会限制对其所在 VPC 的访问。当您从未连接到该 VPC 或没有连接代理的本地计算机访问 OpenSearch Dashboards 时,将会收到超时错误。

要通过 HTTP 基本身份验证从 VPC 外部访问 OpenSearch Dashboards,请使用以下方法之一:

  • 使用 AWS Site-to-Site VPN 在网络之间建立安全连接。
  • 使用 AWS Client VPN 为单个用户建立安全连接。
  • 使用 SSH 隧道通过跳转服务器建立安全连接。
  • 使用 NGINX 代理将 Web 服务器用作中介。

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。以下解决方法不适用于使用 Amazon Cognito 身份验证的 OpenSearch Dashboards

要将精细访问控制与 HTTP 基本身份验证结合使用,域必须具有允许匿名访问的开放域访问策略。

策略示例:

{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "AWS":[
               "*"
            ]
         },
         "Action":[
            "es:ESHttp*"
         ],
         "Resource":"arn:aws:es:region:123456789:domain/test-domain/*"
      }
   ]
}

**注意:**请将 region 替换为您的 AWS 区域,将 123456789 替换为您的 AWS 账户 ID,将 test-domain 替换为您的域名。

此外,必须将主用户类型配置为内部用户数据库。您可以使用 OpenSearch Service 控制台或 AWS CLI 来配置此设置。

使用 Site-to-Site VPN

Site-to-Site VPN 可在您的本地网络和 Amazon Virtual Private Cloud (Amazon VPC) 之间创建安全的加密连接。配置 Site-to-Site VPN 后,可直接访问 OpenSearch Dashboards URL。要查找 OpenSearch Dashboards URL,请完成以下步骤:

  1. 打开 OpenSearch Service 控制台
  2. 选择 Domains(域),然后选择您的域。
  3. 选择 General information(一般信息)选项卡。
  4. 选择 OpenSearch Dashboards URL。

使用 Client VPN

使用 Client VPN 可以从任意位置安全地访问您的 AWS 资源和本地网络中的资源。要访问 OpenSearch Dashboards,请连接到 VPN,然后打开 OpenSearch Dashboards URL。

**注意:**Client VPN 允许单个用户无需建立点对点连接即可访问 OpenSearch Dashboards。

使用 SSH 隧道

SSH 隧道可通过 SSH 协议(通常是端口 22)建立安全的加密连接。您可以使用 SSH 隧道从本地计算机访问私有 VPC 内的资源。

要使用 SSH 隧道访问您的资源,请配置以下资源:

  • 与您的 OpenSearch Service 域位于同一 VPC 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例
  • 在本地计算机上设置 SSH 端口转发。

有关详细的配置说明,请参阅测试 VPC 域

使用 NGINX 代理

使用 NGINX Web 服务器作为中介服务器,以将来自公共互联网的请求转发到 VPC 内的 OpenSearch 域。要配置 NGINX 代理,请参阅 How do I use an NGINX proxy to access Kibana or OpenSearch Dashboards outside of a VPC that doesn't use Amazon Cognito authentication?(如何使用 NGINX 代理从 VPC 外部访问不使用 Amazon Cognito 身份验证的 Kibana 或 OpenSearch Dashboards?)

配置 NGINX 代理后,您还可以从本地计算机对 OpenSearch Service 集群运行 curl 命令和其他 REST API。

相关信息

如何解决 OpenSearch Service 集群中的精细访问控制问题?

AWS 官方已更新 4 个月前