저장소 계정 키 가져오기
Get Storage Keys
작업이 지정 된 저장소 계정에 대 한 기본 및 보조 액세스 키를 반환 합니다.
요청
Get Storage Keys
요청을 다음과 같이 지정할 수 있습니다. 대체 <subscription-id>
구독 ID로 및 <service-name>
저장소 계정의 이름으로 합니다.
방법 | 요청 URI |
---|---|
GET | https://management.core.windows.net/<subscription-id>/services/storageservices/<service-name>/keys |
관리 서비스에 대한 요청이 안전한지 확인해야 합니다. 추가 세부 정보를 참조 하십시오. 서비스 관리 요청 인증.
URI 매개 변수
없음.
요청 헤더
다음 표에서는 요청 헤더에 대해 설명합니다.
요청 헤더 | 설명 |
---|---|
x-ms-version |
필수 사항입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 이 헤더 설정 해야 2009-10-01 이상. 버전 관리 헤더에 대 한 자세한 내용은 참조 서비스 관리 버전 관리. |
요청 본문
없음.
응답
응답에는 HTTP 상태 코드, 응답 헤더 집합 및 응답 본문이 포함되어 있습니다.
상태 코드
작업에 성공하면 상태 코드 200(정상)이 반환됩니다. 상태 코드에 대 한 정보를 참조 하십시오. 서비스 관리 상태 및 오류 코드.
응답 헤더
이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더를 준수 하는 HTTP/1.1 프로토콜 사양.
응답 헤더 | 설명 |
---|---|
x-ms-request-id |
관리 서비스에 대해 수행된 요청을 고유하게 식별하는 값입니다. |
응답 본문
응답 본문의 형식은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?> <StorageService xmlns="https://schemas.microsoft.com/windowsazure"> <Url>storage-service-url</Url> <StorageServiceKeys> <Primary>primary-key</Primary> <Secondary>secondary-key</Secondary> </StorageServiceKeys> </StorageService>
다음 표에서는 응답 본문의 요소에 대해 설명합니다.
요소 이름 | 설명 |
---|---|
Url | 서비스 관리 API 요청 URI가 수행 하는 데 저장소 계정 속성 가져오기 저장소 계정에 대 한 요청입니다. |
Primary | 저장소 계정의 기본 액세스 키입니다. |
Secondary | 저장소 계정의 보조 액세스 키입니다. |
설명
반환 된 저장소 키를 사용 하 여는 Get Storage Account Keys
blob, 큐 및 테이블 서비스 끝점의 저장소에 액세스 하는 작업입니다.
예제
다음 예제 프로그램에서는 구독 ID, 연결된 관리 인증서 지문, 작업 버전 문자열, 저장소 계정 이름을 사용하며 반환되는 저장소 계정 키를 콘솔에 출력합니다. 초기화는 msVersion
, subscriptionId
, thumbprint
및 serviceName
예제 코드를 실행 하려면 사용자 고유의 값을 사용 하 여 변수입니다.
using System; using System.Collections.Generic; using System.Net; using System.Security.Cryptography.X509Certificates; using System.Xml; using System.Xml.Linq; class Program { static void Main(string[] args) { string msVersion = "2011-10-01"; string subscriptionId = "subscription-id-guid"; string thumbprint = "certificate-thumbprint"; string serviceName = "storage-service-name"; try { // Obtain the certificate with the specified thumbprint X509Certificate2 certificate = GetCertificate(thumbprint); GetStorageAccountKeysExample( subscriptionId, certificate, msVersion, serviceName); } catch (Exception ex) { Console.WriteLine("Exception caught in Main:"); Console.WriteLine(ex.Message); } } public static X509Certificate2 GetCertificate(string thumbprint) { List<StoreLocation> locations = new List<StoreLocation> { StoreLocation.CurrentUser, StoreLocation.LocalMachine }; foreach (var location in locations) { X509Store store = new X509Store("My", location); try { store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); X509Certificate2Collection certificates = store.Certificates.Find( X509FindType.FindByThumbprint, thumbprint, false); if (certificates.Count == 1) { return certificates[0]; } } finally { store.Close(); } } throw new ArgumentException(string.Format( "A certificate with thumbprint '{0}' could not be located.", thumbprint)); } public static void GetStorageAccountKeysExample( string subscriptionId, X509Certificate2 certificate, string version, string serviceName) { string uriFormat = "https://management.core.windows.net/{0}/services/storageservices/{1}/keys"; Uri uri = new Uri(String.Format(uriFormat, subscriptionId, serviceName)); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri); request.Method = "GET"; request.Headers.Add("x-ms-version", version); request.ClientCertificates.Add(certificate); request.ContentType = "application/xml"; XDocument responseBody = null; HttpStatusCode statusCode; HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { // GetResponse throws a WebException for 400 and 500 status codes response = (HttpWebResponse)ex.Response; } statusCode = response.StatusCode; if (response.ContentLength > 0) { using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) { responseBody = XDocument.Load(reader); } } response.Close(); if (statusCode.Equals(HttpStatusCode.OK)) { XNamespace wa = "https://schemas.microsoft.com/windowsazure"; XElement storageService = responseBody.Element(wa + "StorageService"); Console.WriteLine( "Storage Account Keys for {0}:{1}{2}", serviceName, Environment.NewLine, storageService.ToString(SaveOptions.OmitDuplicateNamespaces)); } else { Console.WriteLine("Call to Get Storage Account Keys returned an error:"); Console.WriteLine("Status Code: {0} ({1}):{2}{3}", (int)statusCode, statusCode, Environment.NewLine, responseBody.ToString(SaveOptions.OmitDuplicateNamespaces)); } return; } }
예제 코드를 실행하면 다음 샘플과 유사한 프로그램 출력이 나타납니다.
Storage Account Keys for myexamplestorage1: <StorageService xmlns="https://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <Url>https://management.core.windows.net/01234567-89ab-cdef-0123-456789abcdef/services/storageservices/myexamplestorage1</Url> <StorageServiceKeys> <Primary>XrmGWqu9qpgKX5G3lf+V5Bc0nFIGjGWiWhHTdMxkA5Mb4WjJ0rDV+3USWW/6fAWCrszrkr2+JUb1c5mxQdq4nw==</Primary> <Secondary>VuXywhZaNbkh//SN70yL1w6na2H1FUOvjukSOAReQ6QM4kHNY7LmQUhgENw6Tp/SBz4y65R3Y5L5c5+zqXNvVA==</Secondary> </StorageServiceKeys> </StorageService>