【发布时间】:2021-02-09 18:08:06
【问题描述】:
我正在尝试使用 ElasticSearch 作为 AppSync 中的数据源,但我得到了这个:
Elasticsearch 响应错误:禁止访问
我正在使用 AppSync 创建的角色。我什至尝试在同一角色中添加对 ES 的完全访问权限,但没有成功。
我做错了什么?
【问题讨论】:
我正在尝试使用 ElasticSearch 作为 AppSync 中的数据源,但我得到了这个:
Elasticsearch 响应错误:禁止访问
我正在使用 AppSync 创建的角色。我什至尝试在同一角色中添加对 ES 的完全访问权限,但没有成功。
我做错了什么?
【问题讨论】:
这几天我一直在为同样的问题苦苦挣扎。 就我而言,问题在于自动生成的 IAM 角色被授予了 ES 端点的权限,并且通过更改对整个 ES 域的“资源”引用来解决。例如:
之前:
"Resource": [
"arn:aws:es:us-east-1:11111:domain/search-foo-bar-search-someid123.us-east-1.es.amazonaws.com"
]
之后:
"Resource": [
"arn:aws:es:us-east-1:11111:domain/foo-bar-search/*"
]
【讨论】:
""arn:aws:es:us-east-1:11111:domain/search-foo-bar-search-..." 被替换为 "arn:aws:es:us-east-1:11111:domain/foo-bar-search/*"。它是否与/ 正确匹配?这将是令人惊讶的。
"arn:aws:es:us-east-1:11111:domain/foo-bar-search/" 是否可以在没有* 的情况下工作,那么不,它不会引用任何资源。但还有其他工作版本,如 "arn:aws:es:us-east-1:11111:domain/foo-bar-search" 和 "arn:aws:es:us-east-1:11111:domain/*"