다음을 통해 공유


계정 SAS 만들기

중요

최적의 보안을 위해 Microsoft는 관리 ID와 함께 Microsoft Entra ID를 사용하여 가능한 한 Blob, 큐 및 테이블 데이터에 대한 요청에 권한을 부여하는 것이 좋습니다. Microsoft Entra ID 및 관리 ID를 사용한 권한 부여는 공유 키 권한 부여보다 뛰어난 보안과 사용 편의성을 제공합니다. 자세한 내용은 Microsoft Entra ID권한 부여를 참조하세요. 관리 ID에 대한 자세한 내용은 Azure 리소스관리 ID란?을 참조하세요.

온-프레미스 애플리케이션과 같이 Azure 외부에서 호스트되는 리소스의 경우 Azure Arc를 통해 관리 ID를 사용할 수 있습니다. 예를 들어 Azure Arc 지원 서버에서 실행되는 앱은 관리 ID를 사용하여 Azure 서비스에 연결할 수 있습니다. 자세한 내용은 Azure Arc 지원 서버를 사용하여 Azure 리소스에 대해 인증을 참조하세요.

SAS(공유 액세스 서명)가 사용되는 시나리오의 경우 사용자 위임 SAS를 사용하는 것이 좋습니다. 사용자 위임 SAS는 계정 키 대신 Microsoft Entra 자격 증명으로 보호됩니다. 공유 액세스 서명에 대한 자세한 내용은 사용자 위임 SAS만들기를 참조하세요.

버전 2015-04-05를 기준으로 Azure Storage는 스토리지 계정 수준에서 새 유형의 SAS(공유 액세스 서명) 만들기를 지원합니다. 계정 SAS를 만들어 다음을 수행할 수 있습니다.

  • 서비스별 SAS(예: Get/Set Service PropertiesGet Service Stats 작업)에서 현재 사용할 수 없는 서비스 수준 작업에 대한 액세스를 위임합니다.

  • 스토리지 계정에서 한 번에 둘 이상의 서비스에 대한 액세스를 위임합니다. 예를 들어 계정 SAS를 사용하여 Azure Blob Storage 및 Azure Files의 리소스에 대한 액세스를 위임할 수 있습니다.

  • 개체별 SAS에서 사용할 수 없는 컨테이너, 큐, 테이블 및 파일 공유에 대한 쓰기 및 삭제 작업에 대한 액세스를 위임합니다.

  • 요청을 수락할 IP 주소 또는 IP 주소 범위를 지정합니다.

  • 요청을 수락할 HTTP 프로토콜(HTTPS 또는 HTTP/HTTPS)을 지정합니다.

저장된 액세스 정책은 현재 계정 SAS에 대해 지원되지 않습니다.

주의

공유 액세스 서명은 스토리지 리소스에 대한 권한을 부여하는 키이며 계정 키를 보호하는 것처럼 보호해야 합니다. SAS를 악의적이거나 의도하지 않은 사용으로부터 보호하는 것이 중요합니다. SAS 배포에 재량권을 사용하고 손상된 SAS를 해지하기 위한 계획을 수립합니다. 공유 액세스 서명을 사용하는 작업은 HTTPS 연결을 통해서만 수행되어야 하며 SAS URI는 HTTPS와 같은 보안 연결에서만 배포되어야 합니다.

계정 SAS 권한 부여

스토리지 계정 키를 사용하여 계정 SAS를 보호합니다. 계정 SAS를 만들 때 클라이언트 애플리케이션은 계정 키를 소유해야 합니다.

Microsoft Entra 자격 증명을 사용하여 컨테이너 또는 Blob에 대한 SAS를 보호하려면 사용자 위임 SAS만들 .

계정 SAS URI 생성

