사용자 위임 키 가져오기Get User Delegation Key

Get User Delegation Key작업은 사용자 위임 SAS (공유 액세스 서명)에 서명 하는 데 사용할 수 있는 키를 가져옵니다.The Get User Delegation Key operation gets a key that can be used to sign a user delegation SAS (shared access signature). 사용자 위임 SAS는 Azure Active Directory (Azure AD) 자격 증명을 사용 하 여 Blob service 리소스에 대 한 액세스 권한을 부여 합니다.A user delegation SAS grants access to resources in the Blob service using Azure Active Directory (Azure AD) credentials. Get User Delegation Key작업은 버전 2018-11-09 이상에서 사용할 수 있습니다.The Get User Delegation Key operation is available in version 2018-11-09 and later.

요청Request

다음과 같이 Get User Delegation Key을 생성합니다.Construct the Get User Delegation Key as follows. HTTPS는 필수입니다.HTTPS is required. myaccount을 스토리지 계정 이름으로 바꿉니다.Replace myaccount with the name of your storage account.

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

에뮬레이트된 저장소 서비스 URIEmulated storage service URI

로컬 저장소 서비스에 대해 요청을 수행할 때는 로컬 호스트 이름 및 Blob 서비스 포트를 127.0.0.1:10000으로 지정하고 뒤에 로컬 저장소 계정 이름을 붙입니다.When making a request against the local storage service, specify the local hostname and Blob service port as 127.0.0.1:10000, followed by the local storage account name:

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

자세한 내용은 개발 및 테스트에 Azure Storage 에뮬레이터 사용을 참조 하세요.For more information, see Using the Azure Storage Emulator for Development and Testing.

URI 매개 변수URI Parameters

요청 URI에 다음과 같은 추가 매개 변수를 지정할 수 있습니다.The following additional parameters may be specified on the request URI.

매개 변수Parameter DescriptionDescription
timeout 선택 사항입니다.Optional. timeout 매개 변수는 초 단위로 표시됩니다.The timeout parameter is expressed in seconds. 자세한 내용은 Blob 서비스 작업에 대 한 시간 제한 설정을 참조 하세요.For more information, see Setting Timeouts for Blob Service Operations.

요청 헤더Request Headers

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.The following table describes required and optional request headers.

요청 헤더Request Header 설명Description
Authorization 필수 요소.Required. 권한 부여 체계를 지정 합니다.Specifies the authorization scheme. Azure AD를 사용한 권한 부여만 지원 됩니다.Only authorization with Azure AD is supported. 자세한 내용은 Azure Active Directory 권한 부여를 참조 하세요.For more information, see Authorize with Azure Active Directory.
x-ms-version 모든 권한이 부여 된 요청에 필요 합니다.Required for all authorized requests. 자세한 내용은 Azure Storage Services에 대 한 버전 관리를 참조 하세요.For more information, see Versioning for the Azure Storage Services.
x-ms-client-request-id 선택 사항입니다.Optional. 저장소 분석 로깅을 사용 하도록 설정한 경우 분석 로그에 기록 되는 1 KiB 문자 제한이 있는 클라이언트 생성 불투명 값을 제공 합니다.Provides a client-generated, opaque value with a 1 KiB character limit that is recorded in the analytics logs when storage analytics logging is enabled. 이 헤더를 사용하면 클라이언트 쪽 작업을 서버에서 받은 요청과 관련시키는 것이 좋습니다.Using this header is highly recommended for correlating client-side activities with requests received by the server. 자세한 내용은 스토리지 분석 로깅Azure 로깅: 로그를 사용 하 여 저장소 요청 추적을 참조 하세요.For more information, see About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests.

요청 본문Request Body

요청 본문의 형식은 다음과 같습니다.The format of the request body is as follows:

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

다음 표에서는 요청 본문의 요소에 대해 설명합니다.The following table describes the elements of the request body:

요소 이름Element Name 설명Description
StartStart 필수 요소.Required. ISO 날짜 형식으로 된 사용자 위임 SAS의 시작 시간입니다.The start time for the user delegation SAS, in ISO Date format. 현재 시간 7 일 이내에 유효한 날짜 및 시간 이어야 합니다.It must be a valid date and time within 7 days of the current time.
만료Expiry 필수 요소.Required. ISO 날짜 형식으로 된 사용자 위임 SAS의 만료 시간입니다.The expiry time of user delegation SAS, in ISO Date format. 현재 시간 7 일 이내에 유효한 날짜 및 시간 이어야 합니다.It must be a valid date and time within 7 days of the current time.

응답Response

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.The response includes an HTTP status code and a set of response headers.

상태 코드Status Code

작업에 성공하면 상태 코드 200(정상)이 반환됩니다.A successful operation returns status code 200 (OK).

상태 코드에 대 한 자세한 내용은 상태 및 오류 코드를 참조 하세요.For information about status codes, see Status and Error Codes.

응답 헤더Response Headers

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다.The response for this operation includes the following headers. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다.The response may also include additional standard HTTP headers. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을따릅니다.All standard headers conform to the HTTP/1.1 protocol specification.

