콘텐츠의 지리적 배포 제한 - Amazon CloudFront

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

콘텐츠의 지리적 배포 제한

사용할 수 있습니다. 지리적 제한, 또한 지리적 차단, 특정 사이트 위치의 사용자가 배포하는 콘텐츠에 액세스하는 것을 막기 위해 CloudFront 웹 배포. 지리적 제한을 사용하는 데에는 다음 두 가지 옵션이 있습니다.

  • CloudFront 지리적 제한 기능을 사용합니다. 이 옵션을 사용하면 배포와 연결된 파일 전체에 대한 액세스를 제한하고 국가 수준에서 액세스를 제한합니다.

  • 타사 지리적 위치 서비스를 사용합니다. 이 옵션을 사용하면 배포와 연결된 파일의 하위 집합에 대한 액세스를 제한하거나 국가 수준이 아닌 더욱 세분화된 범위에서 액세스를 제한합니다.

CloudFront 지리적 제한 사용

사용자가 콘텐츠를 요청할 경우 CloudFront에서는 대개 이 사용자가 있는 위치와 관계없이 요청된 콘텐츠를 제공합니다. 특정 국가의 사용자들이 콘텐츠에 액세스하는 것을 방지해야 할 경우, 다음 중 하나를 수행하도록 CloudFront 지리적 제한 기능을 사용할 수 있습니다.

  • 사용자가 승인된 국가의 화이트리스트에 있는 국가 중 하나에 있는 경우에만 액세스를 허용합니다.

  • 사용자가 금지된 국가의 블랙리스트에 있는 국가 중 하나에 있는 경우 액세스를 금지합니다.

예를 들어, 특정 국가로부터 요청이 온 경우 저작권상 이유로 콘텐츠를 배포할 권한은 없으며 CloudFront 지리적 제한을 사용하여 이 요청을 차단할 수는 있습니다.

참고

CloudFront에서는 타사 GeoIP 데이터베이스를 사용하여 사용자의 위치를 확인합니다. IP 주소 및 국가 간 매핑 정확도는 리전에 따라 다릅니다. 최근 테스트에 따르면 전반적인 정확도는 99.8%입니다. CloudFront에서 사용자 위치를 확인할 수 없는 경우 CloudFront는 사용자가 요청한 콘텐츠를 제공합니다.

지리적 제한이 작동하는 방식은 다음과 같습니다.

  1. 리히텐슈타인에서만 콘텐츠를 배포할 권리를 보유하고 있다고 가정합니다. CloudFront 웹 배포를 업데이트하고 리히텐슈타인만 포함된 화이트리스트를 추가합니다. (또는 리히텐슈타인을 제외한 모든 국가가 포함된 블랙리스트를 추가할 수도 있습니다.)

  2. 모나코에 있는 사용자가 콘텐츠를 요청하고 DNS는 요청을 이탈리아 밀라노에 있는 CloudFront 엣지 로케이션으로 라우팅합니다.

  3. 밀라노의 엣지 로케이션에서는 이 배포를 찾아 모나코에 있는 사용자의 콘텐츠 다운로드가 허용되지 않았음을 확인합니다.

  4. CloudFront에서는 HTTP 상태 코드 403 (Forbidden)을 사용자에게 반환합니다.

선택적으로 CloudFront에서 사용자 지정 오류 메시지를 사용자에게 반환하도록 구성할 수 있으며, CloudFront에서 요청된 파일에 대한 오류 응답을 캐싱하려는 시간을 지정할 수 있습니다. 기본값은 1분 입니다. 자세한 정보는 특정 HTTP 상태 코드에 대한 사용자 지정 오류 페이지 만들기 단원을 참조하십시오.

지리적 제한은 전체 웹 배포에 적용됩니다. 하나의 제한을 콘텐츠의 특정 부분에 적용하고 또 다른 제한을 다른 부분에 적용해야 할 경우(또는 이 부분에 대한 제한이 없는 경우), 별도의 CloudFront 웹 배포를 만들거나 타사 지리적 위치 서비스를 사용해야 합니다.

사용 중인 경우 CloudFront 액세스할 수 있습니다. CloudFront 해당 로그 항목을 검색하여 sc-status (HTTP 상태 코드) 403. 그러나 액세스 로그만 사용하여 CloudFront 요청에서 사용자의 위치를 기준으로 거부됨 CloudFront 사용자가 다른 이유로 파일에 액세스할 권한이 없기 때문에 거부되었습니다. Digital Element 또는 MaxMind와 같은 타사 지리적 위치 서비스가 있는 경우, 액세스 로그에 있는 c-ip(클라이언트 IP) 열의 IP 주소에 따라 요청의 위치를 식별할 수 있습니다. CloudFront 액세스 로그에 대한 자세한 내용은 액세스 로그 구성 및 사용 단원을 참조하십시오.

다음 절차는 CloudFront 콘솔을 사용하여 기존 웹 배포에 지리적 제한을 추가하는 방법을 설명합니다. 콘솔을 사용하여 웹 배포를 생성하는 방법에 대한 자세한 내용은 배포 생성 단원을 참조하십시오.

