ALBのログを設定するときに
Access Denied for bucket: alb-logs. Please check S3bucket permission
とエラーが出て少しハマったのでメモ。
S3にバケットを追加する
バケットを作成する
名前は一意だったらなんでも良い。
今回は仮にalb-logsとします。
バケットにポリシーをアタッチする
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "S3PolicyStmt-xxxxxxxxxxxxxxxxxx",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::582318560864:root"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::alb-logs/*"
}
]
}
arn:aws:iam::582318560864:root
↑の数字は、リージョンのIDです。
582318560864はアジアパシフィック (東京) なので、他の地域は下記を参考に設定してください!
arn:aws:s3:::alb-logs/*はS3のバケット名を入れます。
alb-logsの部分を適宜変更してください。
ALBの設定を変更する
ログの有効化をする
対象のALBを開き、AttributesにあるAccess logsをonにする。
↑で作ったS3のバケットを選択して、保存。
これで、ALBのログがS3に出力されるようになりました!
ちなみにALBとバケットは同じリージョンにないとダメみたいです。