如何为 AWS Opensearch 域启用基于密码的身份验证?

Posted

技术标签:

【中文标题】如何为 AWS Opensearch 域启用基于密码的身份验证?【英文标题】:How to enable password based authentication for AWS Opensearch Domain? 【发布时间】:2022-01-07 04:26:07 【问题描述】:

我在 VPC 中放置了弹性搜索域。我可以毫无问题地从 VPC 连接到域。但为了提高安全性,我希望身份验证基于用户名:密码。我正在使用 elasticsearch-dsl 进行连接。知道如何设置基于用户名和密码的域连接吗?

我尝试更新域配置,以设置 MasterUser 和 MasterPassword(不确定过程是否正确)。

aws es update-elasticsearch-domain-config --domain-name test-domain --advanced-security-options Enabled=true,InternalUserDatabaseEnabled=true

我收到此错误:

An error occurred (BaseException) when calling the UpdateElasticsearchDomainConfig operation: You don't have permissions to enable Advanced Security options.

这是正确的做法吗?如果没有,我们如何启用基于密码的身份验证?

【问题讨论】:

【参考方案1】:

调用 UpdateElasticsearchDomainConfig 操作时发生错误 (BaseException):您无权启用高级安全选项。

您收到的上述错误表明您没有更新高级安全配置的权限。 调用更新 api 时需要使用主用户凭据。

请参阅此处的文档以获取有关主用户的更多信息: https://docs.aws.amazon.com/opensearch-service/latest/developerguide/fgac.html

【讨论】:

原来如此,现有域没有主用户。我想创建一个。 UI 中的选项不适用于 6.7 版。尽管如此,我们还是继续推行基于角色的政策。如果您想访问域,则无法从实例中正常 curl 工作。我们需要使用他们的 SDK 从代码发出 AWS 签名请求。

以上是关于如何为 AWS Opensearch 域启用基于密码的身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 AWS 中的成本和使用数据启用每小时粒度?

如何为 pymysql lambda 启用 AWS XRAY 跟踪

在 aws lambda 上使用 opensearch-py 进行 opensearch 身份验证

AWS OpenSearch 客户端错误:无法验证服务器是 Elasticsearch

如何为自托管 WCF 服务启用跨域调用

如何使用 CloudFormation 为 Amazon OpenSearch 设置兼容模式?