Share via


Ügyfél által megadott kulcs megadása a Blob Storage.NET-tel való kéréséhez

Az Azure Blob Storage-ra irányuló kéréseket küldő ügyfeleknek lehetőségük van AES-256 titkosítási kulcsot megadni egy egyedi kéréshez. A kérelem titkosítási kulcsának belefogva részletes vezérlést biztosít a Blob Storage-műveletek titkosítási beállításai felett. Az ügyfél által megadott kulcsok tárolhatók az Azure Key Vaultban vagy egy másik kulcstárolóban.

Ez a cikk bemutatja, hogyan adhatja meg az ügyfél által megadott kulcsot egy .NET-kéréshez.

Ügyfélkódtár-csomagok telepítése

Megjegyzés:

Az itt bemutatott példák az Azure Storage-ügyfélkódtár 12-es verzióját használják. A 12-es verziójú ügyfélkódtár az Azure SDK része. Az Azure SDK-val kapcsolatos további információkért tekintse meg az Azure SDK-adattárat a GitHubon.

A Blob Storage-csomag telepítéséhez futtassa a következő parancsot a NuGet csomagkezelő konzolján:

Install-Package Azure.Storage.Blobs

Az itt bemutatott példák az Azure Identity .NET-hez készült ügyfélkódtárának legújabb verzióját is használják a Microsoft Entra hitelesítő adataival való hitelesítéshez. A csomag telepítéséhez futtassa a következő parancsot a NuGet csomagkezelő konzolján:

Install-Package Azure.Identity

Az Azure Identity ügyfélkódtárával való hitelesítéssel kapcsolatos további információkért tekintse meg a .NET-hez készült Azure Identity-ügyfélkódtárat.

Ügyfél által megadott kulcs használata blobba való íráshoz

Az alábbi példában egy AES-256-kulcs található, amikor feltölt egy blobot a Blob Storage v12-ügyfélkódtárával. A példa a DefaultAzureCredential objektummal engedélyezi az írási kérést a Microsoft Entra-azonosítóval, de a kérést megosztott kulcsú hitelesítő adatokkal is engedélyezheti. A DefaultAzureCredential osztálynak az Azure Storage-hoz való hozzáférés engedélyezésére szolgáló DefaultAzureCredential osztály használatával kapcsolatos további információkért tekintse meg a .NET-hez készült Azure Identity ügyfélkódtárat.

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

Következő lépések