選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

將 Web ACL 流量日誌傳送至 Amazon Simple Storage Service 儲存貯體

焦點模式
將 Web ACL 流量日誌傳送至 Amazon Simple Storage Service 儲存貯體 - AWS WAFAWS Firewall Manager、 和 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本主題提供將 Web ACL 流量日誌傳送至 Amazon S3 儲存貯體的資訊。

注意

除了使用 的費用之外,您還需支付記錄費用 AWS WAF。如需相關資訊,請參閱 記錄 Web ACL 流量資訊的定價

若要將 Web ACL 流量日誌傳送至 Amazon S3,請從您用來管理 Web ACL 的相同帳戶設定 Amazon S3 儲存貯體,並以 為儲存貯體命名aws-waf-logs-。當您啟用登入時 AWS WAF,請提供儲存貯體名稱。如需有關建立記錄儲存貯體的資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的建立儲存貯體

您可以使用 Amazon Athena 互動式查詢服務來存取和分析 Amazon S3 日誌。 Amazon Athena Athena 可讓您使用標準 SQL 直接在 Amazon S3 中分析資料。透過 中的幾個動作 AWS Management Console,您可以將 Athena 指向存放在 Amazon S3 中的資料,並快速開始使用標準 SQL 來執行臨機操作查詢並取得結果。如需詳細資訊,請參閱《Amazon Athena 使用者指南》中的查詢 AWS WAF 日誌。如需其他範例 Amazon Athena 查詢,請參閱 GitHub 網站上的 aws-samples/waf-log-sample-athena-queries

注意

AWS WAF 支援對 Amazon S3 金鑰類型 (SSE-S3) 和 for AWS Key Management Service (SSE-KMS) 使用 Amazon S3 儲存貯體進行加密 AWS KMS keys。 AWS WAF 不支援對 管理的 AWS Key Management Service 金鑰進行加密 AWS。

Web ACLs會每隔 5 分鐘將其日誌檔案發佈至 Amazon S3 儲存貯體。每個日誌檔案都包含過去 5 分鐘內記錄的流量日誌記錄。

日誌檔的大小上限為 75 MB。如果日誌檔案在 5 分鐘內達到檔案大小限制,則日誌會停止新增記錄,並將其發佈至 Amazon S3 儲存貯體,然後建立新的日誌檔案。

日誌檔案已壓縮。如果您使用 Amazon S3 主控台開啟檔案,Amazon S3 會解壓縮日誌記錄並顯示它們。如果您下載日誌檔案,則必須解壓縮它們才能檢視記錄。

單一日誌檔案包含具有多個記錄的交錯項目。若要查看 Web ACL 的所有日誌檔案,請尋找 Web ACL 名稱、區域和您的帳戶 ID 彙總的項目。

命名要求和語法

用於 AWS WAF 記錄的儲存貯體名稱必須以 開頭aws-waf-logs-,並以您想要的任何尾碼結尾。例如:aws-waf-logs-LOGGING-BUCKET-SUFFIX

儲存貯體位置

儲存貯體位置使用以下語法:

s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/
儲存貯體 ARN

儲存貯體 Amazon Resource Name (ARN) 的格式如下:

arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX
具有字首的儲存貯體位置

如果您在物件金鑰名稱中使用字首來組織存放在儲存貯體中的資料,您可以在記錄儲存貯體名稱中提供字首。

注意

此選項無法透過 主控台使用。使用 AWS WAF APIs、CLI 或 AWS CloudFormation。

如需在 Amazon S3 中使用字首的資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用字首組織物件

具有字首的儲存貯體位置使用以下語法:

s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/KEY-NAME-PREFIX/
儲存貯體資料夾和檔案名稱

在您的儲存貯體中,並遵循您提供的任何字首,您的 AWS WAF 日誌會以由您的帳戶 ID、區域、Web ACL 名稱和日期和時間決定的資料夾結構撰寫。

AWSLogs/account-id/WAFLogs/Region/web-acl-name/YYYY/MM/dd/HH/mm

在資料夾中,日誌檔案名稱遵循類似的格式:

account-id_waflogs_Region_web-acl-name_timestamp_hash.log.gz

資料夾結構和日誌檔案名稱中使用的時間規格,會遵守時間戳記格式規格 YYYYMMddTHHmmZ

以下顯示名為 之儲存貯體的 Amazon S3 儲存貯體中的範例日誌檔案aws-waf-logs-LOGGING-BUCKET-SUFFIX。 AWS 帳戶 為 11111111111。Web ACL 是 TEST-WEBACL,而區域是 us-east-1

s3://aws-waf-logs-LOGGING-BUCKET-SUFFIX/AWSLogs/11111111111/WAFLogs/us-east-1/TEST-WEBACL/2021/10/28/19/50/11111111111_waflogs_us-east-1_TEST-WEBACL_20211028T1950Z_e0ca43b5.log.gz
注意

