Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Clients, die Anforderungen an Azure Blob Storage stellen, haben die Möglichkeit, einen AES-256-Verschlüsselungsschlüssel für eine einzelne Anforderung bereitzustellen. Die Einbeziehung des Verschlüsselungsschlüssels in die Anforderung ermöglicht eine präzise Steuerung der Verschlüsselungseinstellungen für Blob-Speichervorgänge. Vom Kunden bereitgestellte Schlüssel können in Azure Key Vault oder einem anderen Schlüsselspeicher gespeichert werden.
In diesem Artikel wird gezeigt, wie Sie einen vom Kunden bereitgestellten Schlüssel für eine Anforderung mit .NET angeben.
Installieren von Clientbibliothekspaketen
Hinweis
Die hier gezeigten Beispiele verwenden die Azure Storage-Clientbibliothek, Version 12. Die Clientbibliothek der Version 12 ist Teil des Azure SDK. Weitere Informationen zum Azure SDK finden Sie im Azure SDK-Repository auf GitHub.
Führen Sie zum Installieren des Blob-Speicherpakets den folgenden Befehl über die NuGet-Paket-Manager-Konsole aus:
Install-Package Azure.Storage.Blobs
Die hier gezeigten Beispiele verwenden auch die neueste Version der Azure Identity-Clientbibliothek für .NET , um sich mit Microsoft Entra-Anmeldeinformationen zu authentifizieren. Führen Sie zum Installieren des Pakets den folgenden Befehl über die NuGet-Paket-Manager-Konsole aus:
Install-Package Azure.Identity
Weitere Informationen zum Authentifizieren mit der Azure Identity-Clientbibliothek finden Sie in der Azure Identity-Clientbibliothek für .NET.
Verwenden eines vom Kunden bereitgestellten Schlüssels zum Schreiben in ein Blob
Im folgenden Beispiel wird ein AES-256-Schlüssel beim Hochladen eines Blobs mit der v12-Clientbibliothek für BLOB-Speicher bereitgestellt. Im Beispiel wird das DefaultAzureCredential -Objekt verwendet, um die Schreibanforderung mit der Microsoft Entra-ID zu autorisieren, Aber Sie können die Anforderung auch mit Freigegebenen Schlüsselanmeldeinformationen autorisieren. Weitere Informationen zur Verwendung der DefaultAzureCredential-Klasse zum Autorisieren einer verwalteten Identität für den Zugriff auf Azure Storage finden Sie in der Azure Identity-Clientbibliothek für .NET.
async static Task UploadBlobWithClientKey(Uri blobUri,
Stream data,
byte[] key,
string keySha256)
{
// Create a new customer-provided key.
// Key must be AES-256.
var cpk = new CustomerProvidedKey(key);
// Check the key's encryption hash.
if (cpk.EncryptionKeyHash != keySha256)
{
throw new InvalidOperationException("The encryption key is corrupted.");
}
// Specify the customer-provided key on the options for the client.
BlobClientOptions options = new BlobClientOptions()
{
CustomerProvidedKey = cpk
};
// Create the client object with options specified.
BlobClient blobClient = new BlobClient(
blobUri,
new DefaultAzureCredential(),
options);
// If the container may not exist yet,
// create a client object for the container.
// The container client retains the credential and client options.
BlobContainerClient containerClient =
blobClient.GetParentBlobContainerClient();
try
{
// Create the container if it does not exist.
await containerClient.CreateIfNotExistsAsync();
// Upload the data using the customer-provided key.
await blobClient.UploadAsync(data);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}