一元化されたログアカウントの Amazon S3 バケットに AWS WAF ログを送信する方法を教えてください。

所要時間2分
0

別のアカウントまたは AWS リージョンにある Amazon Simple Storage Service (Amazon S3) バケットに AWS WAF ログを送信したいです。

解決策

一元化されたログ記録アカウントにある Amazon S3 バケットに AWS WAF ログを送信するには、以下のセクションのステップを完了してください。

選択したリージョンの一元化されたログアカウントに S3 バケットの作成

1.    選択した AWS リージョン の一元化されたログアカウントに S3 バケットを作成します

2.    aws-waf-logs- というプレフィックスで始まるバケット名を入力します。例えば、バケットには aws-waf-logs-example-bucket のような名前を付けてください。

バケットポリシーを作成して S3 バケットに追加する

次の S3 バケットポリシーを S3 バケットに追加します。

重要:

  • aws:SourceAccount のアカウント ID を、このバケットにログを送信するソースアカウント ID のリストに置き換えます。
  • aws:SourceARN の ARN を、このバケットにログを公開するソースリソースの ARN のリストに置き換えます。arn:aws:logs:*:source-account-id:* の形式を使用します。
  • リソースの S3 バケット名 aws-waf-logs-example-bucket を S3 バケットの名前に置き換えてください。
{
  "Version": "2012-10-17",
  "Id": "AWSLogDeliveryWrite20150319",
  "Statement": [
    {
      "Sid": "AWSLogDeliveryWrite",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::aws-waf-logs-example-bucket/AWSLogs/*",
      "Condition": {
        "StringEquals": {
          "s3:x-amz-acl": "bucket-owner-full-control",
          "aws:SourceAccount": [
            "111111111111",
            "222222222222"
          ]
        },
        "ArnLike": {
          "aws:SourceArn": [
            "arn:aws:logs:*:111111111111:*",
            "arn:aws:logs:*:222222222222:*"
          ]
        }
      }
    },
    {
      "Sid": "AWSLogDeliveryAclCheck",
      "Effect": "Allow",
      "Principal": {
        "Service": "delivery.logs.amazonaws.com"
      },
      "Action": "s3:GetBucketAcl",
      "Resource": "arn:aws:s3:::aws-waf-logs-example-bucket",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": [
            "111111111111",
            "222222222222"
          ]
        },
        "ArnLike": {
          "aws:SourceArn": [
            "arn:aws:logs:*:111111111111:*",
            "arn:aws:logs:*:222222222222:*"
          ]
        }
      }
    }
  ]
}

目的の S3 バケットにログを送信するように Web ACL を設定する

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください

AWS WAF ログを一元化されたログアカウントの S3 バケットに送信するように Web ACL を設定する必要があります。Web ACL を設定するには、Web ACL を所有するアカウントから put-logging-configuration AWS CLI コマンドを実行します。

重要:

  • ResourceArn 値をウェブ ACLs ARN に置き換えてください。
  • LogDestinationConfig の値を、一元化されたログアカウントにある S3 バケットの ARN に置き換えてください。
  • リージョンを Web ACL が配置されている AWS リージョンに置き換えてください。
aws wafv2 put-logging-configuration --logging-configuration ResourceArn=arn:aws:wafv2:eu-west-1: 111111111111:regional/webacl/testing/b4a768c9-4895-4f35-9354-3049ab8acc29,LogDestinationConfigs=arn:aws:s3:::aws-waf-logs-example-bucket --region eu-west-1

**注:**CloudFront(Global) リージョンの Web ACL では、前のコマンドのリージョンとして us-east-1 を使用してください。

各 Web ACL について、前述の put-logging-configuration コマンドを繰り返します。


関連情報

Amazon S3 にログを公開するためのアクセス権限

AWS公式
AWS公式更新しました 1年前
コメントはありません