AWS WAF 정책 - AWS WAF, AWS Firewall Manager, 및 AWS Shield Advanced

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

AWS WAF 정책

Firewall Manager AWS WAF 정책에서는 리소스 전체에서 사용할 AWS WAF 규칙 그룹을 지정합니다. 정책을 적용하면 Firewall Manager는 ACLs 정책에서 웹 관리를 구성하는 방법에 따라 정책 범위 내에 웹 ACLs 계정을 생성합니다. 정책으로 ACLs 생성된 웹에서 개별 계정 관리자는 Firewall Manager를 통해 정의한 규칙 그룹 외에도 규칙 및 규칙 그룹을 추가할 수 있습니다.

Firewall Manager가 웹을 관리하는 방법 ACLs

Firewall Manager는 정책에서 연결되지 않은 웹 관리 ACLs 설정 또는 SecurityServicePolicyData데이터 유형의 optimizeUnassociatedWebACL 설정을 구성한 방식에 ACLs 따라 웹을 생성합니다. API

연결되지 않은 웹 ACLs 관리를 활성화하면 Firewall Manager는 하나 이상의 ACLs 리소스에서 ACLs 웹을 사용할 경우에만 정책 범위 내의 계정에 웹을 만듭니다. 계정이 정책 범위에 포함되는 경우, 하나 이상의 리소스가 ACL 웹을 사용할 경우 Firewall Manager는 계정에 자동으로 웹을 만듭니다ACL. 연결되지 않은 웹 ACLs 관리를 활성화하면 Firewall Manager는 계정에서 연결되지 않은 ACLs 웹을 한 번 정리합니다. 정리 중에 Firewall Manager는 웹을 만든 후 수정한 모든 ACLs 웹을 건너뛰습니다 (예: ACL 웹에 규칙 그룹을 추가하거나 설정을 수정한 경우). 정리 프로세스에는 몇 시간이 걸릴 수 있습니다. Firewall Manager가 ACL 웹을 만든 후 리소스가 정책 범위를 벗어나는 경우 Firewall Manager는 ACL 웹에서 리소스를 분리하지만 연결되지 않은 웹은 정리하지 않습니다. ACL Firewall Manager는 ACLs 정책에서 연결되지 않은 웹 ACLs 관리를 처음 활성화한 경우에만 연결되지 않은 웹을 정리합니다.

이 옵션을 활성화하지 않으면 Firewall Manager는 연결되지 않은 ACLs 웹을 관리하지 않으며 Firewall Manager는 정책 범위 내에 있는 각 계정에 자동으로 ACL 웹을 만듭니다.

샘플링 및 지표 CloudWatch

AWS Firewall Manager AWS WAF 정책용으로 생성한 웹 및 규칙 그룹에 대한 샘플링 ACLs 및 Amazon CloudWatch 메트릭을 활성화합니다.

웹 ACL 네이밍 구조

Firewall Manager는 정책에 ACL 사용할 웹을 만들 때 웹 이름을 지정합니다 ACLFMManagedWebACLV2-policy name-timestamp. 타임스탬프는 UTC 밀리초 단위입니다. 예: FMManagedWebACLV2-MyWAFPolicyName-1621880374078.

참고

고급 자동 애플리케이션 계층 DDoS 완화 기능으로 구성된 리소스가 AWS WAF 정책 범위에 포함되는 경우 Firewall Manager는 AWS WAF 정책으로 ACL 생성된 웹을 리소스에 연결할 수 없습니다.

정책의 규칙 그룹 AWS WAF

Firewall Manager AWS WAF 정책으로 ACLs 관리되는 웹에는 세 가지 규칙 집합이 있습니다. 이러한 세트는 ACL 웹의 규칙 및 규칙 그룹에 더 높은 수준의 우선 순위를 제공합니다.

  • Firewall Manager AWS WAF 정책에서 사용자가 정의한 첫 번째 규칙 그룹 AWS WAF 이러한 규칙 그룹을 먼저 평가합니다.

  • ACLs웹에서 계정 관리자가 정의하는 규칙 및 규칙 그룹 AWS WAF 다음으로 모든 계정 관리 규칙 또는 규칙 그룹을 평가합니다.

  • Firewall Manager AWS WAF 정책에서 사용자가 정의한 마지막 규칙 그룹 AWS WAF 이러한 규칙 그룹을 마지막으로 평가합니다.

각 규칙 세트 내에서, 세트 내의 우선 순위 설정에 따라 평소와 같이 규칙과 규칙 그룹을 AWS WAF 평가합니다.

