설명
CloudFront 액세스 로그에는 요청 경로, 응답 상태와 처리 시간 등이 기록됩니다. 적절한 요청 로그가 없으면 비정상적인 트래픽과 CDN 계층의 오류를 조사하기 어렵습니다. 로그는 공격을 직접 차단하는 기능은 아닙니다.
잠재적 영향
- 비정상 요청과 대량 접근 패턴을 늦게 발견할 수 있습니다.
- 사고 조사와 운영 장애 분석에 필요한 요청 이력이 부족해질 수 있습니다.
해결 방법
- 배포에 필요한 표준 로그나 실시간 로그를 구성하세요. 아래 S3 전송 방식에서는
logging.enabled: true, 로그 버킷과 prefix를 지정하세요. - 선택한 로깅 방식의 전송 권한, 저장소 접근 제한과 보존 정책을 설정하고 실제 수신을 확인하세요.
- 표준 로그는 최선형 방식으로 전달되므로 모든 요청이 빠짐없이 기록된다고 가정하지 마세요.
예시
로깅 설정을 비교하는 부분 예제입니다. 캐시 동작 등 나머지 필수 설정은 생략했습니다. 두 예제 모두 enabled: false이므로 배포가 콘텐츠를 제공하도록 활성화된 상태는 아닙니다.
변경 전
yaml
- name: create a CloudFront distribution
community.aws.cloudfront_distribution:
state: present
caller_reference: unique test distribution ID
origins:
- id: my test origin-000111
domain_name: www.example.com
enabled: false
이 구성에는 로그 전송 설정이 없습니다. 운영 배포에서는 별도로 구성된 로깅 경로도 함께 확인하세요.
변경 후
yaml
- name: create a CloudFront distribution
community.aws.cloudfront_distribution:
state: present
caller_reference: unique test distribution ID
origins:
- id: my test origin-000111
domain_name: www.example.com
logging:
enabled: true
include_cookies: false
bucket: mylogbucket.s3.amazonaws.com
prefix: myprefix/
enabled: false
S3 로그 전송을 활성화합니다. 버킷 이름과 prefix를 실제 대상에 맞추고 해당 로깅 방식에 필요한 권한을 준비하세요.