AWSのELBのアクセスログをS3に保存した手順をメモ代わりに残します。
参考になれば幸いです。
あと、間違いがあれば指摘ください。
S3の設定
-
バケットポリシーを設定
※下記AWSドキュメントの「バケットのアクセス許可」に記述されてる設定内容を丸っと貼り付ける
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html?icmpid=docs_elbv2_console
-
バケットポリシー設定の赤字部分を書き換える
-
elb-account-id ※上記AWSドキュメントに現リージョンに対応するIDが一覧表で用意されている
(以下の表には、バケットポリシーで elb-account-id の代わりに使用するアカウント ID が含まれています。
の部分) - bucket-name
- prefix
- your-aws-account-id
※elb-account-idは東京リージョンなので一覧表を確認した値に書き換える(582318560864)
※your-aws-account-id/は設定しなかったため削除(認識誤ってるかもしれません)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::582318560864:root"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::accesslogs-test/staging/AWSLogs/*"
},
{
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::accesslogs-test/staging/AWSLogs/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
},
{
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::accesslogs-test"
}
]
}
⭐︎S3の設定完了⭐︎
ELBの設定
※この時、作成したS3にバケットポリシーを設定していないとエラーになる
⭐︎ELBの設定完了⭐︎
アクセスログの確認
⭐︎きちんとアクセスログが出力されてれば完成です⭐︎
ハマった点としてはバケットポリシーの設定です。
少しAWSと仲良くなれた気がします。
以上です。お疲れ様でした。