계정 SAS URI는 SAS가 액세스를 위임할 리소스에 대한 URI와 SAS 토큰으로 구성됩니다. SAS 토큰은 리소스에 대한 요청에 권한을 부여하는 데 필요한 모든 정보를 포함하는 쿼리 문자열입니다. 액세스에 사용할 수 있는 서비스, 리소스 및 권한과 서명이 유효한 기간을 지정합니다.

계정 SAS 매개 변수 지정

SAS 토큰에 대한 필수 및 선택적 매개 변수는 다음 표에 설명되어 있습니다.

SAS 쿼리 매개 변수 설명
api-version 선택 사항. 계정 SAS URI를 사용하여 만든 요청을 실행하는 데 사용할 스토리지 서비스 버전을 지정합니다. 자세한 내용은 공유 액세스 서명사용하여 권한 부여 요청을 참조하세요.
SignedVersion (sv) 필수. 이 계정 SAS로 수행된 요청에 권한을 부여하는 데 사용할 서명된 스토리지 서비스 버전을 지정합니다. 버전 2015-04-05 이상으로 설정해야 합니다. 자세한 내용은 공유 액세스 서명사용하여 권한 부여 요청을 참조하세요.
SignedServices (ss) 필수. 계정 SAS를 사용하여 액세스할 수 있는 서명된 서비스를 지정합니다. 가능한 값은 다음과 같습니다.

- Blob(b)
- 큐(q)
- Table(t)
- 파일(f)

값을 결합하여 둘 이상의 서비스에 대한 액세스를 제공할 수 있습니다. 예를 들어 ss=bf Blob Storage 및 Azure Files 엔드포인트에 대한 액세스를 지정합니다.
SignedResourceTypes (srt) 필수. 계정 SAS를 사용하여 액세스할 수 있는 서명된 리소스 유형을 지정합니다.

- 서비스(s): 서비스 수준 API에 대한 액세스(예: 서비스 속성 가져오기/설정, 서비스 통계 가져오기, 컨테이너/큐/테이블/공유 나열).
- 컨테이너(c): 컨테이너 수준 API에 대한 액세스(예: 컨테이너 만들기/삭제, 큐 만들기/삭제, 테이블 만들기/삭제, 공유 만들기/삭제, Blob/파일 및 디렉터리 나열).
- 개체(o): Blob, 큐 메시지, 테이블 엔터티 및 파일(예: Blob 배치, 쿼리 엔터티, 메시지 가져오기, 파일 만들기)에 대한 개체 수준 API에 액세스합니다.

값을 결합하여 둘 이상의 리소스 종류에 대한 액세스를 제공할 수 있습니다. 예를 들어 srt=sc 서비스 및 컨테이너 리소스에 대한 액세스를 지정합니다.
SignedPermissions (sp) 필수. 계정 SAS에 대한 서명된 권한을 지정합니다. 사용 권한은 지정된 서명된 리소스 유형과 일치하는 경우에만 유효합니다. 일치하지 않으면 무시됩니다.

