Opgeslagen toegangsbeleid verkennen

Voltooid

Een opgeslagen toegangsbeleid biedt een extra controleniveau over Shared Access Signatures (SAS) op serviceniveau aan de serverzijde. Het opzetten van een opgeslagen toegangsbeleidsgroep SAS biedt meer beperkingen voor handtekeningen die gebonden zijn aan het beleid. U kunt een opgeslagen toegangsbeleid gebruiken om de begintijd, verlooptijd of machtigingen voor een handtekening te wijzigen of om deze in te trekken nadat deze is uitgegeven.

De volgende opslagbronnen ondersteunen opgeslagen toegangsbeleid:

  • Blobcontainers
  • Bestandsdeling
  • Wachtrijen
  • Tabellen

Een opgeslagen toegangsbeleid maken

Het toegangsbeleid voor een SAS bestaat uit de begintijd, verlooptijd en machtigingen voor de handtekening. U kunt al deze parameters opgeven voor de handtekening-URI en geen binnen het opgeslagen toegangsbeleid; alles binnen het opgeslagen toegangsbeleid en geen op de URI; of een combinatie van de twee. U kunt echter geen bepaalde parameter opgeven voor zowel het SAS-token als het opgeslagen toegangsbeleid.

Als u een opgeslagen toegangsbeleid wilt maken of wijzigen, roept u de Set ACL-bewerking voor de resource aan (zie Container-ACL instellen, Wachtrij-ACL instellen, Tabel-ACL instellenof Share-ACL instellen) met een aanvraagbody waarmee de voorwaarden van het toegangsbeleid worden opgegeven. De hoofdtekst van de aanvraag bevat een unieke ondertekende id van uw keuze, maximaal 64 tekens lang en de optionele parameters van het toegangsbeleid, als volgt:

Notitie

Wanneer u een opgeslagen toegangsbeleid instelt voor een container, tabel, wachtrij of share, kan het tot 30 seconden duren. Tijdens deze tijd kunnen aanvragen voor een SAS die is gekoppeld aan het opgeslagen toegangsbeleid mislukken met statuscode 403 (Verboden), totdat het toegangsbeleid actief wordt. Beperkingen voor tabelentiteitsbereiken (startpk, startrk, endpken endrk) kunnen niet worden opgegeven in een opgeslagen toegangsbeleid.

Hieronder volgen voorbeelden van het maken van een opgeslagen toegangsbeleid met behulp van C# .NET en de Azure CLI.

BlobSignedIdentifier identifier = new BlobSignedIdentifier
{
    Id = "stored access policy identifier",
    AccessPolicy = new BlobAccessPolicy
    {
        ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
        Permissions = "rw"
    }
};

blobContainer.SetAccessPolicy(permissions: new BlobSignedIdentifier[] { identifier });
az storage container policy create \
    --name <stored access policy identifier> \
    --container-name <container name> \
    --start <start time UTC datetime> \
    --expiry <expiry time UTC datetime> \
    --permissions <(a)dd, (c)reate, (d)elete, (l)ist, (r)ead, or (w)rite> \
    --account-key <storage account key> \
    --account-name <storage account name> \

Een opgeslagen toegangsbeleid wijzigen of intrekken

Als u de parameters van het opgeslagen toegangsbeleid wilt wijzigen, kunt u de bewerking voor de toegangsbeheerlijst voor het resourcetype aanroepen om het bestaande beleid te vervangen. Als uw bestaande beleid bijvoorbeeld lees- en schrijfmachtigingen verleent aan een resource, kunt u dit wijzigen om alleen leesmachtigingen te verlenen voor alle toekomstige aanvragen.

Als u een opgeslagen toegangsbeleid wilt intrekken, kunt u het verwijderen, de naam ervan wijzigen door de ondertekende id te wijzigen of de verlooptijd te wijzigen in een waarde in het verleden. Als u de ondertekende identificatie wijzigt, worden de koppelingen tussen bestaande handtekeningen en het bewaarde toegangsbeleid verbroken. Als u de verlooptijd verandert naar een waarde in het verleden, zorgt dit ervoor dat de bijbehorende handtekeningen vervallen. Als u het opgeslagen toegangsbeleid verwijdert of wijzigt, is dit onmiddellijk van invloed op alle SAS die eraan is gekoppeld.

Als u één toegangsbeleid wilt verwijderen, roept u de Set ACL-bewerking van de resource aan en geeft u de set ondertekende id's door die u op de container wilt onderhouden. Als u alle toegangsbeleidsregels uit de resource wilt verwijderen, roept u de Set ACL-bewerking aan met een lege aanvraagbody.