Obter Chaves da Conta de Armazenamento

 

O Get Storage Keys operação retorna as chaves de acesso primário e secundário para a conta de armazenamento especificada.

O Get Storage Keys solicitação pode ser especificada da seguinte maneira. Substitua <subscription-id> pela sua ID de assinatura e <service-name> com o nome da conta de armazenamento.

MétodoURI de solicitação
GEThttps://management.core.windows.net/<subscription-id>/services/storageservices/<service-name>/keys

Verifique se a solicitação feita ao serviço de gerenciamento é segura. Para obter mais detalhes, consulte solicitações de gerenciamento de serviço de autenticação.

Parâmetros URI

Nenhuma.

Cabeçalhos de solicitação

A tabela a seguir descreve os cabeçalhos da solicitação.

Cabeçalho de solicitaçãoDescrição
x-ms-versionObrigatório. Especifica a versão da operação a ser usada para esta solicitação. Este cabeçalho deve ser definido como 2009-10-01 ou superior. Para obter mais informações sobre cabeçalhos de controle de versão, consulte o controle de versão do serviço de gerenciamento.

Corpo da solicitação

Nenhuma.

A resposta inclui um código de status HTTP, um conjunto de cabeçalhos de resposta e um corpo de resposta.

Código de status

Uma operação bem-sucedida retorna o código de status 200 (OK). Para obter informações sobre códigos de status, consulte Status do gerenciamento de serviço e códigos de erro.

Cabeçalhos de resposta

A resposta para esta operação inclui os cabeçalhos a seguir. A resposta também pode incluir cabeçalhos padrão HTTP adicionais. Todos os cabeçalhos padrão obedecem a especificação de protocolo HTTP/1.1.

Cabeçalho de respostaDescrição
x-ms-request-idUm valor que identifica exclusivamente uma solicitação feita no serviço de gerenciamento.

Corpo da resposta

Formato do corpo da resposta:

  
<?xml version="1.0" encoding="utf-8"?> <StorageService xmlns="http://schemas.microsoft.com/windowsazure"> <Url>storage-service-url</Url> <StorageServiceKeys> <Primary>primary-key</Primary> <Secondary>secondary-key</Secondary> </StorageServiceKeys> </StorageService>  
  

A tabela a seguir descreve os elementos do corpo da resposta.

Nome do elementoDescrição
UrlA API de gerenciamento de serviço URI de solicitação usado para executar Obter propriedades da conta de armazenamento solicitações na conta de armazenamento.
PrimáriaA tecla de acesso primário para a conta de armazenamento.
SecundáriaA tecla de acesso secundário para a conta de armazenamento.

Use as teclas de armazenamento retornadas do Get Storage Account Keys operação para acessar o blob, fila e pontos de extremidade de serviço de tabela para o armazenamento.

O programa de exemplo a seguir usa a ID da assinatura, uma impressão digital do certificado de gerenciamento associado, a cadeia de caracteres da versão da operação e um nome de conta de armazenamento e imprime as chaves da conta de armazenamento retornadas para o console. Inicializar o msVersion, subscriptionId, thumbprint e serviceName variáveis com seus próprios valores para executar o código de exemplo.

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 = "http://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; } }  
  

Quando executado, a saída de programa será parecida com este exemplo:

Storage Account Keys for myexamplestorage1: <StorageService xmlns="http://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>  

Mostrar: