AWS WAF 로그를 다른 계정 또는 AWS 리전에 있는 Amazon Simple Storage Service(S3) 버킷으로 보내고 싶습니다.
해결 방법
중앙 집중식 로깅 계정에 있는 Amazon S3 버킷으로 AWS WAF 로그를 보내려면 다음 섹션의 단계를 완료하세요.
선택한 리전의 중앙 집중식 로깅 계정에 S3 버킷을 생성합니다.
-
선택한 AWS 리전의 중앙 집중식 로깅 계정에 S3 버킷을 생성합니다.
-
접두사 **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 버킷으로 보내도록 웹 ACL을 구성합니다.
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우, 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
AWS WAF 로그를 중앙 집중식 로깅 계정의 S3 버킷으로 보내도록 웹 ACL을 구성해야 합니다.
웹 ACL을 구성하려면, put-logging-configuration AWS CLI 명령을 실행합니다.
중요:
-
ResourceArn 값을 웹 ACL의 ARN으로 바꿉니다.
-
LogDestinationConfigs 값을 중앙 집중식 로깅 계정에 있는 S3 버킷의 ARN으로 바꿉니다.
-
리전을 웹 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(글로벌) 리전에 있는 웹 ACL의 경우, 앞의 명령에서 us-east-1을 리전으로 사용합니다.
각 웹 ACL에 대해 앞의 put-logging-configuration 명령을 반복합니다.
관련 정보
Amazon S3에 로그를 게시할 수 있는 권한