다음을 통해 공유


SAS에서 Azure Content Delivery Network 사용

Azure Content Delivery Network에서 콘텐츠를 캐시하는 데 사용할 스토리지 계정을 설정할 때 기본적으로 스토리지 컨테이너의 URL을 아는 사람은 업로드한 파일에 액세스할 수 있습니다. 스토리지 계정의 파일을 보호하기 위해 공용에서 프라이빗으로 스토리지 컨테이너의 액세스를 설정할 수 있습니다. 그러나 그렇게 하는 경우 아무도 파일에 액세스할 수 없습니다.

프라이빗 스토리지 컨테이너에 제한된 액세스를 부여하려는 경우 Azure Storage 계정의 SAS(공유 액세스 서명) 기능을 사용할 수 있습니다. SAS는 계정 키를 노출하지 않고 Azure Storage 리소스에 대한 제한된 액세스 권한을 부여하는 URI입니다. 스토리지 계정 키로 신뢰하지 않지만 특정 스토리지 계정 리소스에 대한 액세스를 위임하려는 클라이언트에 SAS를 제공할 수 있습니다. 이러한 클라이언트에 공유 액세스 서명 URI를 배포하면 지정된 기간 동안 리소스에 대한 액세스 권한을 부여합니다.

SAS를 사용하여 Blob의 액세스 권한에 대해 시작 및 만료 시간, 사용 권한(읽기/쓰기), IP 범위 등과 같은 다양한 매개 변수를 정의할 수 있습니다. 이 문서에서는 Azure Content Delivery Network에서 SAS를 사용하는 방법을 설명합니다. SAS를 만드는 방법과 해당 매개 변수 옵션 등 SAS에 대한 자세한 내용은 SAS(공유 액세스 서명) 사용을 참조하세요.

스토리지 SAS를 사용하도록 Azure Content Delivery Network 설정

Azure Content Delivery Network에서 SAS를 사용하려면 다음 두 가지 옵션을 사용하는 것이 좋습니다. 모든 옵션에서는 작동하는 SAS를 이미 만들었다고 가정합니다(필수 조건 참조).

필수 조건

시작하려면 스토리지 계정을 만든 다음, 자산에 대한 SAS를 생성합니다. 서비스 SAS, 계정 SAS 등 두 가지 유형의 저장된 액세스 서명을 생성할 수 있습니다. 자세한 내용은 공유 액세스 서명 유형을 참조하세요.

SAS 토큰을 생성한 후 URL에 ?sv=<SAS token>을 추가하여 Blob Storage 파일에 액세스할 수 있습니다. 이 URL의 형식은 다음과 같습니다.

https://<account name>.blob.core.windows.net/<container>/<file>?sv=<SAS token>

예시:

https://democdnstorage1.blob.core.windows.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=co&sp=r&se=2038-01-02T21:30:49Z&st=2018-01-02T13:30:49Z&spr=https&sig=QehoetQFWUEd1lhU5iOMGrHBmE727xYAbKJl5ohSiWI%3D

매개 변수 설정에 대한 자세한 내용은 SAS 매개 변수 고려 사항공유 액세스 서명 매개 변수를 참조하세요.

콘텐츠 배달 네트워크 SAS 설정의 스크린샷.

옵션 1: 통과와 함께 SAS를 사용하여 Azure Content Delivery Network에서 Blob Storage로

이 옵션은 가장 간단하며 Azure Content Delivery Network에서 원본 서버로 전달되는 단일 SAS 토큰을 사용합니다.

  1. 엔드포인트를 선택하고 캐싱 규칙을 선택한 다음, 쿼리 문자열 캐싱 목록에서 각 고유한 URL 캐시를 선택합니다.

    콘텐츠 배달 네트워크 캐싱 규칙의 스크린샷.

  2. 스토리지 계정에 SAS를 설정한 후에는 콘텐츠 배달 네트워크 엔드포인트 및 원본 서버 URL과 함께 SAS 토큰을 사용하여 파일에 액세스해야 합니다.

    결과 콘텐츠 배달 네트워크 엔드포인트 URL의 형식은 다음과 같습니다. https://<endpoint hostname>.azureedge.net/<container>/<file>?sv=<SAS token>

    예시:

    https://demoendpoint.azureedge.net/container1/demo.jpg?sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D

  3. 캐싱 규칙을 사용하거나 원본 서버에서 Cache-Control 헤더를 추가하여 캐시 지속 기간을 미세 조정합니다. Azure Content Delivery Network는 SAS 토큰을 일반 쿼리 문자열로 처리하므로 SAS 만료 시간 또는 그 이전에 만료되는 캐싱 기간을 설정하는 것이 좋습니다. 그렇지 않은 경우 SAS가 활성 상태인 경우 SAS 만료 시간이 경과한 후 Azure Content Delivery Network 원본 서버에서 파일에 액세스할 수 있습니다. 이러한 상황이 발생하는 경우 캐시된 파일에 액세스할 수 없도록 하려면 파일에서 제거 작업을 수행하여 캐시에서 파일을 지워야 합니다. Azure Content Delivery Network에서 캐시 기간을 설정하는 방법에 대한 자세한 내용은 캐싱 규칙을 사용하여 Azure Content Delivery Network 캐싱 동작 제어를 참조하세요.

