본문으로 건너뛰기

Signed-Cookies

1 Amazon CloudFront 서명된 쿠키(Signed Cookies)

  • Amazon CloudFront 서명된 쿠키(Signed Cookies)는 콘텐츠 접근을 제어하기 위해 사용하는 기능입니다.
  • URL을 변경하지 않고, 여러 제한된 파일에 대한 접근 권한을 제공할 수 있습니다.
  • 서명된 쿠키는 주로 프리미엄 콘텐츠나 민감한 데이터에 접근할 수 있는 사용자만을 대상으로 합니다.

2 주요 기능

2.1 캔드 정책(Canned Policy)과 커스텀 정책(Custom Policy) 선택

  • 서명된 쿠키를 생성할 때, JSON 형식의 정책 문서를 작성하여 쿠키의 유효 기간 등의 제한을 지정합니다.
  • 캔드 정책은 단순하고 재사용이 가능하지만, 커스텀 정책은 더 많은 제어를 제공합니다.
설명캔드 정책커스텀 정책
여러 파일에 대해 정책 문서 재사용아니오
콘텐츠 접근 시작 날짜와 시간 지정아니오예 (선택 사항)
콘텐츠 접근 종료 날짜와 시간 지정
콘텐츠에 접근할 수 있는 IP 주소 범위 지정아니오예 (선택 사항)

2.2 서명된 쿠키의 작동 방식

  • CloudFront 배포에서 하나 이상의 신뢰할 수 있는 키 그룹을 지정합니다. 이 키 그룹에는 URL 서명을 검증할 수 있는 공개 키가 포함됩니다.
  • 애플리케이션이 사용자가 콘텐츠에 접근할 수 있는지 결정하고, 접근 권한이 있으면 Set-Cookie 헤더를 통해 서명된 쿠키를 사용자에게 보냅니다.
  • 서명된 쿠키가 있는 요청이 들어오면 CloudFront는 서명된 쿠키를 검증하고, 유효한 경우 콘텐츠를 제공합니다.

단계별 과정

  1. 키 그룹 설정: CloudFront 배포에 신뢰할 수 있는 키 그룹 지정.
  2. 서명된 쿠키 생성: 애플리케이션에서 Set-Cookie 헤더를 통해 서명된 쿠키를 사용자에게 전달.
  3. 요청 검증: 사용자가 서명된 쿠키를 포함한 요청을 하면 CloudFront는 서명을 검증.
  4. 정책 확인: 정책 문서의 조건(유효 기간, IP 주소 등)을 확인하여 요청이 유효한지 검토.
  5. 콘텐츠 제공: 모든 조건을 만족하면 CloudFront는 콘텐츠를 제공.

2.3 서명된 쿠키의 오용 방지

  • Set-Cookie 헤더의 Domain 파라미터를 가능한 구체적으로 설정하여 동일 루트 도메인에서 접근을 제한합니다.
  • ExpiresMax-Age 속성을 제외하여 세션 쿠키로 설정하면 브라우저를 닫을 때 자동으로 삭제되어 비인가 접근을 줄일 수 있습니다.
  • Secure 속성을 포함시켜 쿠키가 암호화된 상태로 전송되도록 설정합니다.
  • 커스텀 정책을 사용하여 IP 주소를 지정하고, 짧은 유효 기간을 설정하여 보안을 강화합니다.

2.4 만료 시간 검증

  • CloudFront는 HTTP 요청 시 쿠키의 만료 날짜와 시간을 확인합니다.
  • 파일 다운로드가 만료 시간 직전에 시작되면 다운로드가 완료될 수 있지만, 만료 시간 이후에 재시작하면 다운로드가 실패할 수 있습니다.

3 설정 방법

3.1 캔드 정책 사용하여 서명된 쿠키 설정

  • 캔드 정책은 사전에 정의된 간단한 정책으로 빠르게 설정할 수 있습니다.

3.2 커스텀 정책 사용하여 서명된 쿠키 설정

  • 커스텀 정책은 더 많은 제어와 유연성을 제공하며, 다양한 조건을 추가할 수 있습니다.

4 사용 사례

4.1 프리미엄 콘텐츠 제공

  • 유료 회원만 접근할 수 있는 비디오나 파일을 제공할 때 서명된 쿠키를 사용하여 접근을 제한할 수 있습니다.

4.2 보안 강화

  • 공개적으로 노출되면 안 되는 데이터를 안전하게 제공할 수 있습니다.

4.3 시간 제한 접근

  • 특정 시간 동안만 접근이 가능하도록 설정하여 시간 제한된 이벤트나 프로모션에 활용할 수 있습니다.

참고 자료