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>