AWS Elasticsearch をセットアップした後、Logstash と Kibana プロキシを静的 IP サーバーにインストールし、このドメイン アクセス ポリシーを ES に追加しましたが、正常に動作しています。
{
"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"
]
}
}
}
]
}
ここで、Lambda 関数がes:ESHttpDelete
AWS ES でアクションを実行できるようにする必要があるため、既存のロールを使用して関数を作成し、IAM 管理コンソールから関連イベントをservice-role/Elasticsearch
コピーして AWS ES アクセス ポリシーに追加し、次のようにしました。ARN
{
"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 のドキュメントを確認しましたが、それが可能かどうかについては言及されていませんでした。