공유 액세스 서명 이해
스토리지 계정 키는 외부 타사 애플리케이션과 공유하지 않는 것이 가장 좋습니다. 이러한 앱에서 데이터에 액세스해야 하는 경우 스토리지 계정 키를 사용하지 않고도 연결을 보호해야 합니다.
신뢰할 수 없는 클라이언트의 경우 SAS(공유 액세스 서명)를 사용합니다. SAS는 URI에 연결할 수 있는 보안 토큰이 포함된 문자열입니다. SAS를 사용하여 스토리지 개체에 대한 액세스를 위임하고 액세스에 대한 권한 및 시간 범위와 같은 제약 조건을 지정할 수 있습니다.
예를 들어 Blob 스토리지의 파일 시스템에 사진을 업로드할 수 있도록 SAS 토큰을 고객에게 제공할 수 있습니다. 이와 별도로 해당 사진을 읽을 수 있는 웹앱 권한을 부여할 수도 있습니다. 두 경우 모두 애플리케이션에서 작업을 수행하는 데 필요한 액세스만 허용합니다.
공유 액세스 서명 유형
서비스 수준 SAS를 사용하여 스토리지 계정의 특정 리소스에 대한 액세스를 허용할 수 있습니다. 예를 들어 앱에서 파일 시스템의 파일 목록을 검색하거나 파일을 다운로드할 수 있도록 허용하려면 이 유형의 SAS를 사용합니다.
계정 수준 SAS를 사용하여 서비스 수준 SAS를 통해 허용할 수 있는 모든 항목과 추가 리소스 및 기능에 대한 액세스를 허용할 수 있습니다. 예를 들어 계정 수준 SAS를 사용하여 파일 시스템을 만들 수 있습니다.
일반적으로 사용자가 스토리지 계정에서 자신의 데이터를 읽고 쓰는 서비스에 SAS를 사용합니다. 사용자 데이터를 저장하는 계정에는 다음과 같은 두 가지 일반적인 설계가 있습니다.
- 클라이언트에서 인증을 수행하는 프런트 엔드 프록시 서비스를 통해 데이터를 업로드하고 다운로드합니다. 이 프런트 엔드 프록시 서비스에는 비즈니스 규칙의 유효성 검사를 허용하는 이점이 있습니다. 그러나 서비스에서 대량의 데이터 또는 큰 볼륨의 트랜잭션을 처리해야 하는 경우 수요에 맞게 이 서비스의 크기를 조정하는 것이 복잡하거나 비용이 많이 들 수 있습니다.
- 간단한 서비스에서 필요에 따라 클라이언트를 인증합니다. 그런 다음 SAS를 생성합니다. SAS를 받은 후에는 클라이언트에서 스토리지 계정 리소스에 직접 액세스할 수 있습니다. SAS는 클라이언트의 권한과 액세스 간격을 정의합니다. SAS를 사용하면 프런트 엔드 프록시 서비스를 통해 모든 데이터를 라우팅할 필요성이 줄어듭니다.