AWS ElasticSearch 控制台:如何访问我的 ES 域中的索引选项卡
AWS ElasticSearch console: How to Access to Indices tab in my ES domain
我无法在 AWS ElasticSearch 控制台中访问我的 ES 域的索引选项卡。这是它在控制台中的样子:
即使我将我的 IAM ARN (arn:aws:iam::NNNNNNNNNNNNNN:root) 添加到控制台的访问策略,我仍然收到此错误:
/_stats: {
"error":{
"root_cause":[
{
"type":"security_exception",
"reason":"no permissions for [indices:monitor/stats] and User [name=arn:aws:iam::NNNNNNNNNNNNN:root, backend_roles=[], requestedTenant=null]"
}
],
"type":"security_exception",
"reason":"no permissions for [indices:monitor/stats] and User [name=arn:aws:iam::NNNNNNNNNNNNN:root, backend_roles=[], requestedTenant=null]"
},
"status":403
}
知道哪里出了问题吗?该域也具有使用主密码的访问控制。
请转到下图所示的操作下拉菜单,那里会显示当前附加到您的 Elasticsearch 域的访问策略。
在我的例子中,它看起来如下,我可以访问索引选项卡,请注意,具有 /* 的 Resources 键意味着允许访问我域中的所有端点和索引是一部分
注意:获得权限后可直接点击_cat/indices?v
API获取所有指数详情
事实证明我的访问策略设置本身是正确的,但是如果您在域中使用基本身份验证配置了主用户帐户,则索引和集群运行状况将不起作用。在我切换到基于 ARN 的主账户后,它起作用了。
Google 员工:
自 2020/01 起,Amazon ES 采用了一种技巧来确定如何完成细粒度授权。
- 如果您的主用户是 IAM 用户 ARN,您将隐式选择 IAM 方式
- 如果您的主用户创建为具有自己的用户名和密码的 ES 用户,则您隐式选择了正常方式
影响是:
- IAM-way 使用 AWS 令牌作为授权请求的方式
- 普通方式采用 HTTP 身份验证
- 如果您选择正常方式,那么 ES 将不会与 IAM 集成,也不会将 IAM 用户/角色映射到内部用户,即使它们看似映射到 Kibana UI
- 如果您选择 IAM 方式,那么您将失去通过 Kibana 默认登录页面登录的能力,它将变得无法正常工作
- 如果您仍想使用 IAM 方式和 Kibana UI,那么您将需要集成 Cognito
对于看到映射的 IAM 用户/角色但在访问域时发现他们未经授权的用户来说,这看起来非常混乱。
由于您可以更改 ES 域的主用户(停机时间),您可以来回更改它以避免与 Cognito 集成,但这很痛苦。
这应该在 official docs.
中更清楚地说明或更好地强调
我无法在 AWS ElasticSearch 控制台中访问我的 ES 域的索引选项卡。这是它在控制台中的样子:
即使我将我的 IAM ARN (arn:aws:iam::NNNNNNNNNNNNNN:root) 添加到控制台的访问策略,我仍然收到此错误:
/_stats: {
"error":{
"root_cause":[
{
"type":"security_exception",
"reason":"no permissions for [indices:monitor/stats] and User [name=arn:aws:iam::NNNNNNNNNNNNN:root, backend_roles=[], requestedTenant=null]"
}
],
"type":"security_exception",
"reason":"no permissions for [indices:monitor/stats] and User [name=arn:aws:iam::NNNNNNNNNNNNN:root, backend_roles=[], requestedTenant=null]"
},
"status":403
}
知道哪里出了问题吗?该域也具有使用主密码的访问控制。
请转到下图所示的操作下拉菜单,那里会显示当前附加到您的 Elasticsearch 域的访问策略。
在我的例子中,它看起来如下,我可以访问索引选项卡,请注意,具有 /* 的 Resources 键意味着允许访问我域中的所有端点和索引是一部分
注意:获得权限后可直接点击_cat/indices?v
API获取所有指数详情
事实证明我的访问策略设置本身是正确的,但是如果您在域中使用基本身份验证配置了主用户帐户,则索引和集群运行状况将不起作用。在我切换到基于 ARN 的主账户后,它起作用了。
Google 员工:
自 2020/01 起,Amazon ES 采用了一种技巧来确定如何完成细粒度授权。
- 如果您的主用户是 IAM 用户 ARN,您将隐式选择 IAM 方式
- 如果您的主用户创建为具有自己的用户名和密码的 ES 用户,则您隐式选择了正常方式
影响是:
- IAM-way 使用 AWS 令牌作为授权请求的方式
- 普通方式采用 HTTP 身份验证
- 如果您选择正常方式,那么 ES 将不会与 IAM 集成,也不会将 IAM 用户/角色映射到内部用户,即使它们看似映射到 Kibana UI
- 如果您选择 IAM 方式,那么您将失去通过 Kibana 默认登录页面登录的能力,它将变得无法正常工作
- 如果您仍想使用 IAM 方式和 Kibana UI,那么您将需要集成 Cognito
对于看到映射的 IAM 用户/角色但在访问域时发现他们未经授权的用户来说,这看起来非常混乱。
由于您可以更改 ES 域的主用户(停机时间),您可以来回更改它以避免与 Cognito 集成,但这很痛苦。
这应该在 official docs.
中更清楚地说明或更好地强调