Partager via


Obtenir des clés de compte de stockage

 

Le Get Storage Keys opération retourne les clés d'accès primaire et secondaire pour le compte de stockage spécifié.

Demande

Le Get Storage Keys demande peut être spécifiée comme suit. Remplacez <subscription-id> par votre ID d'abonnement et <service-name> avec le nom du compte de stockage.

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

Vous devez vous assurer que la demande adressée au service de gestion est sécurisée. Pour plus d'informations, consultez authentification des demandes de Service de gestion.

Paramètres URI

Aucun.

En-têtes de demande

Le tableau suivant décrit les en-têtes de la demande.

En-tête de demande Description
x-ms-version Obligatoire. Spécifie la version de l'opération à utiliser pour cette demande. Cet en-tête doit être défini sur 2009-10-01 ou une version ultérieure. Pour plus d'informations sur les en-têtes de contrôle de version, consultez Versioning de gestion de Service.

Corps de la demande

Aucun.

Réponse

La réponse inclut un code d'état HTTP, un ensemble d'en-têtes de réponse et un corps de réponse.

Code d'état

Une opération réussie envoie le code d'état 200 (OK). Pour plus d'informations sur les codes d'état, consultez état de gestion de Service et les Codes d'erreur.

En-têtes de réponse

La réponse de l'opération inclut les en-têtes suivants. La réponse peut aussi inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.

En-tête de réponse Description
x-ms-request-id Valeur qui identifie de façon unique une demande effectuée au service de gestion.

Corps de la réponse

Le corps de la réponse présente le format suivant :

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

Le tableau suivant décrit les éléments du corps de la réponse.

Nom de l'élément Description
Url L'API de gestion des services URI de demande utilisé pour effectuer Obtenir les propriétés du compte de stockage demandes sur le compte de stockage.
Principal Clé d'accès primaire du compte de stockage spécifié.
Secondaire Clé d'accès secondaire du compte de stockage spécifié.

Remarques

Utilisez les touches de stockage retournées à partir de la Get Storage Account Keys opération pour accéder au blob, file d'attente et les points de terminaison de service table pour le stockage.

Exemple

L'exemple de programme suivant prend l'ID d'abonnement, une empreinte numérique de certificat de gestion associée, la chaîne de version d'opération et un nom de compte de stockage, et affiche les clés du compte de stockage renvoyées dans la console. Initialiser le msVersion, subscriptionId, thumbprint et serviceName variables avec vos propres valeurs pour exécuter l'exemple de code.

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

Après l'exécution, la sortie du programme sera similaire à l'exemple suivant :

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>