AWS ELBのアクセスログをS3に保存する


AWSのELBのアクセスログをS3に保存した手順をメモ代わりに残します。
参考になれば幸いです。

あと、間違いがあれば指摘ください。

  1. S3設定
  2. ELB設定
  3. アクセスログの確認

S3の設定

  1. バケットを作成する

  2. バケット名を入力して次へ

  3. 「オプションの設定」と「アクセス許可の設定」は特に設定せずに次へ
    ※各自好きな設定をどうぞ

  4. バケットが作成されたことを確認

  5. 作成したバケットをクリックして開く

  6. 必要に応じてディレクトリ作成(「フォルダの作成」クリック)
    ※各自好きな設定をどうぞ

  7. 作成されたディレクトリを確認

  8. 「アクセス権限」タブをクリックして「バケットポリシー」を開く

  9. バケットポリシーを設定
    ※下記AWSドキュメントの「バケットのアクセス許可」に記述されてる設定内容を丸っと貼り付ける
    https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html?icmpid=docs_elbv2_console

  10. バケットポリシー設定の赤字部分を書き換える

  • 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の設定

  1. サイドメニューからロードバランサーを選択

  2. 下部に表示される説明タブを選択

  3. 属性の編集をクリック

  4. アクセスログのチェックボックスにチェック

  5. チェックすると設定欄が表示される

  6. さきほど作成したS3のバケット名を入力して保存(ディレクトリが存在するなら、ディレクトリも含めたもの)

    ※この時、作成したS3にバケットポリシーを設定していないとエラーになる

  7. 属性に設定値が反映される

⭐︎ELBの設定完了⭐︎

アクセスログの確認

  1. S3にアクセスログが作成されてることを確認
    ※最初はTestFileのみ

  2. 日付ごとに分類されたディレクトリが作られてアクセスログが格納されることを確認

⭐︎きちんとアクセスログが出力されてれば完成です⭐︎

ハマった点としてはバケットポリシーの設定です。
少しAWSと仲良くなれた気がします。

以上です。お疲れ様でした。