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>