정책의 첫 번째 및 마지막 규칙 그룹 집합에서는 규칙 그룹만 추가할 수 있습니다. 관리형 규칙 및 AWS Marketplace 판매자가 대신 생성하고 유지 관리하는 AWS 관리형 규칙 그룹을 사용할 수 있습니다. 사용자 고유의 규칙 그룹을 관리하고 사용할 수도 있습니다. 이러한 옵션에 대한 자세한 내용은 AWS WAF 규칙 그룹을 참조하세요.

고유의 규칙 그룹을 사용하려는 경우 Firewall Manager AWS WAF 정책을 생성하기 전에 해당 규칙 그룹을 생성합니다. 자세한 지침은 자체 규칙 그룹 관리을 참조하세요. 개별 사용자 지정 규칙을 사용하려면 고유의 규칙 그룹을 정의하고, 해당 규칙 그룹 내에서 규칙을 정의한 다음, 정책에서 규칙 그룹을 사용해야 합니다.

Firewall Manager를 통해 관리하는 첫 번째 AWS WAF 규칙 그룹과 마지막 규칙 그룹의 이름은 각각 PREFMManaged- 또는 POSTFMManaged- 로 시작하고 그 뒤에 Firewall Manager 정책 이름과 규칙 그룹 생성 타임스탬프 (UTC밀리초) 가 뒤따릅니다. 예: PREFMManaged-MyWAFPolicyName-1621880555123.

웹 요청을 AWS WAF 평가하는 방법에 대한 자세한 내용은 을 참조하십시오. 웹 ACL 규칙 및 규칙 그룹 평가

Firewall Manager AWS WAF 정책을 만드는 절차는 을 참조하십시오에 대한 AWS Firewall Manager 정책 생성 AWS WAF.

Firewall Manager는 AWS WAF 정책에 정의한 규칙 그룹에 대한 샘플링 및 Amazon CloudWatch 지표를 활성화합니다.

개별 계정 소유자는 정책의 관리형 웹에 추가하는 모든 규칙 또는 규칙 그룹의 지표 및 샘플링 구성을 완벽하게 제어할 수 ACLs 있습니다.

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 Classic에서는 이 옵션을 AWS WAFV2지원하지만 AWS WAF Classic에서는 지원하지 않습니다.

로깅 대상

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

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

참고

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

Amazon Data Firehose 데이터 스트림

이 주제에서는 Amazon Data Firehose 데이터 스트림으로 웹 ACL 트래픽 로그를 전송하는 데 필요한 정보를 제공합니다.

Amazon Data Firehose 로깅을 활성화하면 Firewall Manager는 정책 웹에서 스토리지 대상을 구성한 Amazon Data ACLs 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는 계정이 정책 범위 내에 있는지 여부에 관계없이 Firewall Manager 관리자 ACL 계정에서 웹을 생성합니다.

  • ACL웹에는 로그 이름과 FMManagedWebACLV2-Loggingpolicy name-timestamp 함께 로깅이 활성화되어 있습니다. 여기서 타임스탬프는 ACL 웹에서 로그가 활성화된 UTC 시간 (밀리초) 입니다. 예: 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 심플 스토리지 서비스가 따르는 last-writer-wins 시맨틱 및 데이터 일관성 모델을 따릅니다. Firewall Manager 콘솔에서 또는 를 통해 Amazon S3 대상에 여러 정책을 동시에 업데이트하는 경우 일부 권한이 저장되지 않을 수 있습니다. PutPolicyAPI 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 고객 관리 키를 사용할 수 있습니다. Amazon S3 버킷의 기본 Amazon S3 암호화를 AWS WAF 로그에 사용하기로 선택한 경우 특별한 조치를 취할 필요가 없습니다. 하지만 고객 제공 암호화 키를 사용하여 저장된 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 사용 설명서의 고객 제공 키 (-CSSE) 를 사용한 서버 측 암호화 사용을 참조하십시오.

로깅 활성화

다음 절차는 Firewall Manager 콘솔에서 AWS WAF 정책에 대한 로깅을 활성화하는 방법을 설명합니다.