- 읽기(r): 서명된 모든 리소스 유형(서비스, 컨테이너 및 개체)에 대해 유효합니다. 지정된 리소스 종류에 대한 읽기 권한을 허용합니다.
- 쓰기(w): 서명된 모든 리소스 유형(서비스, 컨테이너 및 개체)에 대해 유효합니다. 사용자가 리소스를 만들고 업데이트할 수 있도록 지정된 리소스 종류에 대한 쓰기 액세스를 허용합니다.
- 삭제(d): 큐 메시지를 제외한 컨테이너 및 개체 리소스 종류에 유효합니다.
- 버전 삭제(x): Blob의 개체 리소스 유형에만 유효합니다.
- 영구 삭제(y): Blob의 개체 리소스 유형에만 유효합니다.
- 목록(l): 서비스 및 컨테이너 리소스 유형에만 유효합니다.
- 추가(a): 큐 메시지, 테이블 엔터티 및 추가 Blob과 같은 개체 리소스 유형에만 유효합니다.
- 만들기(c): 컨테이너 리소스 종류 및 개체 리소스 유형에 대해 유효합니다. Blob 및 파일. 사용자는 새 리소스를 만들 수 있지만 기존 리소스를 덮어쓰지 않을 수 있습니다.
- 업데이트(u): 큐 메시지 및 테이블 엔터티와 같은 개체 리소스 유형에만 유효합니다.
- Process(p): 다음과 같은 개체 리소스 유형에만 유효합니다. 큐 메시지.
- 태그(t): Blob과 같은 개체 리소스 유형에만 유효합니다. Blob 태그 작업을 허용합니다.
- 필터(f): 다음 개체 리소스 유형에 대해서만 유효합니다. Blob. Blob 태그로 필터링을 허용합니다.
- 불변성 정책 설정(i): 다음 개체 리소스 유형에 대해서만 유효합니다. Blob. Blob에 대한 불변성 정책 및 법적 보존 설정/삭제를 허용합니다.
SignedStart (st) 선택 사항. 허용되는 ISO 8601 UTC 형식 중 하나로 표현된 SAS가 유효해지는 시간입니다. 생략하면 시작 시간은 스토리지 서비스가 요청을 수신하는 시간으로 간주됩니다. 허용되는 UTC 형식에 대한 자세한 내용은 DateTime 값서식 지정을 참조하세요.
SignedExpiry (se) 필수. 공유 액세스 서명이 유효하지 않은 경우 허용되는 ISO 8601 UTC 형식 중 하나로 표현되는 시간입니다. 허용되는 UTC 형식에 대한 자세한 내용은 DateTime 값서식 지정을 참조하세요.
SignedIP (sip) 선택 사항. 요청을 수락할 IP 주소 또는 IP 주소 범위를 지정합니다. 범위를 지정할 때는 범위가 포함됩니다. IPv4 주소만 지원됩니다.

예를 들어 sip=198.51.100.0 또는 sip=198.51.100.10-198.51.100.20입니다.
SignedProtocol (spr) 선택 사항. 계정 SAS를 사용하여 수행한 요청에 허용되는 프로토콜을 지정합니다. 가능한 값은 HTTPS 및 HTTP(https,http) 또는 HTTPS만(https)입니다. 기본값은 https,http입니다.

HTTP는 허용되는 값이 아닙니다.
SignedEncryptionScope (ses) 선택 사항. 요청 콘텐츠를 암호화하는 데 사용할 암호화 범위를 나타냅니다. 이 필드는 버전 2020-12-06 이상에서 지원됩니다.
Signature (sig) 필수. URI의 서명 부분은 공유 액세스 서명으로 이루어진 요청에 권한을 부여하는 데 사용됩니다.

문자열-서명은 요청에 권한을 부여하기 위해 확인해야 하는 필드에서 생성된 고유한 문자열입니다. 서명은 SHA256 알고리즘을 사용하여 문자열 간 및 키를 통해 계산된 다음 Base64 인코딩을 사용하여 인코딩되는 해시 기반 HMAC(메시지 인증 코드)입니다.

signedVersion 필드 지정

signedVersion(sv) 필드에는 공유 액세스 서명의 서비스 버전이 포함됩니다. 이 값은 이 공유 액세스 서명(signature 필드)에서 사용하는 공유 키 권한 부여 버전을 지정합니다. 또한 이 값은 이 공유 액세스 서명을 사용하여 수행되는 요청에 대한 서비스 버전을 지정합니다.

공유 액세스 서명을 통해 요청을 실행할 때 사용되는 버전에 대한 자세한 내용은 Azure Storage 서비스버전 관리를 참조하세요.

이 매개 변수가 공유 액세스 서명으로 수행된 요청의 권한 부여에 미치는 영향에 대한 자세한 내용은 공유 액세스 서명위임 액세스를 참조하세요.

