서명된 URL 사용 - 아마존 CloudFront

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

서명된 URL 사용

서명된 URL에는 만료 날짜 및 시간 같은 추가 정보가 포함되므로 콘텐츠에 대한 액세스를 보다 세부적으로 제어할 수 있습니다. 이러한 추가 정보는 미리 준비된(canned) 정책 또는 사용자 지정 정책에 따라 정책 설명에 나타납니다. 미리 준비된(canned) 정책과 사용자 지정 정책 간의 차이점은 이어지는 두 단원에 설명되어 있습니다.

참고

같은 배포에 대해 미리 준비된(canned) 정책과 사용자 지정 정책으로 각각 서명된 URL을 만들 수 있습니다.

서명된 URL에 대해 미리 준비된(canned) 정책과 사용자 지정 정책 중 선택

서명된 URL을 만들 때 JSON 형식의 정책 설명을 작성하여 서명된 URL의 제약 조건(예: URL의 유효 기간)을 지정합니다. 미리 준비된(canned) 정책 또는 사용자 지정 정책을 사용할 수 있습니다. 다음은 미리 준비된(canned) 정책과 사용자 지정 정책을 비교한 것입니다.

설명 미리 준비된 정책 사용자 정의 정책

정책 설명은 여러 파일에 재사용할 수 있습니다. 정책 설명을 재사용하려면 Resource 객체에 와일드카드 문자를 사용해야 합니다. 자세한 내용은 사용자 지정 정책을 사용하는 서명된 URL에 대한 정책 설명에서 지정한 값 섹션을 참조하세요.)

아니요

날짜 및 시간을 지정하여 사용자가 콘텐츠에 액세스를 시작할 수 있습니다.

아니요

예(선택 사항)

사용자의 콘텐츠 액세스를 중단할 날짜 및 시간을 지정할 수 있습니다.

콘텐츠에 액세스할 수 있는 사용자의 IP 주소 또는 IP 주소 범위를 지정할 수 있습니다.

아니요

예(선택 사항)

서명된 URL에는 base64 인코딩 버전의 정책이 포함되므로 URL 길이가 더 깁니다.

아니요

미리 준비된(canned) 정책으로 서명된 URL을 만드는 방법에 대한 자세한 내용은 미리 준비된 정책을 사용하여 서명된 URL 생성 단원을 참조하세요.

사용자 지정 정책으로 서명된 URL을 만드는 방법에 대한 자세한 내용은 사용자 지정 정책을 사용한 서명된 URL 생성 단원을 참조하세요.

서명된 URL의 작동 방식

다음은 서명된 URL에 대해 Amazon S3를 구성하는 CloudFront 방법과 사용자가 서명된 URL을 사용하여 파일을 요청할 때 CloudFront 응답하는 방식에 대한 개요입니다.

  1. CloudFront 배포할 때 URL 서명을 확인하는 데 사용할 CloudFront 수 있는 퍼블릭 키가 포함된 신뢰할 수 있는 키 그룹을 하나 이상 지정하십시오. 해당 프라이빗 키를 사용하여 URL에 서명합니다.

    자세한 설명은 서명된 URL 및 서명된 쿠키를 생성할 수 있는 서명자 지정 섹션을 참조하세요.

  2. 애플리케이션을 개발하여 사용자에게 콘텐츠 액세스를 허용할지 여부를 판단하고, 액세스를 제한할 애플리케이션 부분 또는 파일에 대해 서명된 URL을 만듭니다. 자세한 정보는 다음 주제를 참조하세요.

  3. 사용자가 서명된 URL이 필요한 파일을 요청합니다.

  4. 애플리케이션은 해당 사용자에게 파일 액세스 권한이 있는지 확인합니다. 사용자가 로그인했는지, 콘텐츠 액세스 비용을 지불했는지, 기타 액세스 요구 사항을 충족했는지 등을 확인합니다.

  5. 애플리케이션은 서명된 URL을 만들어 사용자에게 반환합니다.

  6. 사용자는 서명된 URL을 통해 콘텐츠를 다운로드하거나 스트리밍할 수 있습니다.

    이 단계는 자동으로 진행되기 때문에 사용자는 콘텐츠에 액세스하기 위해 아무것도 하지 않아도 됩니다. 예를 들어, 사용자가 웹 브라우저에서 콘텐츠에 액세스한다면 애플리케이션은 서명된 URL을 브라우저에 반환합니다. 브라우저는 사용자의 개입 없이 서명된 URL을 사용하여 CloudFront 에지 캐시에 있는 파일에 즉시 액세스합니다.

  7. CloudFront 공개 키를 사용하여 서명을 검증하고 URL이 변조되지 않았는지 확인합니다. 유효하지 않은 서명인 경우 요청을 거부합니다.

    서명이 유효하면 URL의 정책 설명을 CloudFront 살펴보거나 미리 준비된 정책을 사용하는 경우 정책 설명을 구성하여 요청이 여전히 유효한지 확인합니다. 예를 들어 URL의 시작 및 종료 날짜와 시간을 지정한 경우 액세스를 허용하려는 기간 동안 사용자가 콘텐츠에 액세스하려고 CloudFront 시도했음을 확인합니다.

    요청이 정책 설명의 요구 사항을 충족하는 경우 표준 작업을 수행합니다. 파일이 이미 엣지 캐시에 있는지 확인하고, 필요한 경우 오리진에 요청을 전달하고, 파일을 사용자에게 반환합니다. CloudFront