AWS WAF 정책에 대한 로깅을 활성화하려면
  1. 로깅을 활성화하려면 먼저 로깅 대상 리소스를 다음과 같이 구성해야 합니다.

    • Amazon Kinesis 데이터 스트림 - Firewall Manager 관리자 계정을 사용하여 Amazon 데이터 파이어호스를 생성하십시오. 접두사 aws-waf-logs-로 시작하는 이름을 사용하십시오. 예: aws-waf-logs-firewall-manager-central. 작업하려는 리전에서 PUT 소스를 사용하여 Data Firehose를 생성합니다. CloudFrontAmazon의 로그를 캡처하는 경우 미국 동부 (버지니아 북부) 에서 파이어호스를 생성하십시오. 전송 스트림을 사용하기 전에 테스트하여 조직의 로그를 수용할 만큼 처리량이 충분한지 확인하십시오. 자세한 내용은 Amazon Data Firehose 전송 스트림 생성을 참조하세요.

    • Amazon Simple Storage Service 버킷 - AWS WAF 개발자 안내서Amazon Simple Storage Service 주제에 있는 지침에 따라 Amazon S3 버킷을 생성합니다. 또한 Amazon S3 버킷에 로그를 게시하는 데 필요한 권한 에 나열된 권한으로 Amazon S3 버킷을 구성해야 합니다.

  2. Firewall Manager 관리자 계정을 AWS Management Console 사용하여 로그인한 다음 에서 Firewall Manager 콘솔을 엽니다https://console.aws.amazon.com/wafv2/fmsv2. Firewall Manager 관리자 계정 설정에 대한 자세한 내용은 AWS Firewall Manager 전제 조건을 참조하세요.

    참고

    Firewall Manager 관리자 계정 설정에 대한 자세한 내용은 AWS Firewall Manager 전제 조건을 참조하세요.

  3. 탐색 창에서 보안 정책을 선택합니다.

  4. 로깅을 활성화하려는 AWS WAF 정책을 선택합니다. AWS WAF 로깅에 대한 자세한 내용은 AWS WAF 웹 ACL 트래픽 로깅을 참조하세요.

  5. 정책 규칙 섹션의 정책 세부 정보 탭에서 편집을 선택합니다.

  6. 로깅 구성의 경우 로깅 활성화를 선택하여 로깅을 활성화합니다. 로깅은 웹에서 분석되는 트래픽에 대한 자세한 정보를 제공합니다ACL. 로깅 대상 유형을 선택한 다음 구성한 로깅 대상을 선택합니다. 이름이 aws-waf-logs-로 시작하는 로깅 대상을 선택해야 합니다. AWS WAF 로깅 대상 구성에 대한 자세한 내용은 을 참조하십시오AWS WAF 정책에 대한 로깅 구성.

  7. (선택 사항) 로그에 포함된 특정 필드와 그 값이 필요하지 않은 경우 해당 필드를 삭제합니다. 삭제할 필드를 선택한 후 추가를 선택합니다. 필요에 따라 이 작업을 반복하여 추가 필드를 삭제합니다. 삭제된 필드는 로그에서 REDACTED(으)로 표시됩니다. 예를 들어 URI필드를 삭제하면 로그의 URI필드는 다음과 같이 됩니다REDACTED.

  8. (선택 사항) 모든 요청을 로그로 전송하지 않으려면 필터링 기준과 동작을 추가합니다. 필터 로그에서 적용하려는 각 필터에 대해 필터 추가를 선택한 다음 기준과 일치하는 요청을 유지할지 아니면 삭제할지 여부를 지정합니다. 필터 추가를 완료할 때 필요 시 기본 로깅 동작을 수정합니다. 자세한 내용은 AWS WAF 개발자 안내서웹 ACL 로깅 구성을 참조하세요.

  9. Next(다음)를 선택합니다.

  10. 설정을 검토한 다음 저장을 선택하여 변경 내용을 정책에 저장합니다.

로깅 비활성화

다음 절차는 Firewall Manager 콘솔에서 AWS WAF 정책에 대한 로깅을 비활성화하는 방법을 설명합니다.

AWS WAF 정책에 대한 로깅을 비활성화하려면
  1. Firewall Manager 관리자 계정을 AWS Management Console 사용하여 로그인한 다음 에서 Firewall Manager 콘솔을 엽니다https://console.aws.amazon.com/wafv2/fmsv2. Firewall Manager 관리자 계정 설정에 대한 자세한 내용은 AWS Firewall Manager 전제 조건을 참조하세요.

    참고

    Firewall Manager 관리자 계정 설정에 대한 자세한 내용은 AWS Firewall Manager 전제 조건을 참조하세요.

  2. 탐색 창에서 보안 정책을 선택합니다.

  3. 로깅을 비활성화하려는 AWS WAF 정책을 선택합니다.

  4. 정책 규칙 섹션의 정책 세부 정보 탭에서 편집을 선택합니다.

  5. 로깅 구성 상태에서 비활성화를 선택합니다.

  6. Next(다음)를 선택합니다.

  7. 설정을 검토한 다음 저장을 선택하여 변경 내용을 정책에 저장합니다.