필드 이름 쿼리 매개 변수 설명
signedVersion sv 필수. 버전 2015-04-05 이상에서 지원됩니다. 이 공유 액세스 서명으로 만드는 요청을 승인하고 처리하는 데 사용할 스토리지 서비스 버전입니다. 자세한 내용은 Azure Storage 서비스대한 버전 관리를 참조하세요.

IP 주소 또는 IP 범위 지정

버전 2015-04-05부터 선택적 signedIp(sip) 필드는 요청을 수락할 공용 IP 주소 또는 공용 IP 주소 범위를 지정합니다. 요청이 시작되는 IP 주소가 SAS 토큰에 지정된 IP 주소 또는 주소 범위와 일치하지 않는 경우 요청은 권한이 부여되지 않습니다. IPv4 주소만 지원됩니다.

IP 주소의 범위를 지정하는 경우 범위가 포함됩니다. 예를 들어 SAS에서 sip=198.51.100.0 또는 sip=198.51.100.10-198.51.100.20 지정하면 요청이 해당 IP 주소로 제한됩니다.

다음 표에서는 클라이언트 환경 및 스토리지 계정의 위치에 따라 지정된 시나리오에 대한 SAS 토큰에 signedIp 필드를 포함할지 여부를 설명합니다.

클라이언트 환경 스토리지 계정 위치 권장
Azure에서 실행되는 클라이언트 클라이언트와 동일한 지역에서 이 시나리오에서 클라이언트에 제공된 SAS는 signedIp 필드에 대한 아웃바운드 IP 주소를 포함해서는 안 됩니다. 지정된 아웃바운드 IP 주소가 있는 SAS를 사용하는 동일한 지역 내에서 수행된 요청은 실패합니다.

대신 Azure 가상 네트워크를 사용하여 네트워크 보안 제한을 관리합니다. 동일한 지역 내에서 Azure Storage에 대한 요청은 항상 개인 IP 주소를 통해 수행됩니다. 자세한 내용은 Azure Storage 방화벽 및 가상 네트워크 구성을 참조하세요.
Azure에서 실행되는 클라이언트 클라이언트와 다른 지역에서 이 시나리오에서 클라이언트에 제공되는 SAS에는 공용 IP 주소 또는 signedIp 필드의 주소 범위가 포함될 수 있습니다. SAS를 사용하여 수행한 요청은 지정된 IP 주소 또는 주소 범위에서 발생해야 합니다.
온-프레미스 또는 다른 클라우드 환경에서 실행되는 클라이언트 모든 Azure 지역에서 이 시나리오에서 클라이언트에 제공되는 SAS에는 공용 IP 주소 또는 signedIp 필드의 주소 범위가 포함될 수 있습니다. SAS를 사용하여 수행한 요청은 지정된 IP 주소 또는 주소 범위에서 발생해야 합니다.

요청이 프록시 또는 게이트웨이를 통과하는 경우 해당 프록시 또는 게이트웨이의 공용 아웃바운드 IP 주소를 signedIp 필드에 제공합니다.

HTTP 프로토콜 지정

버전 2015-04-05를 기준으로 선택적 signedProtocol(spr) 필드는 SAS로 수행된 요청에 허용되는 프로토콜을 지정합니다. 가능한 값은 HTTPS 및 HTTP(https,http) 또는 HTTPS만(https)입니다. 기본값은 https,http입니다. HTTP는 허용되는 값이 아닙니다.

암호화 범위 지정

URI의 signedEncryptionScope 필드를 사용하여 클라이언트 애플리케이션에서 사용할 수 있는 암호화 범위를 지정할 수 있습니다. SAS 토큰을 사용하여 BLOB(PUT)을 업로드할 때 지정된 암호화 범위로 서버 쪽 암호화를 적용합니다. GET 및 HEAD는 이전처럼 제한되고 수행되지 않습니다.

다음 표에서는 URI에서 서명된 암호화 범위를 참조하는 방법을 설명합니다.

