로깅 대상 - AWS WAF, AWS Firewall Manager및 AWS Shield Advanced

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

로깅 대상

이 섹션에서는 AWS WAF 정책 로그를 전송하도록 선택할 수 있는 로깅 대상에 대해 설명합니다. 각 섹션에서는 대상 유형에 대한 로깅을 구성하기 위한 지침과 대상 유형과 관련된 모든 동작에 대한 정보를 제공합니다. 로깅 대상을 구성한 후 Firewall Manager AWS WAF 정책에 해당 사양을 제공하여 로깅을 시작할 수 있습니다.

AWS WAF 정책에 대한 중앙 집중식 로깅을 활성화하여 조직 ACL 내 웹에서 분석한 트래픽에 대한 자세한 정보를 얻을 수 있습니다. 로그의 정보에는 AWS 리소스로부터 요청을 AWS WAF 받은 시간, 요청에 대한 세부 정보, 모든 범위 내 계정에서 각 요청이 일치하는 규칙에 대한 작업이 포함됩니다. Amazon Data Firehose 데이터 스트림 또는 Amazon Simple Storage Service(S3) 버킷으로 로그를 전송할 수 있습니다. AWS WAF 로깅에 대한 자세한 내용은 AWS WAF 개발자 안내서로깅 AWS WAF 웹 ACL 트래픽을 참조하세요.

참고

AWS Firewall Manager 는 AWS WAF Classic이 AWS WAFV2아닌 에 대해 이 옵션을 지원합니다.

Firewall Manager는 로깅 구성을 생성한 후 로그 실패를 확인할 수 없습니다. 로그 전달이 의도한 대로 작동하는지 확인하는 것은 사용자의 책임입니다.

참고

Firewall Manager는 조직 구성원 계정의 기존 로깅 구성을 수정하지 않습니다.

Amazon Data Firehose 데이터 스트림

이 주제에서는 Amazon Data Firehose 데이터 스트림으로 웹 ACL 트래픽 로그를 보내는 방법에 대한 정보를 제공합니다.

Amazon Data Firehose 로깅을 활성화하면 Firewall Manager는 정책의 웹에서 스토리지 대상ACLs을 구성한 Amazon Data Firehose로 로그를 전송합니다. 로깅을 활성화한 후 는 Kinesis Data Firehose의 HTTPS 엔드포인트를 ACL통해 구성된 각 웹 에 대한 로그를 구성된 스토리지 대상으로 AWS WAF 전달합니다. 전송 스트림을 사용하기 전에 테스트하여 조직의 로그를 수용할 만큼 처리량이 충분한지 확인하십시오. Amazon Kinesis Data Firehose를 생성하고 저장된 로그를 검토하는 방법에 대한 자세한 내용은 Amazon Data Firehose란 무엇입니까?를 참조하세요.

Kinesis로 로깅을 활성화하려면 다음 권한이 있어야 합니다.

  • iam:CreateServiceLinkedRole

  • firehose:ListDeliveryStreams

  • wafv2:PutLoggingConfiguration

AWS WAF 정책에 Amazon Data Firehose 로깅 대상을 구성하면 Firewall Manager는 다음과 같이 Firewall Manager 관리자 계정에서 정책에 ACL 대한 웹을 생성합니다.

  • Firewall Manager는 계정이 정책의 범위에 있는지 여부에 관계없이 ACL Firewall Manager 관리자 계정에 웹을 생성합니다.

  • 웹에는 로그 이름 로 로깅ACL이 활성화되어 FMManagedWebACLV2-Loggingpolicy name-timestamp있습니다. 여기서 타임스탬프는 웹에 대해 로그가 활성화된 UTC 시간을 밀리초 ACL단위로 나타냅니다. 예: FMManagedWebACLV2-LoggingMyWAFPolicyName-1621880565180. 웹에는 규칙 그룹과 연결된 리소스ACL가 없습니다.

  • AWS WAF 요금 지침에 ACL 따라 웹 요금이 부과됩니다. 자세한 내용은 AWS WAF 요금을 참조하세요.

  • 정책을 삭제ACL하면 Firewall Manager가 웹을 삭제합니다.

서비스 연결 역할 및 iam:CreateServiceLinkedRole 권한에 대한 자세한 내용은 서비스 연결 역할 사용 AWS WAF 섹션을 참조하세요.

전송 스트림 생성에 대한 자세한 내용은 Amazon Data Firehose 전송 스트림 생성을 참조하세요.

Amazon Simple Storage Service 버킷

이 주제에서는 Amazon S3 버킷으로 웹 ACL 트래픽 로그를 보내는 방법에 대한 정보를 제공합니다.

로깅 대상으로 선택한 버킷은 Firewall Manager 관리자 계정이 소유해야 합니다. 로깅을 위한 Amazon S3 버킷 생성 요구 사항 및 버킷 이름 지정 요구 사항에 대한 자세한 내용은 AWS WAF 개발자 안내서Amazon Simple Storage Service를 참조하세요.

최종 일관성

