AWS Elasticsearch를 설정 한 후 고정 IP 서버에 Logstash 및 Kibana 프록시를 설치하고이 도메인 액세스 정책을 ES에 추가 했으므로 잘 작동합니다. 다음 AWS ES 액세스 정책에 추가 IAM Managment를 콘솔에서와 관계있는 ARN
를 복사AWS Elasticsearch 서비스 (정적 IP 및 Lambda ARN)에 다중 도메인 액세스 정책 추가
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"192.192.192.192"
]
}
}
}
]
}
는 지금은 람다 함수는 AWS ES에 es:ESHttpDelete
동작을 실행할 수 있도록해야합니다, 그래서 기존 역할 service-role/Elasticsearch
과 기능을 만들어 이 문제를 해결하려면
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam:: 323137313233:role/service-role/Elasticsearch"
]
},
"Action": [
"es:*"
],
"Resource": "arn:aws:es:ap-southeast-1:323137313233:domain/sg-es-logs/*"
}
]
}
문제가 있습니다 ES 정적 IP 또는 ARN에 대해 도메인 액세스 정책을 선택해야하지만 둘 다에 대해 선택해서는 안됩니다. 콘솔을 사용하지 않고 수동으로 병합하려고했을 때 작동하지 않았습니다. AWS 설명서를 확인했지만 가능한지 여부는 언급하지 않았습니다.
FWIW, 아마존 개발자 지원은 매우 훌륭하지만 그것은 당신에게 월 $ 30 비용 : 그래서, 최종 정책 같은 것이 될 것이다. 나는 답을 모른다. 당신이 말했듯이, 의사들은 실제로하고 싶은 일을하는 법을 말하지 않는다. –
첫 번째 정책에 금지 된 사용자 필드가 있습니다. 어떻게 작동 시키셨습니까? 주체를 지정하는 대신 주 ARN을 비교하는 두 번째 조건을 추가하십시오 – JayEye