필드 이름 쿼리 매개 변수 설명
signedEncryptionScope ses 선택 사항. 요청 콘텐츠를 암호화하는 데 사용할 암호화 범위를 나타냅니다.

이 필드는 버전 2020-12-06 이상에서 지원됩니다. 지원되는 버전 앞에 ses 추가하면 서비스에서 오류 응답 코드 403(사용할 수 없음)을 반환합니다.

컨테이너 또는 파일 시스템에 대한 기본 암호화 범위를 설정하는 경우 ses 쿼리 매개 변수는 컨테이너 암호화 정책을 따릅니다. ses 쿼리 매개 변수와 x-ms-default-encryption-scope 헤더 간에 불일치가 있고 x-ms-deny-encryption-scope-override 헤더가 true설정된 경우 서비스는 오류 응답 코드 403(사용할 수 없음)을 반환합니다.

PUT 요청에서 x-ms-encryption-scope 헤더 및 ses 쿼리 매개 변수를 제공하면 서비스가 일치하지 않으면 오류 응답 코드 400(잘못된 요청)을 반환합니다.

서명 문자열 생성

계정 SAS에 대한 서명 문자열을 생성하려면 먼저 요청을 작성하는 필드에서 문자열 간을 생성한 다음 문자열을 UTF-8로 인코딩하고 HMAC-SHA256 알고리즘을 사용하여 서명을 계산합니다.

참고 항목

문자열-서명에 포함된 필드는 URL로 디코딩되어야 합니다.

계정 SAS에 대한 문자열 간 서명을 생성하려면 다음 형식을 사용합니다.

StringToSign = accountname + "\n" +  
    signedpermissions + "\n" +  
    signedservice + "\n" +  
    signedresourcetype + "\n" +  
    signedstart + "\n" +  
    signedexpiry + "\n" +  
    signedIP + "\n" +  
    signedProtocol + "\n" +  
    signedversion + "\n"  
  

버전 2020-12-06은 서명된 암호화 범위 필드에 대한 지원을 추가합니다. 계정 SAS에 대한 문자열 간 서명을 생성하려면 다음 형식을 사용합니다.

StringToSign = accountname + "\n" +  
    signedpermissions + "\n" +  
    signedservice + "\n" +  
    signedresourcetype + "\n" +  
    signedstart + "\n" +  
    signedexpiry + "\n" +  
    signedIP + "\n" +  
    signedProtocol + "\n" +  
    signedversion + "\n" +
    signedEncryptionScope + "\n"  
  

작업별 계정 SAS 권한

다음 섹션의 표에는 각 서비스에 대한 다양한 API와 각 작업에 대해 지원되는 서명된 리소스 종류 및 서명된 사용 권한이 나열되어 있습니다.

Blob 서비스

다음 표에서는 Blob 서비스 작업을 나열하고 해당 작업에 대한 액세스를 위임할 때 지정할 서명된 리소스 종류 및 서명된 권한을 나타냅니다.

연산 서명된 서비스 서명된 리소스 종류 서명된 권한
컨테이너 나열 Blob(b) 서비스(들) 목록(l)
Blob Service 속성 가져오기 Blob(b) 서비스(들) 읽기(r)
Blob 서비스 속성 설정 Blob(b) 서비스(들) 쓰기(w)
Blob Service 통계 가져오기 Blob(b) 서비스(들) 읽기(r)
컨테이너 만들기 Blob(b) 컨테이너(c) 만들기(c) 또는 쓰기(w)
컨테이너 속성 가져오기 Blob(b) 컨테이너(c) 읽기(r)
컨테이너 메타데이터 가져오기 Blob(b) 컨테이너(c) 읽기(r)
컨테이너 메타데이터 설정 Blob(b) 컨테이너(c) 쓰기(w)
임대 컨테이너 Blob(b) 컨테이너(c) 쓰기(w) 또는 삭제(d)1
컨테이너 삭제 Blob(b) 컨테이너(c) 삭제(d)1
컨테이너에서 태그별 Blob 찾기 Blob(b) 컨테이너(c) 필터(f)
Blob 나열 Blob(b) 컨테이너(c) 목록(l)
Blob 배치(새 블록 Blob 만들기) Blob(b) Object(o) 만들기(c) 또는 쓰기(w)
Blob 배치(기존 블록 Blob 덮어쓰기) Blob(b) Object(o) 쓰기(w)
Blob 배치(새 페이지 Blob 만들기) Blob(b) Object(o) 만들기(c) 또는 쓰기(w)
Blob 배치(기존 페이지 Blob 덮어쓰기) Blob(b) Object(o) 쓰기(w)
Blob 가져오기 Blob(b) Object(o) 읽기(r)
Blob 속성 가져오기 Blob(b) Object(o) 읽기(r)
Blob 속성 설정 Blob(b) Object(o) 쓰기(w)
Blob 메타데이터 가져오기 Blob(b) Object(o) 읽기(r)
Blob 메타데이터 설정 Blob(b) Object(o) 쓰기(w)
Blob 태그 가져오기 Blob(b) Object(o) 태그(t)
Blob 태그 설정 Blob(b) Object(o) 태그(t)
태그별 Blob 찾기 Blob(b) Object(o) 필터(f)
Blob 삭제 Blob(b) Object(o) 삭제(d)1
Blob 버전 삭제 Blob(b) Object(o) 버전 삭제(x)2
스냅샷/버전을 영구적으로 삭제 Blob(b) Object(o) 영구 삭제(y)3
Blob 임대 Blob(b) Object(o) 쓰기(w) 또는 삭제(d)1
Blob 스냅샷 Blob(b) Object(o) 만들기(c) 또는 쓰기(w)
Blob 복사(대상은 새 Blob) Blob(b) Object(o) 만들기(c) 또는 쓰기(w)
Blob 복사(대상은 기존 Blob) Blob(b) Object(o) 쓰기(w)
증분 복사 Blob(b) Object(o) 만들기(c) 또는 쓰기(w)
Blob 복사 중단 Blob(b) Object(o) 쓰기(w)
블록 배치 Blob(b) Object(o) 쓰기(w)
블록 목록 배치(새 Blob 만들기) Blob(b) Object(o) 쓰기(w)
블록 목록 배치(기존 Blob 업데이트) Blob(b) Object(o) 쓰기(w)
블록 목록 가져오기 Blob(b) Object(o) 읽기(r)
페이지 배치 Blob(b) Object(o) 쓰기(w)
페이지 범위 가져오기 Blob(b) Object(o) 읽기(r)
추가 블록 Blob(b) Object(o) 추가(a) 또는 쓰기(w)
페이지 지우기 Blob(b) Object(o) 쓰기(w)

1Delete 권한을 사용하면 버전 2017-07-29 이상이 있는 Blob 또는 컨테이너에서 임대를 중단할 수 있습니다.
2Delete Version 권한은 버전 2019-12-12 이상의 Blob 버전을 삭제할 수 있습니다.
3Permanent Delete 권한을 사용하면 버전 2020-02-10 이상에서 Blob 스냅샷 또는 버전을 영구적으로 삭제할 수 있습니다.

큐 서비스

다음 표에서는 큐 서비스 작업을 나열하고 해당 작업에 대한 액세스를 위임할 때 지정할 서명된 리소스 종류 및 서명된 권한을 나타냅니다.

연산 서명된 서비스 서명된 리소스 종류 서명된 권한
큐 서비스 속성 가져오기 큐(q) 서비스(들) 읽기(r)
큐 서비스 속성 설정 큐(q) 서비스(들) 쓰기(w)
큐 나열 큐(q) 서비스(들) 목록(l)
큐 서비스 통계 가져오기 큐(q) 서비스(들) 읽기(r)
큐 만들기 큐(q) 컨테이너(c) 만들기(c) 또는 쓰기(w)
큐 삭제 큐(q) 컨테이너(c) 삭제(d)
큐 메타데이터 가져오기 큐(q) 컨테이너(c) 읽기(r)
큐 메타데이터 설정 큐(q) 컨테이너(c) 쓰기(w)
메시지 배치 큐(q) Object(o) 추가(a)
메시지 가져오기 큐(q) Object(o) 프로세스(p)
메시지 피킹 큐(q) Object(o) 읽기(r)
메시지 삭제 큐(q) Object(o) 프로세스(p)
메시지 지우기 큐(q) Object(o) 삭제(d)
메시지 업데이트 큐(q) Object(o) 업데이트(u)

Table Service

다음 표에서는 Table service 작업을 나열하고 해당 작업에 대한 액세스를 위임할 때 지정할 서명된 리소스 종류 및 서명된 권한을 나타냅니다.

연산 서명된 서비스 서명된 리소스 종류 서명된 권한
Table Service 속성 가져오기 테이블(t) 서비스(들) 읽기(r)
Table Service 속성 설정 테이블(t) 서비스(들) 쓰기(w)
Table Service 통계 가져오기 테이블(t) 서비스(들) 읽기(r)
쿼리 테이블 테이블(t) 컨테이너(c) 목록(l)
테이블 만들기 테이블(t) 컨테이너(c) 만들기(c) 또는 쓰기(w)
테이블 삭제 테이블(t) 컨테이너(c) 삭제(d)
엔터티 쿼리 테이블(t) Object(o) 읽기(r)
엔터티 삽입 테이블(t) Object(o) 추가(a)
엔터티 삽입 또는 병합 테이블(t) Object(o) 추가 (a) 및 업데이트 (u)1
엔터티 삽입 또는 바꾸기 테이블(t) Object(o) 추가 (a) 및 업데이트 (u)1
엔터티 업데이트 테이블(t) Object(o) 업데이트(u)
엔터티 병합 테이블(t) Object(o) 업데이트(u)
엔터티 삭제 테이블(t) Object(o) 삭제(d)

1개 테이블 서비스의 upsert 작업에는 추가 및 업데이트 권한이 필요합니다.

파일 서비스

다음 표에서는 파일 서비스 작업을 나열하고 해당 작업에 대한 액세스를 위임할 때 지정할 서명된 리소스 종류 및 서명된 권한을 나타냅니다.

연산 서명된 서비스 서명된 리소스 종류 서명된 권한
공유 나열 파일(f) 서비스(들) 목록(l)
파일 서비스 속성 가져오기 파일(f) 서비스(들) 읽기(r)
파일 서비스 속성 설정 파일(f) 서비스(들) 쓰기(w)
공유 통계 가져오기 파일(f) 컨테이너(c) 읽기(r)
공유 만들기 파일(f) 컨테이너(c) 만들기(c) 또는 쓰기(w)
스냅샷 공유 파일(f) 컨테이너(c) 만들기(c) 또는 쓰기(w)
공유 속성 가져오기 파일(f) 컨테이너(c) 읽기(r)
공유 속성 설정 파일(f) 컨테이너(c) 쓰기(w)
공유 메타데이터 가져오기 파일(f) 컨테이너(c) 읽기(r)
공유 메타데이터 설정 파일(f) 컨테이너(c) 쓰기(w)
공유 삭제 파일(f) 컨테이너(c) 삭제(d)
디렉터리 및 파일 나열 파일(f) 컨테이너(c) 목록(l)
디렉터리 만들기 파일(f) Object(o) 만들기(c) 또는 쓰기(w)
디렉터리 속성 가져오기 파일(f) Object(o) 읽기(r)
디렉터리 메타데이터 가져오기 파일(f) Object(o) 읽기(r)
디렉터리 메타데이터 설정 파일(f) Object(o) 쓰기(w)
디렉터리 삭제 파일(f) Object(o) 삭제(d)
파일 만들기(새로 만들기) 파일(f) Object(o) 만들기(c) 또는 쓰기(w)
파일 만들기(기존 항목 덮어쓰기) 파일(f) Object(o) 쓰기(w)
파일 가져오기 파일(f) Object(o) 읽기(r)
파일 속성 가져오기 파일(f) Object(o) 읽기(r)
파일 메타데이터 가져오기 파일(f) Object(o) 읽기(r)
파일 메타데이터 설정 파일(f) Object(o) 쓰기(w)
파일 삭제 파일(f) Object(o) 삭제(d)
파일 이름 바꾸기 파일(f) Object(o) 삭제(d) 또는 쓰기(w)
배치 범위 파일(f) Object(o) 쓰기(w)
목록 범위 파일(f) Object(o) 읽기(r)
파일 복사 중단 파일(f) Object(o) 쓰기(w)
파일 복사 파일(f) Object(o) 쓰기(w)
범위 지우기 파일(f) Object(o) 쓰기(w)

계정 SAS URI 예제

다음 예제에서는 계정 SAS 토큰이 추가된 Blob Service URI를 보여 줍니다. 계정 SAS 토큰은 서비스, 컨테이너 및 개체에 대한 권한을 제공합니다. 테이블은 URI의 각 부분을 세분화합니다.

https://blobsamples.blob.core.windows.net/?sv=2022-11-02&ss=b&srt=sco&sp=rwlc&se=2023-05-24T09:51:36Z&st=2023-05-24T01:51:36Z&spr=https&sig=<signature>
이름 SAS 부분 설명
리소스 URI https://myaccount.blob.core.windows.net/?restype=service&comp=properties 서비스 속성을 가져오거나(GET을 사용하여 호출할 때) 서비스 속성을 설정하는 매개 변수가 있는 서비스 엔드포인트입니다(SET를 사용하여 호출되는 경우). 서명된 서비스 필드(ss)의 값에 따라 Blob Storage 또는 Azure Files에서 이 SAS를 사용할 수 있습니다.
구분 기호 ? 쿼리 문자열 앞에 오는 구분 기호입니다. 구분 기호는 SAS 토큰의 일부가 아닙니다.
스토리지 서비스 버전 sv=2022-11-02 Azure Storage 서비스 버전 2012-02-12 이상의 경우 이 매개 변수는 사용할 버전을 나타냅니다.
서비스 ss=b SAS는 Blob 서비스에 적용됩니다.
리소스 유형 srt=sco SAS는 서비스 수준, 컨테이너 수준 및 개체 수준 작업에 적용됩니다.
사용 권한 sp=rwlc 권한은 읽기, 쓰기, 나열 및 만들기 작업에 대한 액세스 권한을 부여합니다.
시작 시간 st=2019-08-01T22%3A18%3A26Z UTC 시간으로 지정됩니다. SAS를 즉시 유효하게 하려면 시작 시간을 생략합니다.
만료 시간 se=2019-08-10T02%3A23%3A26Z UTC 시간으로 지정됩니다.
프로토콜 spr=https HTTPS를 사용하는 요청만 허용됩니다.
서명 sig=<signature> Blob에 대한 액세스 권한을 부여하는 데 사용됩니다. 서명은 SHA256 알고리즘을 사용하여 문자열 간 및 키를 통해 계산된 다음 Base64 인코딩을 사용하여 인코딩되는 HMAC입니다.

권한은 서비스 수준으로 제한되므로 이 SAS를 사용하여 액세스할 수 있는 작업은 Blob Service 속성 가져오기(읽기) 및 Blob Service 속성 설정(쓰기). 그러나 다른 리소스 URI를 사용하면 동일한 SAS 토큰을 사용하여 Blob Service 통계 가져오기(읽기)대한 액세스를 위임할 수도 있습니다.

참조 항목