用於 AWS WAF 記錄的儲存貯體名稱必須以 開頭aws-waf-logs-,並以任何您想要的尾碼結尾。

將日誌發佈至 Amazon S3 所需的許可

為 Amazon S3 儲存貯體設定 Web ACL 流量記錄需要下列許可設定。當您使用其中一個 AWS WAF 完整存取受管政策 AWSWAFConsoleFullAccess或 時,會為您設定這些許可AWSWAFFullAccess。如果您想要進一步管理對日誌 AWS WAF 和資源的存取,您可以自行設定這些許可。如需有關管理許可的資訊,請參閱《IAM 使用者指南》中的存取資源的 AWS 管理。如需 AWS WAF 受管政策的相關資訊,請參閱 AWS 的 受管政策 AWS WAF

下列許可可讓您變更 Web ACL 記錄組態,以及設定將日誌交付至 Amazon S3 儲存貯體。這些許可必須連接到您用來管理的使用者 AWS WAF。

注意

當您設定下列許可時,您可能會在 AWS CloudTrail 日誌中看到錯誤,指出存取遭拒,但許可是正確的 AWS WAF 記錄。

{ "Version":"2012-10-17", "Statement":[ { "Action":[ "wafv2:PutLoggingConfiguration", "wafv2:DeleteLoggingConfiguration" ], "Resource":[ "*" ], "Effect":"Allow", "Sid":"LoggingConfigurationAPI" }, { "Sid":"WebACLLogDelivery", "Action":[ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*", "Effect":"Allow" }, { "Sid":"WebACLLoggingS3", "Action":[ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": [ "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX" ], "Effect":"Allow" } ] }

當所有 AWS 資源上都允許動作時,政策中會指出動作,其"Resource"設定為 "*"。這表示每個動作支援的所有 AWS 資源都允許這些動作。 例如, 動作僅wafv2:PutLoggingConfiguration支援wafv2記錄組態資源。

根據預設,Amazon S3 儲存貯體及其包含的物件為私有。只有儲存貯體擁有者可存取儲存貯體及存放於其中的物件。不過,儲存貯體擁有者可以透過撰寫存取政策,將存取權授予其他資源和使用者。

如果建立日誌的使用者擁有 儲存貯體,服務會自動將下列政策連接至儲存貯體,以授予日誌將日誌發佈至它的許可:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX/AWSLogs/account-id/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["account-id"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region:account-id:*"] } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX", "Condition": { "StringEquals": { "aws:SourceAccount": ["account-id"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region:account-id:*"] } } } ] }
注意

用於 AWS WAF 記錄的儲存貯體名稱必須以 開頭aws-waf-logs-,並以任何您想要的尾碼結尾。

如果建立日誌的使用者沒有儲存貯體,或沒有儲存貯體的 GetBucketPolicyPutBucketPolicy許可,則日誌建立會失敗。在此情況下,儲存貯體擁有者必須手動將上述政策新增至儲存貯體,並指定日誌建立者的 AWS 帳戶 ID。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的我該如何新增 S3 儲存貯體政策?。如果儲存貯體收到來自多個帳戶的日誌,請將Resource元素項目新增至每個帳戶的AWSLogDeliveryWrite政策陳述式。

例如,下列儲存貯體政策允許 AWS 帳戶 111122223333將日誌發佈至名為 的儲存貯體aws-waf-logs-LOGGING-BUCKET-SUFFIX

{ "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-LOGGING-BUCKET-SUFFIX/AWSLogs/111122223333/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["111122223333"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"] } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-LOGGING-BUCKET-SUFFIX", "Condition": { "StringEquals": { "aws:SourceAccount": ["111122223333"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"] } } } ] }

AWS Key Management Service 搭配 KMS 金鑰使用 的許可

如果您的記錄目的地使用伺服器端加密搭配存放在 AWS Key Management Service (SSE-KMS) 中的金鑰,而且您使用客戶受管金鑰 (KMS 金鑰),您必須授予許可 AWS WAF 才能使用 KMS 金鑰。若要這樣做,請將金鑰政策新增至所選目的地的 KMS 金鑰。這允許 AWS WAF 記錄將日誌檔案寫入目的地。

將下列金鑰政策新增至您的 KMS 金鑰, AWS WAF 以允許 記錄到您的 Amazon S3 儲存貯體。

{ "Sid": "Allow AWS WAF to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": "kms:GenerateDataKey*", "Resource": "*" }

存取 Amazon S3 日誌檔案所需的許可

Amazon S3 使用存取控制清單 ACLs) 來管理對日誌所建立日誌檔案的 AWS WAF 存取。根據預設,儲存貯體擁有者擁有各個日誌檔案的 FULL_CONTROL 許可。日誌交付擁有者與儲存貯體擁有者不同時,就沒有任何許可。日誌交付帳戶擁有 READWRITE 許可。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的存取控制清單 (ACL) 概觀

下一個主題:

Firehose

上一個主題:

CloudWatch Logs
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。