Speicherkontenschlüssel abrufen

 

Die Get Storage Keys Operation gibt die primäre und sekundäre Zugriffsschlüssel für das angegebene Speicherkonto zurück.

Anforderung

Die Get Storage Keys -Anforderung kann wie folgt angegeben werden. Ersetzen Sie <subscription-id> durch Ihre Abonnement-ID und <service-name> mit dem Namen des Speicherkontos.

Methode Anforderungs-URI
GET https://management.core.windows.net/<subscription-id>/services/storageservices/<service-name>/keys

Sie müssen sicherstellen, dass die an den Verwaltungsdienst gestellte Anforderung sicher ist. Weitere Informationen finden Sie unter Authentifizieren von Dienstverwaltungsanforderungen.

URI-Parameter

Keine.

Anforderungsheader

In der folgenden Tabelle werden die Anforderungsheader beschrieben.

Anforderungsheader Beschreibung
x-ms-version Erforderlich. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Dieser Header sollte festgelegt werden, um 2009-10-01 oder höher. Weitere Informationen zu versionsverwaltungsheadern finden Sie unter Service-Versionsverwaltung.

Anforderungstext

Keine.

Antwort

Die Antwort enthält den HTTP-Statuscode, einen Satz von Antwortheadern und einen Antworttext.

Statuscode

Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben. Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes der Dienstverwaltung.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann außerdem weitere HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Antwortheader Beschreibung
x-ms-request-id Ein Wert, der eine für den Verwaltungsdienst ausgeführte Anforderung eindeutig identifiziert.

Antworttext

Der Antworttext weist das folgende Format auf:

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

In der folgenden Tabelle sind die Elemente des Antworttexts beschrieben:

Elementname Beschreibung
Url Der URI verwendet werden, um auszuführen Service Management-API-Anforderung Speicherkonteneigenschaften abrufen Anfragen an das Speicherkonto.
Primär Der primäre Zugriffsschlüssel für das Speicherkonto.
Sekundär Der sekundäre Zugriffsschlüssel für das Speicherkonto.

Hinweise

Verwenden von zurückgegebenen Speicherschlüssel der Get Storage Account Keys Vorgang auf die BLOB-, Warteschlangen- und tabellendienstendpunkte für den Speicher zugreifen.

Beispiel

Im folgenden Beispielprogramm werden die Abonnement-ID, ein zugeordneter Verwaltungszertifikatfingerabdruck, die Versionszeichenfolge des Vorgangs und ein Speicherkontoname verwendet und die zurückgegebenen Speicherkontoschlüssel auf der Konsole ausgegeben. Initialisieren Sie die msVersion, subscriptionId, thumbprint und serviceName Variablen mit Ihren eigenen Werten, um den Beispielcode auszuführen.

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

Nach dem Ausführen ähnelt die Programmausgabe dem folgenden Beispiel:

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>