옵션 2: 다시 쓰기 규칙으로 콘텐츠 배달 네트워크 보안 토큰 인증 사용

Azure Content Delivery Network 보안 토큰 인증을 사용하려면 Edgio 프로필의 Azure CDN Premium이 있어야 합니다. 이 옵션은 가장 안전하며 사용자 지정이 가능합니다. 클라이언트 액세스는 보안 토큰에 설정된 보안 매개 변수를 기반으로 합니다. 보안 토큰을 만들고 설정하면 모든 콘텐츠 배달 네트워크 엔드포인트 URL에 필요합니다. 그러나 URL 다시 쓰기 규칙 때문에 콘텐츠 배달 네트워크 엔드포인트에서 SAS 토큰이 필요하지 않습니다. 나중에 SAS 토큰이 유효하지 않은 경우 Azure Content Delivery Network는 원본 서버에서 콘텐츠의 유효성을 다시 검사할 수 없습니다.

  1. Azure Content Delivery Network 보안 토큰 을 만들고 사용자가 파일에 액세스할 수 있는 콘텐츠 배달 네트워크 엔드포인트 및 경로에 대한 규칙 엔진을 사용하여 활성화합니다.

    보안 토큰 엔드포인트 URL의 형식은 다음과 같습니다.

    https://<endpoint hostname>.azureedge.net/<container>/<file>?<security_token>

    예시:

    https://sasstoragedemo.azureedge.net/container1/demo.jpg?a4fbc3710fd3449a7c99986bkquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D

    보안 토큰 인증에 대한 매개 변수 옵션은 SAS 토큰에 대한 매개 변수 옵션과 다릅니다. 보안 토큰을 만들 때 만료 시간을 사용하는 경우 SAS 토큰의 만료 시간과 같은 값으로 설정해야 합니다. 이렇게 하면 만료 시간을 예측할 수 있게 됩니다.

  2. 규칙 엔진으로 URL 다시 쓰기 규칙을 만들어 컨테이너의 모든 Blob에 대한 SAS 토큰 액세스를 사용하도록 설정합니다. 새 규칙을 전파하는 데 최대 4시간이 소요됩니다.

    다음 샘플 URL 다시 쓰기 규칙은 캡처링 그룹 및 sasstoragedemo라는 엔드포인트와 함께 정규식 패턴을 사용합니다.

    원본:

    (container1/.*)

    대상:

    $1&sv=2017-07-29&ss=b&srt=c&sp=r&se=2027-12-19T17:35:58Z&st=2017-12-19T09:35:58Z&spr=https&sig=kquaXsAuCLXomN7R00b8CYM13UpDbAHcsRfGOW3Du1M%3D콘텐츠 배달 네트워크 URL 다시 쓰기 규칙의 스크린샷 - 왼쪽.콘텐츠 배달 네트워크 URL 다시 쓰기 규칙의 스크린샷 - 오른쪽.

  3. SAS를 갱신하는 경우 새 SAS 토큰으로 URL 다시 쓰기 규칙을 업데이트해야 합니다.

SAS 매개 변수 고려 사항

SAS 매개 변수는 Azure Content Delivery Network에 표시되지 않으므로 Azure Content Delivery Network는 이에 따라 배달 동작을 변경할 수 없습니다. 정의된 매개 변수 제한은 클라이언트에서 Azure Content Delivery Network로의 요청이 아니라 Azure Content Delivery Network가 원본 서버에 만드는 요청에만 적용됩니다. SAS 매개 변수를 설정할 때 이 구분을 고려해야 합니다. 이러한 고급 기능이 필요하고 옵션 2를 사용하는 경우 Azure Content Delivery Network 보안 토큰에 적절한 제한을 설정합니다.

SAS 매개 변수 이름 설명
시작 Azure Content Delivery Network가 Blob 파일에 액세스하기 시작할 수 있는 시간입니다. 클록 스큐(clock skew)(신호가 구성 요소에 따라 다른 시간에 도착하는 경우)로 인해 자산을 즉시 사용할 수 있게 하려면 15분 이른 시간을 선택합니다.
종료 Azure Content Delivery Network가 더 이상 Blob 파일에 액세스할 수 없는 시간입니다. Azure Content Delivery Network에서 이전에 캐시된 파일은 여전히 액세스할 수 있습니다. 파일 만료 시간을 제어하려면 Azure Content Delivery Network 보안 토큰에서 적절한 만료 시간을 설정하거나 자산을 제거합니다.
허용된 IP 주소 선택 사항. Edgio에서 Azure CDN을 사용하는 경우 이 매개 변수를 Edgio Edge 서버 IP 범위에서 Azure Content Delivery Network에 정의된 범위로 설정할 수 있습니다.
허용되는 프로토콜 계정 SAS를 사용하여 수행한 요청에 허용되는 프로토콜입니다. HTTPS 설정을 사용하는 것이 좋습니다.

다음 단계

SAS에 대한 자세한 내용은 다음 문서를 참조하세요.

토큰 인증을 설정하는 방법에 대한 자세한 내용은 토큰 인증을 사용하여 Azure Content Delivery Network 자산 보안 유지를 참조하세요.