我已选择“允许访问一个或多个 AWS 账户或 IAM 用户”
我的访问策略
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::12345678910:user/elastic"
},
"Action": "es:*",
"Resource": "arn:aws:es:eu-west-1:123456789:domain/elastic-cluster/*"
}
]
}
我创建了一个 IAM 配置文件 -
user - elastic
password -hisdfdsfds
Access key Id - sdsfdssdfdsfdsfdsfsdfsd
Secret Access Key - sdsfdsfdsfsdfdsfds
当我尝试连接时
$params = array();
$params['hosts'] = array (
'search-elastic-cluster-sdfsdfsdfs.eu-east.es.amazonaws.com:80',
);
$client = new Elasticsearch\Client($params);
它抛出以下错误:
{"Message":"User: anonymous is not authorized to perform: es:ESHttpPost on resource: arn:aws:es:eu-west-1:dsfdsfsdfsdsd:domain/elastic-cluster/sdsfsfds/sdfdsfdssd/_search"}
我发现它可以通过签名的版本 4 签名请求访问。我试过这样做,但不能。可能方式不对。
如果有人建议创建对弹性搜索域的签名版本 4 请求的想法,我会很高兴。使用我上面提到的参数的示例将非常有帮助。提前致谢。