설명
AWS WAF 웹 ACL을 CloudFront 배포에 연결하면 엣지에서 웹 요청을 검사하고 구성된 규칙과 동작에 따라 제어할 수 있습니다. 웹 ACL이 연결되지 않은 배포에는 이 WAF 보호 계층이 적용되지 않습니다.
웹 ACL 연결만으로 모든 공격이 차단되지는 않습니다. 규칙의 범위와 동작이 중요하며, 요청을 집계하는 Count 동작은 요청을 차단하지 않습니다. WAF는 애플리케이션 인증, 입력 검증과 취약점 수정을 대신하지 않습니다.
잠재적 영향
- 악성 요청이나 비정상적인 요청량을 엣지에서 제한할 기회를 놓칠 수 있습니다.
- 애플리케이션에 취약점이 있으면 해당 공격을 완화하는 WAF 규칙이 없는 상태에서 악용될 수 있습니다.
해결 방법
- CloudFront용 AWS WAF 웹 ACL을
CLOUDFRONT범위로 준비하고,us-east-1의 해당 웹 ACL ARN을distributionConfig.webACLID에 지정하세요. - 서비스에 맞는 관리형 규칙과 요청 속도 제한을 구성하세요. Count 모드와 로그로 영향을 확인한 뒤 필요한 차단 동작을 적용하세요.
- 연결 후 웹 ACL이 실제 배포에 적용되는지 확인하고, 공격 요청과 정상 요청에 대한 동작을 시험하세요.
예시
다음은 웹 ACL 연결 부분만 비교하는 배포 예시입니다. 인증서와 오리진 등 나머지 필수 설정은 생략했으며, 예시 ARN은 실제 CloudFront용 웹 ACL ARN으로 바꿔야 합니다.
변경 전
yaml
apiVersion: cloudfront.aws.crossplane.io/v1alpha1
kind: Distribution
spec:
forProvider:
distributionConfig:
enabled: true
viewerCertificate:
minimumProtocolVersion: TLSv1.2_2018
이 정의에는 WAF 웹 ACL 연결이 없습니다. 애플리케이션의 다른 보안 통제를 포함해 필요한 보호 수준을 검토하세요.
변경 후
yaml
apiVersion: cloudfront.aws.crossplane.io/v1alpha1
kind: Distribution
spec:
forProvider:
distributionConfig:
enabled: true
viewerCertificate:
minimumProtocolVersion: TLSv1.2_2018
webACLID: arn:aws:wafv2:us-east-1:123456789012:global/webacl/example/473e64fd-f30b-4765-81a0-62ad96dd167a
AWS WAF 웹 ACL을 ARN으로 연결합니다. 어떤 요청을 허용하거나 차단하는지는 연결된 웹 ACL의 실제 규칙과 동작에 달려 있습니다.