Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Клиенты, выполняющие запросы к Хранилищу BLOB-объектов Azure, могут предоставлять ключ шифрования AES-256 для каждого отдельного запроса. Включение ключа шифрования по запросу обеспечивает детальный контроль над параметрами шифрования для операций с хранилищем BLOB-объектов. Предоставляемые клиентом ключи могут храниться в службе Azure Key Vault или в другом хранилище ключей.
В этой статье описано, как указать в запросе ключ, предоставленный клиентом, с помощью .NET.
Установка пакетов клиентских библиотек
Примечание.
В показанных примерах используется клиентская библиотека службы хранилища Azure, версия 12. Клиентская библиотека версии 12 является частью пакета Azure SDK. Дополнительные сведения о пакете Azure SDK см. в репозитории Azure SDK на сайте GitHub.
Чтобы установить пакет хранилища BLOB-объектов, выполните следующую команду в консоли диспетчера пакетов NuGet:
Install-Package Azure.Storage.Blobs
В примерах ниже также используется последняя версия клиентской библиотеки удостоверений Azure для .NET для проверки подлинности с помощью учетных данных Microsoft Entra. Чтобы установить пакеты NuGet., в консоли диспетчера пакетов выполните следующие команды:
Install-Package Azure.Identity
Дополнительные сведения о проверке подлинности с помощью клиентской библиотеки удостоверений Azure для .NET см. здесь.
Использование ключа, предоставляемого пользователем, для записи BLOB-объекта
В следующем примере предоставляется ключ AES-256 при отправке BLOB-объекта с использованием клиентской библиотеки версии 12 для Хранилища BLOB-объектов. В примере используется объект DefaultAzureCredential для авторизации запроса на запись с помощью идентификатора Microsoft Entra, но вы также можете авторизовать запрос с учетными данными общего ключа. Дополнительные сведения об использовании класса DefaultAzureCredential для авторизации управляемого удостоверения для доступа к Службе хранилища Azure см. в статье Клиентская библиотека Azure Identity для .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;
}
}