如何將 AWS WAF 日誌傳送至不同帳戶或 AWS 區域的 Amazon Simple Storage Service (Amazon S3) 儲存貯體?
簡短描述
若要將 AWS WAF 日誌傳送至集中式日誌帳戶的 Amazon S3 儲存貯體,請執行以下操作:
- 在集中式日誌帳戶建立 S3 儲存貯體,該帳戶在所選 AWS 區域的儲存貯體名稱開頭為 aws-waf-logs-。
- 建立並新增儲存貯體原則至 S3 儲存貯體,以便從來源帳戶傳遞日誌。
- 使用 AWS CLI 命令 put-logging-configuration 來設定 Web 存取控制清單 (Web ACL),將日誌傳送至集中式日誌帳戶的 S3 儲存貯體。
解決方案
在所選區域的集中式日誌帳戶建立 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:*。
- 將 Resource 中的 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:*"
]
}
}
}
]
}
將您的 Web ACL 設定為將日誌傳送到所需的 S3 儲存貯體
您必須設定 Web ACL,才能將 AWS WAF 日誌傳送到集中式記錄帳戶的 S3 儲存貯體。若要設定您的 Web ACL,請從擁有 Web ACL 的帳戶執行下列 AWS CLI 命令:
重要事項:
- 將 ResourceArn 值取代為您的網路 ACL ARN。
- 將 LogDestinationConfigs 值取代為集中式記錄帳戶中 S3 儲存貯體的 ARN。
- 將 region 取代為 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 (全域) 區域中的網路 ACL,請在上一個命令使用 us-east-1 做為 AWS 區域。
針對每個 Web ACL 重複上述的 put-logging-configuration 指令。
相關資訊
Amazon 簡單儲存服務記錄目的地