CloudFront 웹 배포에 지리적 제한을 추가하려면(콘솔)

  1. AWS Management 콘솔에 로그인한 다음 https://console.aws.amazon.com/cloudfront/에서 CloudFront 콘솔을 엽니다.

  2. 업데이트하려는 배포를 선택합니다.

  3. Distribution Settings(배포 설정) 창에서 Restrictions(제한) 탭을 선택합니다.

  4. 편집을 선택합니다.

  5. 관련 값들을 입력합니다. 자세한 정보는 Restrictions 단원을 참조하십시오.

  6. 예, 편집합니다를 선택합니다.

타사 지리적 위치 서비스 사용

CloudFront 지리적 제한 기능을 통해 지정된 웹 배포를 통해 배포하는 전체 파일에 대해 국가 수준에서 콘텐츠의 배포를 제어할 수 있습니다. 콘텐츠가 배포될 수 있는 지역에 대해 지리적 제한이 있고 이 제한이 국가의 경계를 따르지 않는 경우, 또는 CloudFront를 통해 배포하는 파일 중 일부에 대해서만 액세스를 제한하려는 경우, CloudFront와 타사 지리적 위치 서비스를 조합할 수 있습니다. 이를 통해 국가에 따라서나 도시, 우편번호에 따라서는 물론이고 경도/위도에 따라서 콘텐츠에 대한 액세스를 제어할 수 있습니다.

타사 지리적 위치 서비스를 사용하는 경우 CloudFront 서명된 URL을 사용하는 것이 좋습니다. 이렇게 하면 URL이 더 이상 유효하지 않게 된 이후의 만료 날짜 및 시간을 지정할 수 있습니다. 또한 오리진으로는 Amazon S3 버킷을 사용하는 것이 좋습니다. 이렇게 하면 CloudFront 원본 액세스 ID를 사용하여 사용자가 오리진에서 콘텐츠에 직접 액세스하는 것을 차단할 수 있기 때문입니다. 서명된 URL 및 원본 액세스 ID에 대한 자세한 내용은 서명된 URL과 서명된 쿠키를 사용하여 프라이빗 콘텐츠 제공 단원을 참조하십시오.

다음 단계에서는 서드 파티 지리적 위치 서비스를 사용하여 파일에 대한 액세스를 제어하는 방법을 설명합니다.

지리적 위치를 사용하여 CloudFront 배포의 파일에 대한 액세스를 제한하려면

  1. 지리적 위치 서비스를 통해 계정을 얻습니다.

  2. Amazon Simple Storage Service(S3) 버킷에 콘텐츠를 업로드합니다. 자세한 내용은 Amazon S3 설명서를 참조하십시오.

  3. 비공개 콘텐츠를 제공하도록 Amazon CloudFront 및 Amazon S3를 구성합니다. 자세한 정보는 서명된 URL과 서명된 쿠키를 사용하여 프라이빗 콘텐츠 제공 단원을 참조하십시오.

  4. 다음을 수행하도록 웹 애플리케이션을 작성합니다.

    1. 각 사용자 요청에 대한 IP 주소를 지리적 위치 서비스에 전송합니다.

    2. 지리적 위치 서비스로부터의 반환 값을 평가하여 CloudFront에서 콘텐츠를 배포하려는 위치에 사용자가 있는지 여부를 확인합니다.

    3. 사용자의 위치에 콘텐츠를 배포하려면 CloudFront 콘텐츠에 대해 서명된 URL을 생성합니다. 해당 위치에 콘텐츠를 배포하고 싶지 않은 경우 HTTP 상태 코드를 반환합니다.403 (Forbidden) 사용자에게 또는 사용자 지정 오류 메시지를 반환하도록 CloudFront를 구성할 수 있습니다. 자세한 정보는 특정 HTTP 상태 코드에 대한 사용자 지정 오류 페이지 만들기 단원을 참조하십시오.

    자세한 내용은 사용 중인 지리적 위치 서비스의 설명서를 참조하십시오.

웹 서버 변수를 사용하여 웹 사이트를 방문한 사용자의 IP 주소를 가져올 수 있습니다. 다음 경고를 기록해 두세요.

  • 웹 서버가 로드 밸런서를 통해 인터넷에 연결되지 않은 경우, 웹 서버 변수를 사용하여 원격 IP 주소를 가져올 수 있습니다. 그러나 이 IP 주소는 사용자의 IP 주소와 항상 일치하지는 않으며, 사용자가 인터넷에 연결된 방법에 따라 프록시 서버의 IP 주소가 될 수도 있습니다.

  • 웹 서버가 로드 밸런서를 통해 인터넷에 연결된 경우, 웹 서버 변수에는 사용자의 IP 주소가 아닌 로드 밸런서의 IP 주소가 포함될 수 있습니다. 이러한 구성에서는 X-Forwarded-For HTTP 헤더의 마지막 IP 주소를 사용하는 것이 좋습니다. 이 헤더는 대개 두 개 이상의 IP 주소를 포함하고 있으며, 이들 중 대부분은 프록시나 로드 밸런서용 IP 주소입니다. 목록의 마지막 IP 주소는 사용자의 지리적 위치와 가장 관련성이 높은 주소입니다.

웹 서버가 로드 밸런서에 연결되지 않은 경우, IP 주소 스푸핑을 방지하기 위해 X-Forwarded-For 헤더 대신 웹 서버 변수를 사용하는 것이 좋습니다.