Comment envoyer les journaux AWS WAF vers un compartiment Amazon S3 via un compte de journalisation centralisé ?

Lecture de 3 minute(s)
0

Je souhaite envoyer les journaux AWS WAF vers un compartiment Amazon Simple Storage Service (Amazon S3) qui se trouve dans un autre compte ou une autre région AWS.

Résolution

Pour envoyer les journaux AWS WAF vers un compartiment Amazon S3 qui se trouve dans un compte de journalisation centralisé, suivez les étapes décrites dans les sections suivantes.

Créez un compartiment S3 dans le compte de journalisation centralisé de la région que vous avez sélectionnée

1.    Créez un compartiment S3 dans le compte de journalisation centralisé pour la région AWS que vous avez sélectionnée.

2.    Entrez un nom de compartiment commençant par le préfixe aws-waf-logs-. Par exemple, attribuez à votre compartiment un nom similaire à aws-waf-logs-example-bucket.

Créez et ajoutez une politique de compartiment au compartiment S3

Ajoutez la politique de compartiment S3 suivante à votre compartiment S3 :

Important :

  • Remplacez les ID de compte dans AWS:SourceAccount par la liste des ID de compte source depuis lesquels vous souhaitez envoyer des journaux vers ce compartiment.
  • Remplacez les ARN dans AWS:SourceArn par la liste des ARN des ressources sources dont vous souhaitez publier les journaux dans ce compartiment. Utilisez le format arn:aws:logs:*:source-account-id:*.
  • Remplacez le nom du compartiment S3 aws-waf-logs-example-bucket dans Ressource par le nom de votre compartiment 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:*"
          ]
        }
      }
    }
  ]
}

Configurez vos ACL Web pour envoyer les journaux au compartiment S3 souhaité

Remarque : Si vous recevez des erreurs lors de l'exécution des commandes de l'interface de la ligne de commande AWS (AWS CLI), assurez-vous que vous utilisez la version la plus récente d’AWS CLI.

Vous devez configurer vos ACL Web pour envoyer les journaux AWS WAF au compartiment S3 du compte de journalisation centralisé. Pour configurer une ACL Web, exécutez la commande put-logging-configuration de l'AWS CLI à partir du compte propriétaire de l'ACL Web.

Important :

  • Remplacez la valeur ResourceArn par l'ARN de votre ACL Web.
  • Remplacez la valeur LogDestinationConfigs par l'ARN du compartiment S3 qui se trouve dans votre compte de journalisation centralisé.
  • Remplacez la région par la région AWS dans laquelle se trouve votre ACL Web.
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

Remarque : Pour les ACL Web de la région CloudFront (globale), utilisez us-east-1 comme région dans la commande précédente.

Répétez la commande put-logging-configuration précédente pour chacune de vos ACL Web.


Informations connexes

Autorisations pour publier des journaux sur Amazon S3

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an