참고

서명되지 않은 URL에 쿼리 문자열 파라미터가 포함된 경우 서명하는 URL 부분에 이를 포함시켜야 합니다. 서명된 URL에 서명한 후 서명된 URL에 쿼리 문자열을 추가하면 해당 URL이 HTTP 403 상태를 반환합니다.

서명된 URL의 유효 기간 선택

단시간(최소 몇 분) 동안만 유효한 서명된 URL을 사용하여 프라이빗 콘텐츠를 배포할 수 있습니다. 이렇게 짧은 기간 동안 유효한 서명된 URL은 필요에 따라 고객에게 영화 대여나 음악 다운로드를 배포하는 것과 같은 특정 목적으로 콘텐츠를 on-the-fly 사용자에게 배포하는 데 적합합니다. 서명된 URL의 효력을 단시간 동안만 유지하려는 경우, 이를 자동으로 만드는 애플리케이션을 개발할 수 있습니다. 사용자가 파일을 다운로드하거나 미디어 파일을 재생하기 시작하면 URL의 만료 시간을 현재 시간과 CloudFront 비교하여 URL이 여전히 유효한지 확인합니다.

또한 장시간(몇 년 정도) 동안 유효한 서명된 URL을 사용하여 프라이빗 콘텐츠를 배포할 수도 있습니다. 장시간 동안 유효한 서명된 URL은 알려진 사용자에게 프라이빗 콘텐츠를 배포할 때 유용합니다. 투자자에게 사업 계획을 배포하거나 직원에게 교육 자료를 배포하는 경우가 여기에 해당합니다. 이러한 장기 서명 URL을 생성하는 애플리케이션을 개발할 수 있습니다.

서명된 URL의 만료 날짜 및 시간은 언제 CloudFront 확인하나요?

CloudFront HTTP 요청 시 서명된 URL의 만료 날짜 및 시간을 확인합니다. 클라이언트가 만료 시간 직전에 대용량 파일을 다운로드하기 시작한 경우, 다운로드 도중 만료 시간이 지나도 다운로드는 완료됩니다. TCP 연결이 끊어진 경우, 클라이언트가 만료 시간 이후에 다운로드를 다시 시작하는 것은 불가능합니다.

클라이언트가 범위 GET을 사용하여 파일을 작은 조각으로 가져오는 경우, 만료 시간 이후의 GET 요청은 실패합니다. 범위 GET에 대한 자세한 내용은 객체에 대한 부분 요청 (범위 GET) 을 CloudFront 처리하는 방법을 참조하십시오.

예제 코드 및 타사 도구

서명된 URL의 해시 및 서명된 부분을 만드는 예제 코드에 대해서는 다음 주제를 참조하세요.