프라이빗 콘텐츠 제공 개요 - Amazon CloudFront

프라이빗 콘텐츠 제공 개요

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

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

  2. 다음 중 하나를 수행하여 오리진의 파일에 대한 액세스를 제한합니다.

    • Amazon S3 버킷의 원본 액세스 ID(OAI) 설정

    • 프라이빗 HTTP 서버(사용자 지정 오리진)에 대한 사용자 지정 헤더 구성


				CloudFront에서 파일 액세스를 제한하는 두 가지 방법

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

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

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

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

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

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

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

URL 또는 쿠키에 서명하려면 RSA-SHA1을 사용해야 합니다. CloudFront는 다른 알고리즘을 허용하지 않습니다.

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

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

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

  • 원본 액세스 ID라는 특수 CloudFront 사용자를 만들어 CloudFront 배포와 연결합니다.

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

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

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

사용자 지정 오리진의 파일에 대한 액세스 제한

사용자 지정 오리진을 사용하는 경우 선택적으로 사용자 지정 헤더를 설정하여 액세스를 제한할 수 있습니다. CloudFront가 사용자 지정 오리진에서 파일을 가져오도록 하려면 파일이 공개적으로 액세스할 수 있어야 합니다. 그러나 사용자 지정 헤더를 사용하면 사용자가 직접 액세스할 수 없고 CloudFront를 통해서만 액세스할 수 있도록 콘텐츠에 대한 액세스를 제한할 수 있습니다. 서명된 URL을 사용하기 위해 꼭 필요한 단계는 아니지만 이렇게 하는 것이 좋습니다.

사용자가 CloudFront를 통해 콘텐츠에 액세스하도록 하려면 CloudFront 배포의 다음 설정을 변경합니다.

오리진 사용자 지정 헤더

오리진에 사용자 지정 헤더를 전달하도록 CloudFront를 구성합니다. 사용자 지정 헤더를 오리진 요청에 추가하도록 CloudFront 구성을(를) 참조하십시오.

최종 사용자 프로토콜 정책

최종 사용자가 HTTPS를 사용하여 CloudFront에 액세스하도록 배포를 구성합니다. Viewer Protocol Policy 단원을 참조하십시오.

오리진 프로토콜 정책

CloudFront가 최종 사용자와 같은 프로토콜을 사용하여 오리진에 요청을 전달하도록 배포를 구성합니다. 오리진 프로토콜 정책 단원을 참조하십시오.

변경을 수행한 후 이러한 헤더를 포함하는 요청만 수락하도록 사용자 지정 오리진의 애플리케이션을 업데이트합니다.

Viewer Protocol Policy(뷰어 프로토콜 정책)와 Origin Protocol Policy(오리진 프로토콜 정책)의 조합을 통해 사용자 정의 헤더가 최종 사용자와 오리진 사이에 암호화되도록 합니다. 하지만 주기적으로 다음을 수행하여 CloudFront가 오리진에 전달하는 사용자 지정 헤더를 교체하는 것이 좋습니다.

  1. CloudFront를 업데이트하여 사용자 지정 오리진에 새 헤더 전달을 시작합니다.

  2. 요청이 CloudFront에서 온다는 확인으로 애플리케이션을 업데이트하여 새 헤더를 허용합니다.

  3. 최종 사용자 요청에 더 이상 교체하는 헤더가 포함되지 않는 경우, 요청이 CloudFront에서 온다는 확인으로 애플리케이션을 업데이트하여 새 헤더를 허용합니다.