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는 서명된 쿠키를 검증하고, 유효한 경우 콘텐츠를 제공합니다.
단계별 과정
- 키 그룹 설정: CloudFront 배포에 신뢰할 수 있는 키 그룹 지정.
- 서명된 쿠키 생성: 애플리케이션에서
Set-Cookie
헤더를 통해 서명된 쿠키를 사용자에게 전달. - 요청 검증: 사용자가 서명된 쿠키를 포함한 요청을 하면 CloudFront는 서명을 검증.
- 정책 확인: 정책 문서의 조건(유효 기간, IP 주소 등)을 확인하여 요청이 유효한지 검토.
- 콘텐츠 제공: 모든 조건을 만족하면 CloudFront는 콘텐츠를 제공.
2.3 서명된 쿠키의 오용 방지
Set-Cookie
헤더의Domain
파라미터를 가능한 구체적으로 설정하여 동일 루트 도메인에서 접근을 제한합니다.Expires
및Max-Age
속 성을 제외하여 세션 쿠키로 설정하면 브라우저를 닫을 때 자동으로 삭제되어 비인가 접근을 줄일 수 있습니다.Secure
속성을 포함시켜 쿠키가 암호화된 상태로 전송되도록 설정합니다.- 커스텀 정책을 사용하여 IP 주소를 지정하고, 짧은 유효 기간을 설정하여 보안을 강화합니다.
2.4 만료 시간 검증
- CloudFront는 HTTP 요청 시 쿠키의 만료 날짜와 시간을 확인합니다.
- 파일 다운로드가 만료 시간 직전에 시작되면 다운로드가 완료될 수 있지만, 만료 시간 이후에 재시작하면 다운로드가 실패할 수 있습니다.
3 설정 방법
3.1 캔드 정책 사용하여 서명된 쿠키 설정
- 캔드 정책은 사전에 정의된 간단한 정책으로 빠르게 설정할 수 있습니다.
3.2 커스텀 정책 사용하여 서명된 쿠키 설정
- 커스텀 정책은 더 많은 제어와 유연성을 제공하며, 다양한 조건을 추가할 수 있습니다.
4 사용 사례
4.1 프리미엄 콘텐츠 제공
- 유료 회원만 접근할 수 있는 비디오나 파일을 제공할 때 서명된 쿠키를 사용하여 접근을 제한할 수 있습니다.
4.2 보안 강화
- 공개적으로 노출되면 안 되는 데이터를 안전하게 제공할 수 있습니다.
4.3 시간 제한 접근
- 특정 시간 동안만 접근이 가능하도록 설정하여 시간 제한된 이벤트나 프로모션에 활용할 수 있습니다.
참고 자료