Amazon S3 로깅 대상으로 구성된 AWS WAF 정책을 변경하면 Firewall Manager가 버킷 정책을 업데이트하여 로깅에 필요한 권한을 추가합니다. 이 경우 Firewall Manager는 Amazon Simple Storage Service가 last-writer-wins 따르는 의미 체계 및 데이터 일관성 모델을 따릅니다. Firewall Manager 콘솔 또는 PutPolicy 를 통해 Amazon S3 대상에 여러 정책 업데이트를 동시에 수행하는 경우 API일부 권한이 저장되지 않을 수 있습니다. Amazon S3 데이터 일관성 모델에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서Amazon S3 데이터 정합성 모델을 참조하세요.

Amazon S3 버킷에 로그를 게시하는 데 필요한 권한

AWS WAF 정책에서 Amazon S3 버킷에 대한 웹 ACL 트래픽 로깅을 구성하려면 다음 권한 설정이 필요합니다. Firewall Manager는 Amazon S3를 로깅 대상으로 구성하여 서비스에 로그를 버킷에 게시할 권한을 부여하는 경우 Amazon S3 버킷에 이러한 권한을 자동으로 연결합니다. 로깅 및 Firewall Manager 리소스에 대한 보다 세분화된 액세스를 관리하려는 경우 이러한 권한을 직접 설정할 수 있습니다. 권한 관리에 대한 자세한 내용은 IAM 사용 설명서리소스에 대한 AWS 액세스 관리를 참조하세요. AWS WAF 관리형 정책에 대한 자세한 내용은 섹션을 참조하세요AWS 에 대한 관리형 정책 AWS WAF.

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryForFirewallManager", "Statement": [ { "Sid": "AWSLogDeliveryAclCheckFMS", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-amzn-s3-demo-bucket" }, { "Sid": "AWSLogDeliveryWriteFMS", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket/policy-id/AWSLogs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }

서비스 간에 혼동되는 대리인 문제를 방지하려면 버킷 정책에서 aws:SourceArnaws:SourceAccount 글로벌 조건 컨텍스트 키를 추가합니다. 이러한 키를 추가하려면 로깅 대상을 구성할 때 Firewall Manager가 생성하는 정책을 수정하거나, 세부적인 제어를 원하는 경우 자체 정책을 만들 수 있습니다. 로깅 대상 정책에 이러한 조건을 추가하는 경우 Firewall Manager는 혼동되는 보조 보호를 검증하거나 모니터링하지 않습니다. 혼동된 대리자 문제에 대한 일반 정보는 혼동된 대리자 문제를 참조하세요.
 IAM 사용 설명서의 .

sourceAccount 추가 sourceArn 속성을 추가하면 버킷 정책 크기가 커집니다. sourceAccount 추가 sourceArn 속성의 긴 목록을 추가하는 경우 Amazon S3 버킷 정책 크기 할당량을 초과하지 않도록 주의하십시오.

다음 예는 버킷 정책에서 aws:SourceArnaws:SourceAccount 글로벌 조건 컨텍스트 키를 사용하여 혼동된 대리자 문제를 방지하는 방법을 보여줍니다. Replace member-account-id 조직 내 멤버IDs의 계정을 사용합니다.

{ "Version":"2012-10-17", "Id":"AWSLogDeliveryForFirewallManager", "Statement":[ { "Sid":"AWSLogDeliveryAclCheckFMS", "Effect":"Allow", "Principal":{ "Service":"delivery.logs.amazonaws.com" }, "Action":"s3:GetBucketAcl", "Resource":"arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket", "Condition":{ "StringEquals":{ "aws:SourceAccount":[ "member-account-id", "member-account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:*:member-account-id:*", "arn:aws:logs:*:member-account-id:*" ] } } }, { "Sid":"AWSLogDeliveryWriteFMS", "Effect":"Allow", "Principal":{ "Service":"delivery.logs.amazonaws.com" }, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket/policy-id/AWSLogs/*", "Condition":{ "StringEquals":{ "s3:x-amz-acl":"bucket-owner-full-control", "aws:SourceAccount":[ "member-account-id", "member-account-id" ] }, "ArnLike":{ "aws:SourceArn":[ "arn:aws:logs:*:member-account-id-1:*", "arn:aws:logs:*:member-account-id-2:*" ] } } } ] }

Amazon S3 버킷의 서버 측 암호화

Amazon S3 서버 측 암호화를 활성화하거나 S3 버킷에서 AWS Key Management Service 고객 관리형 키를 사용할 수 있습니다. AWS WAF Amazon S3 버킷에서 로그에 기본 Amazon S3 암호화를 사용하도록 선택한 경우 특별한 조치를 취할 필요가 없습니다. 그러나 고객이 제공한 암호화 키를 사용하여 저장 중인 Amazon S3 데이터를 암호화하도록 선택한 경우 AWS Key Management Service 키 정책에 다음 권한 설명을 추가해야 합니다.

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Amazon S3에서 고객 제공 암호화 키를 사용하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서고객 제공 키(SSE-C)로 서버 측 암호화 사용을 참조하세요.