Amazon ES ドメインのログを Cloudwatch Logs に吐く
基本的には、以下のドキュメントの通りに常識的に設定すれば OK
ただしこのままでは、このロググループにログを送れる権限を誰にもつけていないため、許可を与える必要がある。ここでミソなのは、Amazon ES ドメインに許可を与えるのではなく、CloudWatch Logs サービスそのものに与える必要がある、という点。これはリソースベースのポリシで制御する。ドキュメント たとえば以下のように設定すると、Amazon ES のサービス全体から特定のロググループにログを送信できるようになる。Principal に es.amazonaws.com を指定しているため。クロスアカウントでのアクセス制御にも使えそう。 code:json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "es.amazonaws.com"
},
"Action": [
"logs:PutLogEvents",
"logs:PutLogEventsBatch",
"logs:CreateLogStream"
],
"Resource": "arn:aws:logs:ap-northeast-1:123456789012:log-group:/aws/aes/domains/suteki-na-domain/application-logs:*"
}
]
}
権限まわりの設定で「?」となったので、ここにメモしておいた。