Wie sende ich AWS WAF-Protokolle an einen Amazon S3-Bucket in einem zentralisierten Protokollierungskonto?
Wie sende ich AWS WAF-Protokolle an einen Amazon Simple Storage Service (Amazon S3)-Bucket in einem anderen Konto oder einer anderen AWS-Region?
Kurzbeschreibung
Gehen Sie wie folgt vor, um AWS WAF-Protokolle an einen Amazon S3-Bucket in einem zentralisierten Protokollierungskonto zu senden:
- Erstellen Sie im zentralisierten Protokollierungskonto einen S3-Bucket in der von Ihnen ausgewählten AWS-Region, der einen Bucket-Namen hat, der mit aws-waf-logs- beginnt.
- Erstellen Sie eine Bucket-Richtlinie, und fügen Sie sie dem S3-Bucket hinzu, die die Bereitstellung von Protokollen von den Quellkonten ermöglicht.
- Verwenden Sie den AWS-CLI-Befehl put-logging-configuration, um Ihre Web Access Control Lists (Web-ACLs) so zu konfigurieren, dass die Protokolle an den S3-Bucket im zentralen Protokollierungskonto gesendet werden.
Lösung
Erstellen Sie einen S3-Bucket im zentralisierten Protokollierungskonto in der von Ihnen ausgewählten Region
- Erstellen Sie einen S3-Bucket im zentralen Protokollierungskonto für die von Ihnen gewählte AWS-Region.
- Geben Sie einen Bucket-Namen ein, der mit dem Präfix aws-waf-logs- beginnt.
Zum Beispiel: aws-waf-logs-example-bucket
Erstellen und Hinzufügen einer Bucket-Richtlinie zum S3-Bucket
Fügen Sie Ihrem S3-Bucket die folgende S3-Bucket-Richtlinie hinzu:
Wichtig:
- Ersetzen Sie die Konto-IDs in aws:SourceAccount durch die Liste der Konto-IDs Ihrer Quellkonten, die Protokolle an diesen Bucket senden.
- Ersetzen Sie die ARNs in aws:SourceArn durch die Liste der ARNs der Quellressourcen, die Protokolle in diesem Bucket veröffentlichen werden, im Format arn:aws:logs:*:source-account-id:*.
- Ersetzen Sie den S3-Bucket-Namen aws-waf-logs-example-bucket in Ressource durch den Namen Ihres S3-Buckets.
{ "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:*" ] } } } ] }
Konfigurieren Sie Ihre Web-ACLs so, dass sie die Protokolle an den gewünschten S3-Bucket senden
Sie müssen Ihre Web-ACL für das Senden der AWS WAF-Protokolle an den S3-Bucket des zentralen Protokollierungskontos konfigurieren. Um Ihre Web-ACL zu konfigurieren, führen Sie den folgenden AWS-CLI-Befehl von dem Konto aus, dem die Web-ACL gehört:
Wichtig:
- Ersetzen Sie den ResourceArn-Wert durch den ARN Ihrer Web-ACLs.
- Ersetzen Sie den Wert LogDestinationConfigs durch den ARN der S3-Buckets in Ihrem zentralisierten Protokollierungskonto.
- Ersetzen Sie Region durch die AWS-Region, in der sich Ihre Web-ACL befindet.
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
Hinweis: Verwenden Sie für Web-ACLs in der CloudFront-Region (Global) im vorherigen Befehl us-east-1 als AWS-Region.
Wiederholen Sie den vorherigen Befehl put-logging-configuration für jede Ihrer Web-ACLs.
Relevante Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr