공유 접근 시그니처(SAS, Shared Access Signature)는
Azure Storage 리소스에 대한 제한적이고 시간 제한된 액세스를 안전하게 부여하는 메커니즘입니다.
이를 통해 전체 계정 키를 노출하지 않고도 특정 리소스에 대한 세분화된 권한을 설정할 수 있습니다.
🔐 SAS의 주요 유형
- 계정 SAS (Account SAS)
스토리지 계정 전체에 대한 액세스를 부여합니다. Blob, 파일, 큐, 테이블 등 다양한 서비스에 대한 권한을 설정할 수 있습니다. - 서비스 SAS (Service SAS)
특정 서비스(예: Blob 컨테이너, 파일 공유 등)에 대한 액세스를 제공합니다. 예를 들어, 특정 컨테이너 내의 파일에만 접근하도록 제한할 수 있습니다. - 사용자 위임 SAS (User Delegation SAS)
Azure Active Directory(AAD) 자격 증명을 기반으로 생성되며, 보안성이 가장 높습니다. AAD 토큰을 사용하여 SAS를 생성하므로, 계정 키를 사용하지 않아도 됩니다.
⚙️ SAS 토큰 구성 요소
- 리소스 URI: 액세스 대상 리소스의 경로
- 권한: 읽기, 쓰기, 삭제 등 허용할 작업
- 시작 및 만료 시간: 토큰의 유효 기간
- IP 주소 범위: 허용할 클라이언트 IP 범위
- 프로토콜 제한: HTTP 또는 HTTPS로 제한 가능
- 서명: 지정된 매개변수를 기반으로 생성된 해시값
🛡️ 보안 모범 사례
- 최소 권한 원칙 적용 필요한 최소한의 권한만 부여
- 짧은 만료 시간 설정 토큰 유효 기간을 가능한 짧게 설정
- IP 및 프로토콜 제한 사용 특정 IP 범위와 HTTPS 프로토콜로 제한
- 사용자 위임 SAS 권장 가능한 경우 AAD 기반의 사용자 위임 SAS 사용
🧪 SAS 생성 예시 (Azure CLI)
az storage blob generate-sas \
--account-name <계정명> \
--container-name <컨테이너명> \
--name <파일명> \
--permissions r \
--expiry 2025-04-14T00:00Z \
--https-only \
--output tsv
이 명령은 지정된 Blob 파일에 대해 읽기 권한을 부여하는 SAS 토큰을 생성합다.
🧩 활용 사례
- *일시적인 파일 공유: 특정 사용자에게 일정 기간 동안 파일 다운로드 권한 부여
- *제한된 업로드 권한 제공: 외부 사용자에게 특정 컨테이너에 대한 업로드 권한 부여
- *자동화된 백업 및 복원: 스크립트나 애플리케이션에서 SAS를 사용하여 스토리지 리소스 접근
관련 문제 예시
Question :
여러분의 스토리지 계정 키를 주지 않고 누군가에게
여러분의 Azure 스토리지 계정 내 한 컨테이너의 접근 권한을 주려면 어떻게 해야 할까요?
'인공지능,프로그래밍 > MS Azure' 카테고리의 다른 글
Azure 104 연습 문제 8 (0) | 2025.04.14 |
---|---|
Azure 104 연습 문제 7 (1) | 2025.04.14 |
Azure 104 연습 문제 6 (0) | 2025.04.13 |
Azure 104 연습 문제 5 (0) | 2025.04.13 |
Azure 104 연습 문제 4 (2) | 2025.04.12 |