2013-06-03 5 views
3

이제 Azure를 사용하기 시작했으며 일부 보안 문제를 처리하려고합니다.Azure 공유 액세스 서명을 통해 액세스 제한

우리는 주로 자바 스크립트 인 웹 앱을 개발 중입니다. 우리는 blob 저장소/CDN에 자바 스크립트를 저장하려고합니다. 그러나 우리가 그것을 공개하기 전에는 우리 사무실에 접근하기를 원합니다. Azure BLOB에 대한 방화벽 규칙을 만들 수 없으므로 사무실 IP에 대한 액세스를 제한하고 있습니다.

공유 액세스 서명을 읽은 것부터 시작하는 방법 일 수 있습니다. 누군가 이것이 이것이 올바른 방향인지 확인할 수 있습니까? 또한 누군가가 이러한 컨테이너에 대한 액세스를 제한하기 위해 어떤 메커니즘을 사용해야하는지 지적 할 수 있습니까? 즉 토큰을 devs에만 한정하는 방법입니다.

나는 이것이 약하다는 것을 알지만, 나는 MS가 순전히 * nix 세계에서 오는 일을 어떻게하는지 전혀 모른다. 모든 자습서에는 SAS를 사용하여 물건에 액세스하는 방법을 설명하는 몇 줄의 코드가 있지만 처음에는 정책을 설정하는 데별로 도움이되지 않습니다. 또한이 접근 방식은 CDN에서 작동합니까?

답변

3

공유 액세스 서명은 해시와 함께 링크에서 유효 시간/유효 시간을 포함하는 쿼리 문자열로 구현됩니다.

모든 언어로 모든 blob에 SAS를 만들 수 있습니다. 예를 들어 Java tutorial이 있습니다. 이 시점에서 결과 링크를 웹 페이지에 삽입 할 수 있습니다. 일반 URL처럼 작동해야합니다.

CDN은 공개 blob에만 사용되므로 SAS는 CDN에 대해 작동하지 않습니다.

+0

튜토리얼이 정말 도움이되었습니다. 감사합니다. 이제 SAS 토큰을 검색 할 수 있도록 'blob 저장소'에 저장된 자산을 필요로하는 앱용 서비스를 만들어야한다고 가정합니다. 저장소에 있어야 할 필요가 없기 때문에 방화벽이나 자격 증명을 사용하여 액세스를 제한 할 수 있습니다. 이 부분은 보통 어떻게 이루어 집니까? 또한 유효 기간이없는 SAS 토큰을 만드는 방법이 있는지 알고 있습니까? 지금까지 도움을 주셔서 감사합니다. – BillR

+0

앱이 blob을 검색하는'source '인 경우 SAS가 필요하지 않습니다. 단순히 저장소 이름 + 키와 연결됩니다. 실제로 저장소 REST API를 래핑하는 모든 단일 언어 SDK는 네임 스페이스 + 키로 구성된 연결 문자열을 사용합니다 (이 키는 개인에게 제공되므로 결코 포기할 수 없으며 항상 다시 생성 할 수 있습니다. 그것을 버리지 마라). 유효 기간이 만료되지 않는 SAS의 경우 '끝'날짜를 1/1/2030과 같이 설정하고 Y2.3K 버그가 없기를 바랍니다. :) –

+0

당신이 누군가에게 blob URI를 제공하고 blob이 * private * 일 때만 SAS가 필요합니다. 예를 들어 월별 명세서 PDF를 BLOB 저장소에 저장하는 경우 효과적입니다. 사용자가 자신의 페이지를보고 있고 월별 명세서를보고 싶어합니다. VM에 blob을 다운로드하고 사용자의 브라우저로 스트리밍 할 수 있습니다. 또는 ...예를 들어 10 분 동안 유효한 pdf 용 SAS를 생성하고 ''태그에 URI를 삽입 한 다음 사용자가 검색하도록 클릭하고 (대신 VM의 대역폭을 사용하지 말고 스토리지 서비스로 곧장 가게합니다). –

4

MSDN의 "Overview of the Windows CDN"페이지에서 공개적으로 사용 가능한 BLOB 만 Windows Azure CDN으로 캐시 할 수 있다는 것을 알고 있습니다. 익명 액세스를 위해 Blob을 공개적으로 사용할 수있게하려면 컨테이너를 public으로 지정해야합니다. 이렇게하면 해당 컨테이너 내의 모든 blob을 익명 읽기 액세스에 사용할 수 있습니다.

컨테이너에 대한 공용 액세스가 읽기 액세스를 사용하도록 설정된 경우 BLOB 컨테이너에 대한 URL을 사용하는 익명 사용자는 해당 컨테이너의 모든 BLOB를 읽을 수 있습니다. READ 액세스는 자동으로 컨테이너에 대한 WRITE, DELETE 또는 LIST 액세스를 제공하지 않습니다.

BLOB 컨테이너가 공용 인 경우 공유 액세스 서명 또는 저장된 액세스 정책을 만들어도 해당 공용 액세스가 금지되지는 않습니다. 공유 액세스 서명 또는 저장된 액세스 정책을 사용하여 컨테이너에 대한 액세스를 제어하려면 공용 액세스를 OFF로 설정해야합니다. 이 내용은 "Controlling Access to Windows Azure Blob Containers with Java"및 MSDN의 다른 곳에서 설명합니다.

관련 문제