컨테이너 ACL 설정
Set Container ACL
작업은 지정된 컨테이너에 대한 권한을 설정합니다. 권한은 컨테이너의 Blob에 공개적으로 액세스할 수 있는지 여부를 나타냅니다.
버전 2009-09-19를 기준으로 컨테이너 권한은 컨테이너 액세스를 관리하기 위한 다음 옵션을 제공합니다.
전체 공용 읽기 권한: 컨테이너 및 Blob 데이터는 익명 요청을 통해 읽을 수 있습니다. 클라이언트는 익명 요청을 통해 컨테이너 내의 Blob을 열거할 수 있지만 스토리지 계정 내에서 컨테이너를 열거할 수는 없습니다.
blob에 대한 공용 읽기 권한만 : 이 컨테이너 내의 Blob 데이터는 익명 요청을 통해 읽을 수 있지만 컨테이너 데이터는 사용할 수 없습니다. 클라이언트는 익명 요청을 통해 컨테이너 내의 Blob을 열거할 수 없습니다.
공용 읽기 권한 없음: 컨테이너 및 Blob 데이터는 계정 소유자만 읽을 수 있습니다.
Set Container ACL
공유 액세스 서명에 사용할 저장된 액세스 정책도 설정합니다. 자세한 내용은 저장된 액세스 정책정의를 참조하세요.
공유 액세스 서명을 통한 액세스와 마찬가지로 컨테이너에 대한 모든 공용 액세스는 익명입니다.
요청
Set Container ACL
요청은 다음과 같이 생성될 수 있습니다. HTTPS를 사용하는 것이 좋습니다.
myaccount 스토리지 계정 이름으로 바꿉니다.
메서드 | 요청 URI | HTTP 버전 |
---|---|---|
PUT |
https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl |
HTTP/1.1 |
에뮬레이트된 스토리지 서비스 요청
에뮬레이트된 스토리지 서비스에 대해 요청할 때 에뮬레이터 호스트 이름 및 Blob 서비스 포트를 127.0.0.1:10000
지정한 다음 에뮬레이트된 스토리지 계정 이름을 지정합니다.
메서드 | 요청 URI | HTTP 버전 |
---|---|---|
PUT |
http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl |
HTTP/1.1 |
자세한 내용은 로컬 Azure Storage 개발Azurite 에뮬레이터를 사용합니다.
URI 매개 변수
요청 URI에서 다음 추가 매개 변수를 지정할 수 있습니다.
매개 변수 | 묘사 |
---|---|
timeout |
선택적.
timeout 매개 변수는 초 단위로 표현됩니다. 자세한 내용은 Blob Service 작업대한 시간 제한 설정을 참조하세요. |
요청 헤더
필수 및 선택적 요청 헤더는 다음 표에 설명되어 있습니다.
요청 헤더 | 묘사 |
---|---|
Authorization |
필수. 권한 부여 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage대한 요청 권한 부여를 참조하세요. |
Date 또는 x-ms-date |
필수. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage대한 요청 권한 부여를 참조하세요. |
x-ms-version |
선택적. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스대한 |
x-ms-blob-public-access |
선택적. 컨테이너의 데이터에 공개적으로 액세스할 수 있는지 여부와 액세스 수준을 지정합니다. 가능한 값은 다음과 같습니다. - container : 컨테이너 및 Blob 데이터에 대한 전체 공용 읽기 권한을 지정합니다. 클라이언트는 익명 요청을 통해 컨테이너 내의 Blob을 열거할 수 있지만 스토리지 계정 내에서 컨테이너를 열거할 수는 없습니다.- blob: Blob에 대한 공용 읽기 액세스를 지정합니다. 이 컨테이너 내의 Blob 데이터는 익명 요청을 통해 읽을 수 있지만 컨테이너 데이터는 사용할 수 없습니다. 클라이언트는 익명 요청을 통해 컨테이너 내의 Blob을 열거할 수 없습니다.이 헤더가 요청에 포함되지 않은 경우 컨테이너 데이터는 계정 소유자에게 비공개입니다. Azure Premium Storage 계정의 컨테이너에 대한 공용 액세스 설정은 허용되지 않습니다. |
x-ms-lease-id: <ID> |
선택적 버전 2012-02-12 이상. 지정된 경우 컨테이너의 임대가 활성 상태이고 이 ID와 일치하는 경우에만 Set Container ACL 성공합니다. 활성 임대가 없거나 ID가 일치하지 않으면 412(사전 조건 실패)가 반환됩니다. |
x-ms-client-request-id |
선택적. 로깅이 구성될 때 로그에 기록되는 1kibibyte(KiB) 문자 제한으로 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Blob Storage |
또한 이 작업은 지정된 조건이 충족되는 경우에만 조건부 헤더를 사용하여 작업을 실행할 수 있도록 지원합니다. 자세한 내용은 Blob Service 작업대한 조건부 헤더 지정을 참조하세요.
요청 본문
저장된 액세스 정책을 지정하려면 Set Container ACL
작업에 대한 요청 본문에 고유 식별자 및 액세스 정책을 제공합니다.
SignedIdentifier
요소에는 Id
요소에 지정된 고유 식별자와 AccessPolicy
요소에 지정된 액세스 정책의 세부 정보가 포함됩니다. 고유 식별자의 최대 길이는 64자입니다.
Start
및 Expiry
필드는 UTC 시간으로 표현되어야 하며 유효한 ISO 8061 형식을 준수해야 합니다. 지원되는 ISO 8061 형식은 다음과 같습니다.
YYYY-MM-DD
YYYY-MM-DDThh:mmTZD
YYYY-MM-DDThh:mm:ssTZD
YYYY-MM-DDThh:mm:ss.fffffffTZD
이러한 형식의 날짜 부분에 대해 YYYY
4자리 연도 표현이고, MM
두 자리 월 표현이며, DD
두 자리의 일 표현입니다. 시간 부분의 경우 hh
24시간 표기법의 시간 표현이고, mm
두 자리 분 표현이고, ss
두 자리 두 번째 표현이며, fffffff
7자리 밀리초 표현입니다. 시간 지정자 T
문자열의 날짜 및 시간 부분을 구분하고 표준 시간대 지정자를 TZD
표준 시간대를 지정합니다.
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-character-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
샘플 요청
Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1
Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 00:42:49 GMT
x-ms-blob-public-access: container
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=
Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
<AccessPolicy>
<Start>2009-09-28T08:49:37.0000000Z</Start>
<Expiry>2009-09-29T08:49:37.0000000Z</Expiry>
<Permission>rwd</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
응답
응답에는 HTTP 상태 코드와 응답 헤더 집합이 포함됩니다.
상태 코드
작업이 성공하면 상태 코드 200(확인)이 반환됩니다.
상태 코드에 대한 자세한 내용은 상태 및 오류 코드참조하세요.
응답 헤더
이 작업에 대한 응답에는 다음 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더도 포함될 수 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양준수합니다.
응답 헤더 | 묘사 |
---|---|
ETag |
컨테이너에 대한 ETag입니다. 요청 버전이 2011-08-18 이상인 경우 ETag 값은 따옴표로 묶습니다. |
Last-Modified |
컨테이너가 마지막으로 수정된 날짜와 시간을 반환합니다. 날짜 형식은 RFC 1123을 따릅니다. 자세한 내용은 헤더날짜/시간 값을 나타냅니다. 컨테이너 또는 해당 속성 또는 메타데이터를 수정하는 모든 작업은 컨테이너의 사용 권한 설정을 포함하여 마지막으로 수정된 시간을 업데이트합니다. Blob에 대한 작업은 컨테이너의 마지막으로 수정된 시간에 영향을 주지 않습니다. |
x-ms-request-id |
만들어진 요청을 고유하게 식별하며 요청 문제를 해결하는 데 사용할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요. |
x-ms-version |
요청을 실행하는 데 사용된 Blob 서비스 버전을 나타냅니다. 이 헤더는 버전 2009-09-19 이상에 대해 수행된 요청에 대해 반환됩니다. |
Date |
서비스에서 생성되는 UTC 날짜/시간 값으로, 응답이 시작된 시간을 나타냅니다. |
x-ms-client-request-id |
요청 및 해당 응답 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값은 요청에 있고 값에 표시되는 ASCII 문자가 1,024자 이하인 경우 x-ms-client-request-id 헤더의 값과 같습니다. 요청에 x-ms-client-request-id 헤더가 없으면 응답에 표시되지 않습니다. |
샘플 응답
Response Status:
HTTP/1.1 200 OK
Response Headers:
Transfer-Encoding: chunked
Date: Sun, 25 Sep 2011 22:42:55 GMT
ETag: "0x8CB171613397EAB"
Last-Modified: Sun, 25 Sep 2011 22:42:55 GMT
x-ms-version: 2011-08-18
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
권한 부여
Azure Storage에서 데이터 액세스 작업을 호출할 때 권한 부여가 필요합니다. 아래 설명된 대로 Set Container ACL
작업에 권한을 부여할 수 있습니다.
중요하다
Microsoft는 관리 ID와 함께 Microsoft Entra ID를 사용하여 Azure Storage에 대한 요청을 승인하는 것이 좋습니다. Microsoft Entra ID는 공유 키 권한 부여에 비해 뛰어난 보안 및 사용 편의성을 제공합니다.
-
microsoft Entra ID(권장)
-
공유 키
Azure Storage는 Microsoft Entra ID를 사용하여 Blob 데이터에 대한 요청을 승인하도록 지원합니다. Microsoft Entra ID를 사용하면 Azure RBAC(Azure 역할 기반 액세스 제어)를 사용하여 보안 주체에 권한을 부여할 수 있습니다. 보안 주체는 사용자, 그룹, 애플리케이션 서비스 주체 또는 Azure 관리 ID일 수 있습니다. 보안 주체는 OAuth 2.0 토큰을 반환하기 위해 Microsoft Entra ID에 의해 인증됩니다. 그런 다음 토큰을 사용하여 Blob 서비스에 대한 요청에 권한을 부여할 수 있습니다.
Microsoft Entra ID를 사용한 권한 부여에 대한 자세한 내용은 Microsoft Entra ID사용하여 Blob에 대한 액세스 권한 부여를 참조하세요.
권한을
아래에는 Microsoft Entra 사용자, 그룹, 관리 ID 또는 서비스 주체가 Set Container ACL
작업을 호출하는 데 필요한 RBAC 작업과 이 작업을 포함하는 최소 권한의 기본 제공 Azure RBAC 역할이 나와 있습니다.
- Azure RBAC 작업
: microsoft.Storage/storageAccounts/blobServices/containers/setAcl/action - 최소 권한 기본 제공 역할:Storage Blob 데이터 소유자
Azure RBAC를 사용하여 역할을 할당하는 방법에 대한 자세한 내용은 Blob 데이터액세스하기 위한 Azure 역할 할당을 참조하세요.
발언
컨테이너에 대한 사용 권한을 설정하면 기존 사용 권한이 바뀝니다. 컨테이너의 권한을 업데이트하려면 컨테이너 ACL 가져오기 호출하여 컨테이너와 연결된 모든 액세스 정책을 가져옵니다. 변경하려는 액세스 정책을 수정한 다음 전체 데이터 집합으로 Set Container ACL
호출하여 업데이트를 수행합니다.
컨테이너 데이터 익명 공용 액세스 사용
컨테이너 데이터에 익명 공용 읽기 액세스를 사용하도록 설정하려면 x-ms-blob-public-access
헤더가 container
또는 blob
설정된 Set Container ACL
호출합니다. 익명 액세스를 사용하지 않도록 설정하려면 x-ms-blob-public-access
헤더를 지정하지 않고 Set Container ACL
호출합니다.
x-ms-blob-public-access
blob
설정하면 클라이언트는 익명으로 다음 작업을 호출할 수 있습니다.
Blob 가져오기
blob 속성 가져오기
blob 메타데이터 가져오기
블록 목록 가져오기(커밋된 블록 목록에만 해당)
페이지 범위 가져오기
x-ms-blob-public-access
container
설정하면 클라이언트는 익명으로 다음 작업을 호출할 수 있습니다.
이전 섹션에 나열된 Blob 액세스 작업입니다.
컨테이너 속성 가져오기
컨테이너 메타데이터 가져오기
Blob 나열
컨테이너 수준 액세스 정책 설정
저장된 액세스 정책은 연결된 공유 액세스 서명에 대한 시작 시간, 만료 시간 및 권한을 지정할 수 있습니다. 컨테이너 또는 Blob 리소스에 대한 액세스를 제어하는 방법에 따라 저장된 액세스 정책 내에서 이러한 모든 매개 변수를 지정하고 공유 액세스 서명에 대한 URL에서 생략할 수 있습니다. 이렇게 하면 연결된 서명의 동작을 언제든지 수정하거나 해지할 수 있습니다. 또는 저장된 액세스 정책 내에서 하나 이상의 액세스 정책 매개 변수를 지정하고 다른 하나는 URL에 지정할 수 있습니다. 마지막으로 URL의 모든 매개 변수를 지정할 수 있습니다. 이 경우 저장된 액세스 정책을 사용하여 서명을 해지할 수 있지만 해당 동작을 수정할 수는 없습니다. 자세한 내용은 저장된 액세스 정책정의를 참조하세요.
공유 액세스 서명과 저장된 액세스 정책에는 서명에 권한을 부여하는 데 필요한 모든 필드가 포함되어야 합니다. 필요한 필드가 없으면 요청이 실패합니다. 마찬가지로 공유 액세스 서명 URL과 저장된 액세스 정책 모두에 필드를 지정하면 요청이 상태 코드 400(잘못된 요청)으로 실패합니다.
최대 5개의 개별 액세스 정책을 언제든지 단일 컨테이너에 설정할 수 있습니다. 요청 본문에 5개 이상의 액세스 정책이 전달되면 서비스는 상태 코드 400(잘못된 요청)을 반환합니다.
컨테이너 데이터를 익명 읽기 액세스에 사용할 수 있는지 여부에 관계없이 컨테이너 또는 Blob에서 공유 액세스 서명을 발급할 수 있습니다. 공유 액세스 서명은 리소스에 액세스할 수 있는 방법, 시기 및 대상을 보다 자세히 제어할 수 있도록 합니다.
메모
컨테이너에 저장된 액세스 정책을 설정하는 경우 정책이 적용되는 데 최대 30초가 걸릴 수 있습니다. 이 간격 동안 정책이 활성화될 때까지 저장된 액세스 정책과 연결된 공유 액세스 서명이 상태 코드 403(사용할 수 없음)과 함께 실패합니다.
과금
가격 책정 요청은 Blob Storage REST API를 통해 직접 Blob Storage API를 사용하는 클라이언트 또는 Azure Storage 클라이언트 라이브러리에서 비롯할 수 있습니다. 이러한 요청은 트랜잭션당 요금이 발생합니다. 트랜잭션 유형은 계정에 청구되는 방식에 영향을 줍니다. 예를 들어 읽기 트랜잭션은 쓰기 트랜잭션과 다른 청구 범주에 발생합니다. 다음 표에서는 스토리지 계정 유형에 따라 Set Container ACL
요청에 대한 청구 범주를 보여 줍니다.
수술 | 스토리지 계정 유형 | 청구 범주 |
---|---|---|
컨테이너 ACL 설정 | 프리미엄 블록 Blob 표준 범용 v2 |
기타 작업 |
컨테이너 ACL 설정 | 표준 범용 v1 | 쓰기 작업 |
지정된 청구 범주의 가격 책정에 대한 자세한 내용은 Azure Blob Storage 가격 책정
참고 항목
컨테이너 및 Blob 대한 액세스 제한
공유 액세스 서명 사용하여 액세스 위임
공유 액세스 서명 만들기 및 사용
저장된 액세스 정책 정의
컨테이너 ACL 가져오기
Azure Storage
상태 및 오류 코드
Blob 서비스 오류 코드