사용자 위임 키 가져오기

작업은 Get User Delegation Key 사용자 위임 SAS(공유 액세스 서명)에 서명하는 데 사용할 수 있는 키를 가져옵니다. 사용자 위임 SAS는 Microsoft Entra 자격 증명을 사용하여 Azure Blob Storage 리소스에 대한 액세스 권한을 부여합니다. 이 Get User Delegation Key 작업은 버전 2018-11-09 이상에서 사용할 수 있습니다.

요청

다음과 같이 Get User Delegation Key을 생성합니다. HTTPS는 필수입니다. myaccount를 스토리지 계정 이름으로 바꿉니다.

POST 메서드 요청 URI HTTP 버전
https://myaccount.blob.core.windows.net/?restype=service&comp=userdelegationkey HTTP/1.1

에뮬레이트된 스토리지 서비스 요청

로컬 스토리지 서비스에 대한 요청을 수행할 때 로컬 호스트 이름 및 Blob Storage 포트를 로 127.0.0.1:10000지정한 다음 로컬 스토리지 계정 이름을 지정합니다.

POST 메서드 요청 URI HTTP 버전
http://127.0.0.1:10000/devstoreaccount1/?restype=service&comp=userdelegationkey HTTP/1.1

자세한 내용은 로컬 Azure Storage 개발에 Azurite 에뮬레이터 사용을 참조하세요.

URI 매개 변수

요청 URI에 다음과 같은 추가 매개 변수를 지정할 수 있습니다.

매개 변수 Description
timeout 선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Blob Storage 작업에 대한 시간 제한 설정을 참조하세요.

요청 헤더

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

요청 헤더 Description
Authorization 필수 사항입니다. 권한 부여 체계를 지정합니다. Microsoft Entra ID 권한 부여만 지원됩니다. 자세한 내용은 Microsoft Entra ID 권한 부여를 참조하세요.
x-ms-version 모든 권한 있는 요청에 필요합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
x-ms-client-request-id 선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1키비바이트(KiB) 문자 제한으로 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Blob Storage 모니터링을 참조하세요.

요청 본문

요청 본문의 형식은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>  
<KeyInfo>  
    <Start>String, formatted ISO Date</Start>
    <Expiry>String, formatted ISO Date </Expiry>
</KeyInfo>  

요청 본문의 요소는 다음 표에 설명되어 있습니다.

요소 Description
Start 필수 사항입니다. 사용자 위임 SAS의 시작 시간(ISO 날짜 형식)입니다. 현재 날짜의 7일 이내에 유효한 날짜 및 시간이어야 합니다.
만료 필수 사항입니다. 사용자 위임 SAS의 만료 시간(ISO 날짜 형식)입니다. 현재 날짜의 7일 이내에 유효한 날짜 및 시간이어야 합니다.

응답

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

상태 코드

작업에 성공하면 상태 코드 200(정상)이 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하세요.

응답 헤더

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 준수합니다.

응답 헤더 Description
x-ms-request-id 만들어진 요청을 고유하게 식별하고 요청 문제를 해결하는 데 사용할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요.
x-ms-version 요청을 실행하는 데 사용된 Blob Storage 버전입니다.
Date 서비스에서 생성된 UTC 날짜/시간 값으로, 응답이 시작된 시간을 나타냅니다.
x-ms-client-request-id 요청 및 해당 응답 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값 x-ms-client-request-id 은 요청에 있고 값에 표시되는 ASCII 문자가 1,024자 이하인 경우 헤더 값과 같습니다. 헤더가 x-ms-client-request-id 요청에 없으면 응답에 표시되지 않습니다.

응답 본문

응답 본문의 형식은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<UserDelegationKey>
    <SignedOid>String containing a GUID value</SignedOid>
    <SignedTid>String containing a GUID value</SignedTid>
    <SignedStart>String formatted as ISO date</SignedStart>
    <SignedExpiry>String formatted as ISO date</SignedExpiry>
    <SignedService>b</SignedService>
    <SignedVersion>String specifying REST api version to use to create the user delegation key</SignedVersion>
    <Value>String containing the user delegation key</Value>
</UserDelegationKey>

다음 표에서는 응답 본문의 요소에 대해 설명합니다.

