이 문서에서는 Google Security Operations 피드를 설정하여 AWS 웹 애플리케이션 방화벽 (WAF) 로그를 수집하는 방법을 설명합니다. 파서는 원시 JSON 형식 로그를 Google SecOps UDM을 준수하는 구조화된 형식으로 변환합니다. IP 주소, URL, 사용자 에이전트, 보안 규칙 세부정보와 같은 필드를 추출하여 일관된 표현과 분석을 위해 해당 UDM 필드에 매핑합니다.
이 제품군 내에서 다양한 로그 유형에 대해 여러 피드를 구성하는 방법에 관한 자세한 내용은 제품별 피드 구성을 참고하세요.
UDM 매핑 테이블
로그 필드
UDM 매핑
논리
action
security_result.action
작업이 ALLOW인 경우 security_result.action을 ALLOW로, security_result.severity를 INFORMATIONAL로 설정합니다. 작업이 BLOCK인 경우 security_result.action을 BLOCK으로 설정합니다. 작업이 CAPTCHA이고 captchaResponse.responseCode가 405인 경우 security_result.action을 BLOCK으로 설정하고 security_result.action_details를 'CAPTCHA {captchaResponse.failureReason}'으로 설정합니다.
captchaResponse.failureReason
security_result.action_details
action 및 captchaResponse.responseCode와 함께 사용하여 security_result.action_details를 결정합니다.
captchaResponse.responseCode
security_result.action_details
action 및 captchaResponse.failureReason과 함께 사용하여 security_result.action_details를 결정합니다.
httpRequest.headers의 각 헤더를 반복합니다. 헤더 이름이 'host' 또는 'Host'인 경우 값은 target.hostname 및 target.asset.hostname에 매핑됩니다. 헤더 이름이 'User-Agent' 또는 'user-agent'인 경우 값은 network.http.user_agent에 매핑되고 network.http.parsed_user_agent로 파싱됩니다. 헤더 이름이 'Referer' 또는 'referer'인 경우 값은 network.http.referral_url에 매핑됩니다. 헤더 이름이 '(?i)time-zone'이면 값은 target.location.country_or_region에 매핑됩니다. 헤더 이름이 'authorization'인 경우 값이 디코딩되고 사용자 이름이 추출되어 target.user.userid에 매핑됩니다. 다른 모든 헤더는 target.resource.attribute.labels에 키-값 쌍으로 추가됩니다.
httpRequest.httpMethod
network.http.method
network.http.method에 직접 매핑됩니다.
httpRequest.requestId
network.session_id
network.session_id에 직접 매핑됩니다.
httpRequest.uri
target.url
target.url에 직접 매핑됩니다.
httpSourceId
target.resource.name
target.resource.name에 직접 매핑됩니다.
httpSourceName
metadata.product_event_type
metadata.product_event_type에 직접 매핑됩니다.
라벨
security_result.rule_labels
라벨의 각 라벨을 반복합니다. 라벨 이름이 비어 있지 않으면 security_result.rule_labels에 키-값 쌍으로 추가됩니다.
nonTerminatingMatchingRules의 각 규칙을 반복합니다. 작업이 ALLOW이고 규칙 작업이 CAPTCHA인 경우 security_result.action_details를 'CAPTCHA SUCCESSFUL'로 설정하고 키 'nonTerminatingCaptchaRuleName'을 사용하여 규칙 ID를 security_result.rule_labels에 추가합니다. 작업이 BLOCK 또는 ALLOW이고 규칙 작업이 COUNT인 경우 security_result.action_details를 'COUNT RULE'로 설정하고 키 'nonTerminatingCountRuleName'을 사용하여 규칙 ID를 security_result.rule_labels에 추가합니다. 작업이 BLOCK 또는 ALLOW이고 규칙 작업이 CHALLENGE인 경우 security_result.action_details를 'COUNT RULE'로 설정하고 키가 'nonTerminatingChallengeRuleName'인 security_result.rule_labels에 규칙 ID를 추가합니다.
terminatingRuleType이 'RATE_BASED'인 경우 rateBasedRuleList의 각 규칙을 반복합니다. terminatingRuleId가 규칙 이름과 일치하면 규칙 ID, 규칙 이름, 설명이 각각 security_result.rule_id, security_result.rule_name, security_result.description에 매핑됩니다.
ruleGroupList의 각 규칙 그룹을 반복합니다. 규칙 그룹 ID가 intermediary.labels에 키-값 쌍으로 추가됩니다. terminatingRuleType이 'MANAGED_RULE_GROUP'이고 terminatingRuleId가 규칙 그룹 ID와 일치하면 규칙 ID, 규칙 이름, 설명이 각각 security_result.rule_id, security_result.rule_name, security_result.description에 매핑됩니다. terminatingRuleType이 'GROUP'인 경우 종료 규칙 ID가 추출되어 security_result.rule_name 및 security_result.description에 매핑됩니다. 종료 규칙 그룹 ID가 키 'terminatingRuleGroupName'과 함께 security_result.rule_labels에 추가됩니다. terminatingRuleType이 'REGULAR'인 경우 종료 규칙 작업이 추출되어 security_result.detectionfields에 키 'terminatingRuleAction{index}'와 함께 추가됩니다.
terminatingRuleType이 'RATE_BASED', 'MANAGED_RULE_GROUP' 또는 'REGULAR'인 경우 terminatingRuleId는 security_result.rule_id, security_result.rule_name에 매핑되고 security_result.description을 구성하는 데 사용됩니다.
terminatingRuleMatchDetails의 각 일치를 반복합니다. security_result.description을 'Terminating Rule'로 설정합니다. 조건 유형이 비어 있지 않으면 security_result.category_details에 추가됩니다. 위치가 비어 있지 않으면 키 'location'과 함께 security_result.detection_fields에 추가됩니다. 일치하는 각 데이터 요소는 'matchedData' 키와 함께 security_result.detection_fields에 추가됩니다.
terminatingRuleType
security_result.rule_type
security_result.rule_type에 직접 매핑됩니다.
타임스탬프
metadata.event_timestamp
타임스탬프로 변환되어 metadata.event_timestamp에 매핑됩니다.
webaclId
intermediary.resource.name
intermediary.resource.name에 직접 매핑됩니다.
metadata.vendor_name
'AMAZON'으로 설정합니다.
metadata.product_name
'AWS 웹 애플리케이션 방화벽'으로 설정합니다.
metadata.log_type
'AWS_WAF'로 설정됩니다.
network.application_protocol
'HTTP'로 설정됩니다.
metadata.event_type
httpRequest.headers에 'host' 또는 'Host' 헤더가 포함된 경우 'NETWORK_HTTP'로 설정됩니다. 그 외의 경우에는 'STATUS_UPDATE'로 설정합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eThis document provides instructions on how to collect AWS Web Application Firewall (WAF) logs into Google Security Operations by setting up a feed, including prerequisites, bucket configurations, and access key creation.\u003c/p\u003e\n"],["\u003cp\u003eAWS WAF logging is configured by selecting an Amazon S3 bucket as the destination, where specific permissions must be granted to allow log writes from AWS WAF.\u003c/p\u003e\n"],["\u003cp\u003eThe document outlines how to set up a new feed in Google Security Operations for AWS WAF logs by defining the source type as Amazon S3, specifying S3 bucket details, and entering authentication keys.\u003c/p\u003e\n"],["\u003cp\u003eThe parser transforms raw AWS WAF JSON logs into the Google Security Operations UDM format, mapping fields like IP addresses, user agents, and rule details for streamlined security analysis.\u003c/p\u003e\n"],["\u003cp\u003eIt also provides a detailed UDM mapping table, which shows how each field in the AWS WAF logs is structured and categorized into the Google SecOps UDM to provide context to the event.\u003c/p\u003e\n"]]],[],null,["# Collect AWS WAF logs\n====================\n\nSupported in: \nGoogle secops [SIEM](/chronicle/docs/secops/google-secops-siem-toc)\n| **Note:** This feature is covered by [Pre-GA Offerings Terms](https://chronicle.security/legal/service-terms/) of the Google Security Operations Service Specific Terms. Pre-GA features might have limited support, and changes to pre-GA features might not be compatible with other pre-GA versions. For more information, see the [Google SecOps Technical Support Service guidelines](https://chronicle.security/legal/technical-support-services-guidelines/) and the [Google SecOps Service Specific Terms](https://chronicle.security/legal/service-terms/).\n\nThis document explains how to collect the AWS Web Application Firewall (WAF) logs by setting up a Google Security Operations feed. The parser transforms raw JSON formatted logs into a structured format conforming to the Google SecOps UDM. It extracts fields like IP addresses, URLs, user agents, and security rule details, mapping them to corresponding UDM fields for consistent representation and analysis.\n\nBefore you begin\n----------------\n\n\\*Ensure you have the following prerequisites:\n\n- Google SecOps instance\n- Privileged access to AWS\n\nConfigure Amazon S3 bucket\n--------------------------\n\n1. Create **Amazon S3 bucket** following this user guide: [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html)\n2. Save bucket **Name** and **Region** for later use.\n3. Create a user following this user guide: [Creating an IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console).\n4. Select the created **User**.\n5. Select the **Security credentials** tab.\n6. Click **Create Access Key** in the **Access Keys** section.\n7. Select **Third-party service** as the **Use case**.\n8. Click **Next**.\n9. Optional: add description tag.\n10. Click **Create access key**.\n11. Click **Download CSV file** to save the **Access Key** and **Secret Access Key** for later use.\n12. Click **Done**.\n13. Select the **Permissions** tab.\n14. Click **Add permissions** in the **Permissions policies** section.\n15. Select **Add permissions**.\n16. Select **Attach policies directly**.\n17. Search for and select the **AmazonS3FullAccess** policy.\n18. Click **Next**.\n19. Click **Add permissions**.\n\nCreate a WAF web ACL (Access Control List)\n------------------------------------------\n\nIf you haven't set up AWS WAF yet, you'll need to create a WAF web ACL (Access Control List). For existing setups, you can skip to the next procedure.\n\n1. In the AWS Console, search for and select **AWS WAF \\& Shield**.\n2. Click **Create web ACL**.\n3. Provide the following settings:\n - **Name** : Give the ACL a name (for example, `my-waf-web-acl`).\n - **Region**: Choose the region where you want to apply the WAF.\n - **CloudWatch Metrics**: Enable metric collection to track the activity and rules triggered.\n4. Once created, select the **web ACL** for which you want to enable logging.\n\nHow to configure AWS WAF Logging\n--------------------------------\n\n1. In the **AWS WAF Console** , go to the **Logging** tab of your web ACL.\n2. Click **Enable Logging**.\n3. Select **Amazon S3** as the destination for your logs.\n4. Choose the **S3 bucket** created earlier to store the logs.\n5. Optional: configure a log prefix for organizing the logs (for example, `waf-logs/`).\n6. Click **Save**.\n\nVerify Permissions for the S3 Bucket\n------------------------------------\n\nEnsure that the S3 bucket has the proper permissions for AWS WAF to write logs.\n\n1. Go to the **S3 Console**.\n2. Select the bucket where the logs will be stored.\n3. In the **Permissions** tab, add the following Bucket Policy to allow AWS WAF to write logs:\n\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"wafv2.amazonaws.com\"\n },\n \"Action\": \"s3:PutObject\",\n \"Resource\": \"arn:aws:s3:::your-log-bucket-name/*\"\n }\n ]\n }\n\n| **Note:** Replace `your-log-bucket-name` with the actual name of your S3 bucket.\n\n1. Click **Save**.\n\nSet up feeds\n------------\n\nThere are two different entry points to set up feeds in the\nGoogle SecOps platform:\n\n- **SIEM Settings \\\u003e Feeds \\\u003e Add New**\n- **Content Hub \\\u003e Content Packs \\\u003e Get Started**\n\nHow to set up the AWS WAF feed\n------------------------------\n\n1. Click the **Amazon Cloud Platform** pack.\n2. Locate the **AWS WAF** log type.\n3. Specify the values in the following fields.\n\n - **Source Type**: Amazon SQS V2\n - **Queue Name**: The SQS queue name to read from\n - **S3 URI** : The bucket URI.\n - `s3://your-log-bucket-name/`\n - Replace `your-log-bucket-name` with the actual name of your S3 bucket.\n - **Source deletion options**: Select the deletion option according to your ingestion preferences.\n\n | **Note:** If you select the `Delete transferred files` or `Delete transferred files and empty directories` option, make sure that you granted appropriate permissions to the service account.\n - **Maximum File Age**: Include files modified in the last number of days. Default is 180 days.\n\n - **SQS Queue Access Key ID**: An account access key that is a 20-character alphanumeric string.\n\n - **SQS Queue Secret Access Key**: An account access key that is a 40-character alphanumeric string.\n\n **Advanced options**\n - **Feed Name**: A prepopulated value that identifies the feed.\n - **Asset Namespace**: Namespace associated with the feed.\n - **Ingestion Labels**: Labels applied to all events from this feed.\n4. Click **Create feed**.\n\n| **Note:** The Content Hub is not available on the SIEM standalone platform. To upgrade, contact your Google SecOps representative.\n\nFor more information about configuring multiple feeds for different log types within this product family, see [Configure feeds by product](/chronicle/docs/ingestion/ingestion-entities/configure-multiple-feeds).\n\nUDM Mapping Table\n-----------------\n\n**Need more help?** [Get answers from Community members and Google SecOps professionals.](https://security.googlecloudcommunity.com/google-security-operations-2)"]]