Compartir a través de


Obtenga las claves de la cuenta de almacenamiento

 

La Get Storage Keys operación devuelve las claves de acceso principal y secundaria para la cuenta de almacenamiento especificada.

Solicitud

El Get Storage Keys solicitud se puede especificar como sigue. Reemplace <subscription-id> con su identificador de suscripción y <service-name> con el nombre de la cuenta de almacenamiento.

Método URI de solicitud
GET https://management.core.windows.net/<subscription-id>/services/storageservices/<service-name>/keys

Debe asegurarse de que la solicitud que se realice al servicio de administración sea segura. Para obtener más información, vea autenticar solicitudes de administración de servicios.

Parámetros URI

Ninguna.

Encabezados de solicitud

La tabla siguiente describe los encabezados de solicitud.

Encabezado de solicitud Descripción
x-ms-version Requerido. Especifica la versión de la operación que se utiliza para esta solicitud. Este encabezado debe establecerse en 2009-10-01 o superior. Para obtener más información acerca de los encabezados de control de versiones, vea versiones de administración de servicios.

Cuerpo de solicitud

Ninguna.

Respuesta

La respuesta incluye un código de estado HTTP, un conjunto de encabezados de respuesta y un cuerpo de respuesta.

Código de estado

Una operación correcta devuelve el código de estado 200 Correcto. Para obtener información acerca de los códigos de estado, vea estado de administración del servicio y los códigos de Error.

Encabezados de respuesta

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.

Encabezado de respuesta Descripción
x-ms-request-id Valor que identifica de forma exclusiva una solicitud realizada ante el servicio de administración.

Cuerpo de respuesta

El formato del cuerpo de respuesta es el siguiente:

  
<?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>  
  

En la tabla siguiente se describen los elementos del cuerpo de respuesta.

Nombre del elemento Descripción
Dirección URL URI que se usa para realizar la solicitud de API de administración de servicios Obtener propiedades de la cuenta de almacenamiento solicitudes en la cuenta de almacenamiento.
Principal Clave de acceso principal para la cuenta de almacenamiento.
Secundario Clave de acceso secundaria para la cuenta de almacenamiento.

Comentarios

Use las teclas de almacenamiento devueltas desde la Get Storage Account Keys operación para tener acceso a los blob, cola y los extremos de servicio de tabla para el almacenamiento.

Ejemplo

El programa de ejemplo siguiente usa el identificador de la suscripción, una huella digital del certificado de administración asociada, la cadena de versión de la operación y un nombre de cuenta de almacenamiento, e imprime las claves de cuenta de almacenamiento devueltas en la consola. Inicializar el msVersion, subscriptionId, thumbprint y serviceName las variables con sus propios valores para ejecutar el código de ejemplo.

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; } }  
  

Cuando se ejecuta, la salida del programa tendrá un aspecto parecido al ejemplo siguiente:

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>