Amazon CloudFront 응답에 HTTP 보안 헤더를 추가하고 싶습니다. 어떻게 해야 합니까?
간략한 설명
HTTP 보안 헤더는 웹 애플리케이션의 개인정보 보호 및 보안을 개선하고 클라이언트 측의 취약성으로부터 보호합니다. 가장 일반적인 HTTP 보안 헤더는 다음과 같습니다.
CloudFront 응답 헤더 정책을 사용하면 CloudFront의 응답에 하나 이상의 HTTP 보안 헤더를 추가할 수 있습니다.
해결 방법
가장 일반적인 HTTP 보안 헤더에 대해 미리 정의된 값을 포함하는 관리형 보안 헤더 응답 정책을 사용할 수 있습니다. 또는 필요한 CloudFront 동작에 추가할 수 있는 사용자 지정 보안 헤더와 값으로 사용자 지정 응답 헤더 정책을 생성할 수 있습니다.
AWS Console에서 사용자 지정 응답 헤더 정책 생성
- CloudFront 콘솔을 엽니다.
- 탐색 메뉴에서 정책을 선택합니다. 그런 다음 응답 헤더를 선택합니다.
- 응답 헤더 정책 생성을 선택합니다.
- 보안 헤더에서 정책에 추가할 각 보안 헤더를 선택합니다. 각 헤더에 필요한 값을 추가하거나 선택합니다.
- 사용자 지정 헤더에서 CloudFront가 응답에 추가할 사용자 지정 보안 헤더와 값을 추가합니다.
- 필요에 따라 다른 필드를 입력합니다. 그런 다음 생성을 선택합니다.
캐시 동작에 응답 헤더 정책 연결
응답 헤더 정책을 생성한 후 CloudFront 배포의 캐시 동작에 연결합니다. 관리형 또는 사용자 지정 보안 헤더 응답 정책을 기존 CloudFront 배포에 연결하려면 다음을 수행합니다.
- CloudFront 콘솔을 엽니다.
- 업데이트하려는 배포를 선택합니다.
- 동작 탭에서 수정할 캐시 동작을 선택합니다. 그런 다음 편집을 선택합니다.
- 응답 헤더 정책에서 SecurityHeadersPolicy를 선택하거나 생성한 사용자 지정 정책을 선택합니다.
- 변경 사항 저장을 선택합니다.
다음은 HTTP 보안 응답 헤더가 있는 CloudFront 응답의 예입니다.
curl -I https://dxxxxxxxbai33q.cloudfront.net
HTTP/2 200
content-type: text/html
content-length: 9850
vary: Accept-Encoding
date: xxxxxxxxx
last-modified: xxxxxxx
etag: "c59c5ef71f3350489xxxxxxxxxx"
x-amz-server-side-encryption: AES256
cache-control: no-store, no-cache, private
x-amz-version-id: null
accept-ranges: bytes
server: AmazonS3
x-xss-protection: 1; mode=block
x-frame-options: SAMEORIGIN
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
strict-transport-security: max-age=31536000
x-cache: Miss from cloudfront
via: 1.1 12142717248e0e7148a5c1a9151ab918.cloudfront.net (CloudFront)
x-amz-cf-pop: BOS50-C3
x-amz-cf-id: nHNANTZYdkQkE5BmsqlisPTiodFhVCK-Sf9Zp4iJzNs04eWi1_hEig==