Erstellen einer gespeicherten Zugriffsrichtlinie mit .NET

Eine gespeicherte Zugriffsrichtlinie bietet eine zusätzliche Steuerungsebene für Shared Access Signatures (SAS) der Dienstebene auf Serverseite. Das Definieren einer gespeicherten Zugriffsrichtlinie dient zum Gruppieren von Shared Access Signatures und zum Bereitstellen zusätzlicher Einschränkungen für Shared Access Signatures, die von der Richtlinie gebunden werden. Mithilfe der gespeicherten Zugriffsrichtlinie können Sie die Startzeit, die Ablaufzeit oder die Berechtigungen für eine Shared Access Signature ändern oder die Signatur widerrufen, nachdem sie ausgegeben wurde.

Die folgenden Azure Storage-Ressourcen unterstützen gespeicherte Zugriffsrichtlinien:

  • Blobcontainer
  • Dateifreigaben
  • Warteschlangen
  • Tabellen

Hinweis

Eine gespeicherte Zugriffsrichtlinie für einen Container kann einer Shared Access Signature zugeordnet werden, die dem Container selbst oder den darin enthaltenen Blobs Berechtigungen erteilt. Entsprechend kann eine gespeicherte Zugriffsrichtlinie für eine Dateifreigabe einer Shared Access Signature zugeordnet werden, die der Freigabe selbst oder den darin enthaltenen Dateien Berechtigungen erteilt.

Gespeicherte Zugriffsrichtlinien werden nur für Dienst-SAS unterstützt. Gespeicherte Zugriffsrichtlinien werden für die Konto-SAS oder die SAS für die Benutzerdelegierung nicht unterstützt.

Weitere Informationen zu gespeicherten Zugriffsrichtlinien finden Sie unter Erstellen einer gespeicherten Zugriffsrichtlinie.

Erstellen einer gespeicherten Zugriffsrichtlinie

Der zugrunde liegende REST-Vorgang zum Erstellen einer gespeicherten Zugriffsrichtlinie ist Set Container ACL. Sie müssen den Vorgang zum Erstellen einer gespeicherten Zugriffsrichtlinie über einen gemeinsam verwendeten Schlüssel autorisieren, indem Sie die Kontozugriffsschlüssel in einer Verbindungszeichenfolge verwenden. Das Autorisieren des Vorgangs Set Container ACL mit Microsoft Entra-Anmeldeinformationen wird nicht unterstützt. Weitere Informationen finden Sie unter Berechtigungen zum Aufrufen von Datenvorgängen.

In den folgenden Codebeispielen wird eine gespeicherte Zugriffsrichtlinie für einen Container erstellt. Sie können mit der Zugriffsrichtlinie Einschränkungen für eine Dienst-SAS für den Container oder seine Blobs festlegen.

Rufen Sie eine der folgenden Methoden auf, um mit Version 12 der .NET-Clientbibliothek für Azure Storage eine gespeicherte Zugriffsrichtlinie für einen Container zu erstellen:

Im folgenden Beispiel wird eine gespeicherte Zugriffsrichtlinie erstellt, die einen Tag lang gilt und Lese-/Schreibberechtigungen gewährt:

async static Task CreateStoredAccessPolicyAsync(string containerName)
{
    string connectionString = "";

    // Use the connection string to authorize the operation to create the access policy.
    // Azure AD does not support the Set Container ACL operation that creates the policy.
    BlobContainerClient containerClient = new BlobContainerClient(connectionString, containerName);

    try
    {
        await containerClient.CreateIfNotExistsAsync();

        // Create one or more stored access policies.
        List<BlobSignedIdentifier> signedIdentifiers = new List<BlobSignedIdentifier>
        {
            new BlobSignedIdentifier
            {
                Id = "mysignedidentifier",
                AccessPolicy = new BlobAccessPolicy
                {
                    StartsOn = DateTimeOffset.UtcNow.AddHours(-1),
                    ExpiresOn = DateTimeOffset.UtcNow.AddDays(1),
                    Permissions = "rw"
                }
            }
        };
        // Set the container's access policy.
        await containerClient.SetAccessPolicyAsync(permissions: signedIdentifiers);
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine(e.ErrorCode);
        Console.WriteLine(e.Message);
    }
    finally
    {
        await containerClient.DeleteAsync();
    }
}

Weitere Informationen

Ressourcen

Verwandte Code-Beispiele, in denen veraltete SDKs der .NET-Version 11.x verwendet werden, finden Sie unter Code-Beispiele mit der .NET-Version 11.x.