요소 Description
SignedOid Microsoft ID 시스템의 개체에 대한 변경할 수 없는 식별자입니다.
SignedTid 사용자가 있는 Microsoft Entra 테넌트 를 나타내는 GUID입니다.
SignedStart 사용자 위임 키의 시작 시간(ISO 날짜 형식)입니다.
SignedExpiry 사용자 위임 키의 만료 시간(ISO 날짜 형식)입니다.
SignedService 사용자 위임 키를 사용할 수 있는 서비스입니다. 여기서 b는 Blob Storage를 나타냅니다.
SignedVersion 사용자 위임 키를 가져오는 데 사용되는 REST API 버전입니다.
사용자 위임 키입니다.

권한 부여

Azure Storage에서 데이터 액세스 작업을 호출할 때 권한 부여가 필요합니다. Microsoft Entra ID 사용하여 작업에만 권한을 부여 Get User Delegation Key 할 수 있습니다.

사용 권한

사용자 위임 키를 요청하는 보안 주체에는 적절한 권한이 있어야 합니다. Microsoft Entra 보안 주체는 사용자, 그룹, 서비스 주체 또는 관리 ID일 수 있습니다.

아래에는 Microsoft Entra 보안 주체가 작업을 호출 Get User Delegation Key 하는 데 필요한 RBAC 작업과 이 작업을 포함하는 최소 권한의 기본 제공 Azure RBAC 역할이 나와 있습니다.

명시적으로 또는 와일드카드 정의의 일부로 이 Azure RBAC 작업을 포함하는 모든 기본 제공 역할은 작업을 호출 Get User Delegation Key 할 수 있습니다.

Azure RBAC를 사용하여 역할을 할당하는 방법에 대한 자세한 내용은 Blob 데이터에 액세스하기 위해 Azure 역할 할당을 참조하세요.

Get User Delegation Key 작업은 스토리지 계정 수준에서 작동하므로 Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey 작업은 스토리지 계정, 리소스 그룹 또는 구독 수준에서 범위가 지정되어야 합니다. 보안 주체에 이전에 나열된 기본 제공 역할 또는 Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey 작업을 포함하는 사용자 지정 역할이 스토리지 계정, 리소스 그룹 또는 구독 수준에서 할당된 경우 보안 주체는 사용자 위임 키를 요청할 수 있습니다.

보안 주체에 데이터 액세스를 허용하지만 컨테이너 수준으로 범위가 지정된 역할이 할당된 경우 스토리지 계정, 리소스 그룹 또는 구독 수준에서 해당 보안 주체에 Storage Blob 위임자 역할을 추가로 할당할 수 있습니다. Storage Blob 위임자 역할은 보안 주체에게 사용자 위임 키를 요청할 수 있는 권한을 부여합니다.

Azure Storage의 RBAC 역할에 대한 자세한 내용은 Azure Active Directory로 권한 부여를 참조하세요.

설명

사용자 위임 키를 사용하여 사용자 위임 SAS를 만듭니다. 사용자 위임 SAS 토큰의 에 대한 응답 Get User Delegation Key 에서 반환되는 필드를 포함합니다. 자세한 내용은 사용자 위임 SAS 만들기를 참조하세요.

사용자 위임 키를 사용하여 Blob Storage 리소스에 직접 액세스할 수 없습니다.

결제

가격 책정 요청은 Blob Storage REST API를 통해 직접 또는 Azure Storage 클라이언트 라이브러리에서 Blob Storage API를 사용하는 클라이언트에서 시작됩니다. 이러한 요청은 트랜잭션당 요금을 발생합니다. 트랜잭션 유형은 계정 청구 방식에 영향을 줍니다. 예를 들어 읽기 트랜잭션은 쓰기 트랜잭션이 아닌 다른 청구 범주에 발생합니다. 다음 표에서는 스토리지 계정 유형에 따라 요청에 대한 Get User Delegation Key 청구 범주를 보여 줍니다.

작업 Storage 계정 유형 청구 범주
사용자 위임 키 가져오기 프리미엄 블록 Blob
표준 범용 v2
기타 작업
사용자 위임 키 가져오기 표준 범용 v1 읽기 작업

지정된 청구 범주의 가격 책정에 대한 자세한 내용은 가격 책정 Azure Blob Storage 참조하세요.

추가 정보