응답 헤더Response Header 설명Description
x-ms-request-id 이 헤더는 수행된 요청을 고유하게 식별하며, 이 헤더를 사용해서 요청 문제를 해결할 수 있습니다.This header uniquely identifies the request that was made and can be used for troubleshooting the request. 자세한 내용은 API 작업 문제 해결을 참조 하세요.For more information, see Troubleshooting API Operations.
x-ms-version 요청을 실행하는 데 사용되는 Blob 서비스의 버전을 나타냅니다.Indicates the version of the Blob service used to execute the request.
Date 응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.A UTC date/time value generated by the service that indicates the time at which the response was initiated.
x-ms-client-request-id 이 헤더를 사용 하 여 요청 및 해당 응답의 문제를 해결할 수 있습니다.This header can be used to troubleshoot requests and corresponding responses. 이 헤더의 값은 요청에 있는 경우 헤더의 값과 같으며 x-ms-client-request-id , 값은 최대 1024 표시 ASCII 문자입니다.The value of this header is equal to the value of the x-ms-client-request-id header if it is present in the request and the value is at most 1024 visible ASCII characters. x-ms-client-request-id요청에 헤더가 없는 경우이 헤더는 응답에 표시 되지 않습니다.If the x-ms-client-request-id header is not present in the request, this header will not be present in the response.

응답 본문Response Body

응답 본문의 형식은 다음과 같습니다.The format of the response body is as follows:

<?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 key signature</Value>
</UserDelegationKey>

다음 표에서는 응답 본문의 요소에 대해 설명합니다.The following table describes the elements of the response body:

요소 이름Element Name 설명Description
SignedOidSignedOid Microsoft id 시스템에서 개체에 대 한 변경할 수 없는 식별자입니다.The immutable identifier for an object in the Microsoft identity system.
서명 되지 않은 TidSignedTid 사용자가 속해 있는 Azure AD 테넌트를 나타내는 GUID입니다.A GUID that represents the Azure AD tenant that the user is from.
이상 시작SignedStart 사용자 위임 키의 시작 시간 (ISO 날짜 형식)입니다.The start time of the user delegation key, in ISO date format.
SignedExpirySignedExpiry 사용자 위임 키의 만료 시간 (ISO 날짜 형식)입니다.The expiry time of the user delegation key, in ISO date format.
서비스 서비스SignedService 사용자 위임 키의 서비스는에 사용할 수 있으며, b는 Blob service을 나타냅니다.The service of the user delegation key can be used for, b represents Blob service.
이상 버전SignedVersion 사용자 위임 키를 가져오는 데 사용 되는 rest api 버전입니다.The rest api version used to get user delegation key.
Value 사용자 위임 키의 서명입니다.The signature of the user delegation key.

권한 부여Authorization

사용자 위임 키를 요청 하는 보안 주체에 게이 작업을 수행 하는 데 필요한 적절 한 권한이 있어야 합니다.The security principal that requests the user delegation key needs to have the appropriate permissions to do so. Azure AD 보안 주체는 사용자, 그룹, 서비스 주체 또는 관리 id 일 수 있습니다.An Azure AD security principal may be a user, a group, a service principal, or a managed identity.

사용자 위임 키를 요청 하려면 보안 주체에 게 Microsoft. Storage/storageAccounts/blobServices/generateUserDelegationKey 작업을 할당 해야 합니다.To request the user delegation key, a security principal must be assigned the Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey action. 다음 기본 제공 RBAC 역할에는 명시적으로 또는 와일드 카드 정의의 일부로 서 Microsoft Storage/storageAccounts/blobServices/generateUserDelegationKey action이 포함 됩니다.The following built-in RBAC roles include the Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey action, either explicitly or as part of a wildcard definition:

작업은 Get User Delegation Key 저장소 계정 수준에서 작동 하므로 저장소 계정, 리소스 그룹 또는 구독 수준에서 Microsoft. Storage/Storageaccounts/Blobservices/generateUserDelegationKey 동작의 범위를 지정 해야 합니다.Because the Get User Delegation Key operation acts at the level of the storage account, the Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey action must be scoped at the level of the storage account, the resource group, or the subscription. 보안 주체에 위에 나열 된 기본 제공 역할이 할당 되거나, 저장소 계정, 리소스 그룹 또는 구독 수준에서 Microsoft. Storage/storageAccounts/blobServices/generateUserDelegationKey 작업을 포함 하는 사용자 지정 역할이 할당 된 경우 보안 주체는 사용자 위임 키를 요청할 수 있습니다.If the security principal is assigned any of the built-in roles listed above, or a custom role that includes the Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey action, at the level of the storage account, the resource group, or the subscription, the security principal will be able to request the user delegation key.

보안 주체에 게 데이터 액세스를 허용 하지만 컨테이너 수준으로 범위가 지정 되는 역할이 할당 된 경우 저장소 계정, 리소스 그룹 또는 구독 수준에서 해당 보안 주체에 저장소 Blob 위임자 역할을 추가로 할당할 수 있습니다.In the case where the security principal is assigned a role that permits data access but is scoped to the level of a container, you can additionally assign the Storage Blob Delegator role to that security principal at the level of the storage account, resource group, or subscription. 저장소 Blob 위임자 역할은 보안 주체에 게 사용자 위임 키를 요청 하는 권한을 부여 합니다.The Storage Blob Delegator role grants the security principal permissions to request the user delegation key.

Azure Storage에 대 한 RBAC 역할에 대 한 자세한 내용은 Azure Active Directory 권한 부여를 참조 하세요.For more information about RBAC roles for Azure Storage, see Authorize with Azure Active Directory.

설명Remarks

사용자 위임 키를 사용 하 여 사용자 위임 SAS를 만듭니다.Use the user delegation key to create a user delegation SAS. 사용자 위임 SAS 토큰의에 대 한 응답에서 반환 되는 필드를 포함 합니다 Get User Delegation Key .Include the fields returned on the response to the Get User Delegation Key in the user delegation SAS token. 사용자 위임 SAS를 만드는 방법에 대 한 자세한 내용은 사용자 위임 Sas 만들기를 참조 하세요.For more information about creating a user delegation SAS, see Create a user delegation SAS.

사용자 위임 키는 Blob service의 리소스에 직접 액세스 하는 데 사용할 수 없습니다.The user delegation key cannot be used to access resources in the Blob service directly.

참조See also