파일에 대한 액세스 제한 - Amazon 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을 통해 콘텐츠에 액세스하도록 요구하려면 다음 작업을 수행합니다.

  • CloudFront에 S3 버킷의 파일을 읽을 수 있는 오리진 액세스 제어 권한을 부여합니다.

  • 오리진 액세스 제어를 생성하고 CloudFront 배포와 연결합니다.

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

자세한 내용은 Amazon Simple Storage Service 오리진에 대한 액세스 제한 단원을 참조하십시오.

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

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

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

오리진 사용자 지정 헤더

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

Viewer Protocol Policy

최종 사용자가 HTTPS를 사용하여 CloudFront에 액세스하도록 배포를 구성합니다. 뷰어 프로토콜 정책 섹션을 참조하세요.

오리진 프로토콜 정책

CloudFront가 최종 사용자와 같은 프로토콜을 사용하여 오리진에 요청을 전달하도록 배포를 구성합니다. 프로토콜(사용자 지정 오리진만 해당) 섹션을 참조하세요.

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

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

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

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

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