跳至内容

如何通过 Amazon Cognito 身份验证从 VPC 外部访问 OpenSearch Dashboards?

2 分钟阅读
0

我的 Amazon OpenSearch Service 集群位于虚拟私有云 (VPC) 中。我想从 VPC 外部访问 OpenSearch Dashboards 端点。

解决方法

要访问 OpenSearch 控制面板,请使用 SSH 隧道、NGINX 代理或 AWS Site-to-Site VPN。

使用 SSH 隧道

SSH 隧道通过 SSH 协议提供安全连接,所有连接都使用 SSH 端口。但是,SSH 隧道需要客户端配置和代理服务器。

有关详细信息,请参阅如何使用 SSH 隧道通过 Amazon Cognito 身份验证从 VPC 外部访问 OpenSearch Dashboards?

使用 NGINX 代理

NGINX 代理只需要服务器端配置,并使用标准 HTTP(端口 80)和 HTTPS(端口 443)。但是,NGINX 代理需要代理服务器,连接的安全级别取决于您配置代理服务器的方式。

有关详细信息,请参阅如何使用 NGINX 代理通过 Amazon Cognito 身份验证从 VPC 外部访问 OpenSearch Dashboards?

(可选)如果您已开启精细访问控制,请添加经过 Amazon Cognito 身份验证的角色

如果您已为 OpenSearch Service 集群开启精细访问控制,则可能会收到 missing role 错误。

要解决 missing role 错误,请完成以下步骤:

  1. 打开 OpenSearch Service 控制台
  2. 在导航窗格的 Managed clusters(托管集群)下,选择 Domains(域)。
  3. 选择 Actions(操作),然后选择 Edit security configurations(编辑安全配置)。
  4. 选择 Set IAM ARN as your master user(将 IAM ARN 设置为您的主用户)。
  5. 对于 IAM ARN,输入经过 Amazon Cognito 身份验证的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称 (ARN)。
  6. 选择 Submit(提交)。

对于具有精细访问控制和 OpenSearch Dashboards 访问权限的现有集群,您可以将 Amazon Cognito 用户映射为内部用户的后端角色。您还可以在 OpenSearch Dashboards 中将用户映射到 all_access 角色。

完成以下步骤:

  1. 打开 OpenSearch Service 控制台
  2. 在导航窗格的 Managed clusters(托管集群)下,选择 Domains(域)。
  3. 登录集群的 OpenSearch Dashboards。
  4. 选择 all_access 角色。
  5. Dashboards(控制面板)下,选择 Security(安全),然后选择 Roles/Internal Users(角色/内部用户)。
  6. 对于 Roles(角色),选择 all_access,或从内部用户中选择一个用户。
  7. 选择 Manage Mappings(管理映射)。
  8. 对于 Backend role(后端角色),输入经过 Amazon Cognito 身份验证的 IAM 角色的 ARN,然后选择 Map(映射)。
  9. Edit Cluster Settings(编辑集群设置)下,为用户池启用 Cognito Authentication(Cognito 身份验证),为经过 Amazon Cognito 身份验证的 IAM 角色启用身份池。
    **注意:**此设置会导致蓝绿部署。
  10. 通过 NGINX 代理更新集群访问权限或使用 AWS VPN。

有关精细访问控制的详细信息,请参阅教程: 配置具有 IAM 主用户和 Amazon Cognito 身份验证的域

使用 Site-to-Site VPN

Site-to-Site VPN 会在您的本地设备和 VPC 之间创建安全连接,并将标准 TCP 和 UDP 用于 SSL/TLS VPN。但是,Site-to-Site VNP 连接需要 VPN 设置和客户端配置。

**注意:**要允许或限制对资源的访问,请修改 VPC 网络配置以及与 OpenSearch Service 域关联的安全组。有关详细信息,请参阅测试 VPC 域

相关信息

如何解决 OpenSearch Dashboards 中的 Amazon Cognito 身份验证问题?

为 OpenSearch Dashboards 配置 Amazon Cognito 身份验证

当我尝试访问我的 OpenSearch Service 集群时,为什么会出现“User: anonymous is not authorized”错误?

AWS 官方已更新 2 年前