Amazon CloudFront
개발자 안내서 (API 버전 2016-09-29)

서명된 URL과 서명된 쿠키를 사용하여 프라이빗 콘텐츠 제공

인터넷을 통해 콘텐츠를 배포하는 많은 기업에서는 유료 사용자 등 일부 사용자용으로 제작된 각종 문서, 비즈니스 데이터, 미디어 스트림 또는 콘텐츠에 대한 액세스를 제한하고자 합니다. CloudFront를 통해 이러한 프라이빗 콘텐츠를 안전하게 제공하려면 다음과 같이 하십시오.

  • 사용자가 특별한 CloudFront 서명된 URL 또는 서명된 쿠키를 사용하여 프라이빗 콘텐츠에 액세스하도록 합니다.

  • 사용자가 Amazon S3 URL이 아닌 CloudFront URL을 사용하여 Amazon S3 콘텐츠에 액세스하도록 합니다. 반드시 CloudFront URL을 사용해야 하는 것은 아니지만, 서명된 URL 또는 서명된 쿠키에 지정한 제약 조건을 사용자가 우회하지 못하도록 하려면 사용하는 것이 좋습니다.

중요

웹 사이트 엔드포인트로 구성된 Amazon S3 버킷을 사용하는 경우 이 버킷을 CloudFront에서 사용자 지정 오리진으로 설정해야 하며, 이 주제에서 설명하는 원본 액세스 ID 기능은 사용할 수 없습니다. 사용자 지정 헤더를 사용하여 사용자 지정 오리진의 콘텐츠에 대한 액세스를 제한할 수 있습니다. 자세한 내용은 사용자 지정 헤더를 사용하여 사용자 지정 오리진에서 콘텐츠에 대한 액세스 제한 단원을 참조하십시오.

프라이빗 콘텐츠 개요

다음 그림에 표시된 것처럼, 프라이빗 콘텐츠에 대한 사용자 액세스를 두 가지 방법으로 제어할 수 있습니다.

  1. CloudFront 엣지 캐시에 있는 파일에 대한 액세스 제한

  2. Amazon S3 버킷에 있는 파일에 대한 액세스 제한(해당 버킷을 웹 사이트 엔드포인트로 구성하지 않은 경우)


				액세스 로그 기본 흐름

CloudFront 엣지 캐시에 있는 파일에 대한 액세스 제한

사용자가 서명된 URL 또는 서명된 쿠키를 사용하여 파일에 액세스할 것을 요구하도록 CloudFront를 구성할 수 있습니다. 그런 다음 서명된 URL을 만들어 인증된 사용자에게 배포하거나 인증된 사용자용 최종 사용자에 Set-Cookie 헤더를 보내 서명된 쿠키를 설정하도록 하는 애플리케이션을 개발합니다. (사용자 몇 명에게 제한된 수의 파일에 대한 장기 액세스 권한을 부여하려면 서명된 URL을 수동으로 만드는 방법도 있습니다.)

서명된 URL 또는 서명된 쿠키를 만들어 파일 액세스를 제어할 때 다음과 같은 제약 조건을 지정할 수 있습니다.

  • URL의 효력이 사라지는 종료 날짜 및 시간

  • (선택 사항) URL의 효력이 발생하는 날짜 및 시간

  • (선택 사항) 콘텐츠에 액세스할 때 사용할 수 있는 컴퓨터의 IP 주소 또는 주소 범위

퍼블릭/프라이빗 키 페어의 프라이빗 키를 사용하여 서명된 URL 또는 서명된 쿠키의 일부분을 해시 및 서명합니다. 이 서명된 URL 또는 서명된 쿠키를 사용해 파일에 액세스하면 CloudFront은(는) URL 또는 쿠키의 서명된 부분과 서명되지 않은 부분을 비교합니다. 양쪽이 일치하지 않으면 CloudFront은(는) 파일을 제공하지 않습니다.

Amazon S3 버킷에 있는 파일에 대한 액세스 제한

사용자가 CloudFront를 통해 Amazon S3 버킷에 액세스할 수는 있지만 Amazon S3 URL을 사용하여 직접 액세스할 수는 없도록 버킷의 콘텐츠를 선택적으로 보호할 수 있습니다. 이렇게 하면 CloudFront를 우회하고 Amazon S3 URL로 액세스 제한 콘텐츠에 접근하는 사람을 막을 수 있습니다. 서명된 URL을 사용하기 위해 꼭 필요한 단계는 아니지만 이렇게 하는 것이 좋습니다. 이 옵션은 Amazon S3 버킷을 웹 사이트 엔드포인트로 설정하지 않은 경우에만 사용할 수 있습니다.

사용자가 CloudFront URL을 통해 콘텐츠에 액세스하도록 요구하려면 다음 작업을 수행합니다.

  • 원본 액세스 ID라는 특별한 CloudFront 사용자를 만듭니다.

  • 버킷의 파일을 읽을 수 있는 원본 액세스 ID 권한을 부여합니다.

  • 나머지 모든 사람으로부터 Amazon S3 URL로 파일을 읽을 수 있는 권한을 제거합니다.

자세한 정보는 원본 액세스 ID를 사용하여 Amazon S3 콘텐츠에 대한 액세스 제한 단원을 참조하십시오.

프라이빗 콘텐츠용 HTTP 서버 사용

원본이 Amazon S3 버킷이든 아니면 HTTP 서버든 간에 모든 CloudFront 배포에 서명된 URL 또는 서명된 쿠키를 사용할 수 있습니다. 그러나 CloudFront이(가) HTTP 서버에서 파일을 가져오려면 공개적으로 액세스 가능한 파일이어야 합니다. 공개적으로 액세스할 수 있는 파일이란 HTTP 서버의 파일에 대한 URL을 가진 사람은 누구나 로그인하거나 콘텐츠 요금을 지불하지 않고 액세스할 수 있는 파일을 말합니다. 서명된 URL 또는 서명된 쿠키를 사용하고 오리진이 HTTP 서버인 경우, HTTP 서버의 파일 URL을 고객 또는 외부인에게 제공하지 마십시오.