Utforska lagrade åtkomstprinciper

Fullbordad

En lagrad åtkomstprincip ger en extra nivå av kontroll över signaturerna för delad åtkomst på tjänstnivå (SAS) på serversidan. Aktivera en lagrad åtkomstpolicy för grupper med SAS och införa fler begränsningar för signaturer som är bundna av policyn. Du kan använda en lagrad åtkomstprincip för att ändra starttid, förfallotid eller behörigheter för en signatur eller för att återkalla den när den har utfärdats.

Följande lagringsresurser stöder lagrade åtkomstprinciper:

  • Blob-behållare
  • Fildelningar
  • Köer
  • Tabeller

Skapa en lagrad åtkomstprincip

Åtkomstprincipen för en SAS består av starttid, förfallotid och behörigheter för signaturen. Du kan ange alla dessa parametrar på signatur-URI:n och ingen i den lagrade åtkomstprincipen. alla på den lagrade åtkomstprincipen och ingen på URI:n. eller någon kombination av de två. Du kan dock inte ange en viss parameter för både SAS-token och den lagrade åtkomstprincipen.

Om du vill skapa eller ändra en lagrad åtkomstprincip anropar Set ACL du åtgärden för resursen (se Ange container-ACL, Ange kö-ACL, Ange tabell-ACL eller Ange resurs-ACL) med en begärandetext som anger villkoren för åtkomstprincipen. Brödtexten i begäran innehåller en unik signerad identifierare som du väljer, upp till 64 tecken lång och de valfria parametrarna för åtkomstprincipen enligt följande:

Not

När du upprättar en lagrad åtkomstprincip för en container, tabell, kö eller resurs kan det ta upp till 30 sekunder att börja gälla. Under den här tiden kan begäranden mot en SAS som är associerad med den lagrade åtkomstprincipen misslyckas med statuskoden 403 (Förbjuden) tills åtkomstprincipen blir aktiv. Begränsningar för tabellentitetsintervall (startpk, startrk, endpkoch endrk) kan inte anges i en lagrad åtkomstprincip.

Här följer exempel på hur du skapar en lagrad åtkomstprincip med hjälp av C# .NET och 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> \

Ändra eller återkalla en lagrad åtkomstprincip

Om du vill ändra parametrarna för den lagrade åtkomstprincipen kan du anropa åtkomstkontrollistan för resurstypen för att ersätta den befintliga principen. Om din befintliga princip till exempel beviljar läs- och skrivbehörighet till en resurs kan du ändra den så att den endast beviljar läsbehörighet för alla framtida begäranden.

Om du vill återkalla en lagrad åtkomstprincip kan du ta bort den genom att byta namn på den genom att ändra den signerade identifieraren eller ändra förfallotiden till ett tidigare värde. Om du ändrar den signerade identifieraren bryts associationerna mellan befintliga signaturer och den lagrade åtkomstprincipen. Om du ändrar förfallotiden till ett tidigare värde orsakar det att eventuella associerade signaturer upphör att gälla. Om du tar bort eller ändrar den lagrade åtkomstprincipen påverkas omedelbart all SAS som är associerad med den.

Om du vill ta bort en enskild åtkomstprincip anropar du resursens Set ACL åtgärd och skickar in den uppsättning signerade identifierare som du vill underhålla i containern. Om du vill ta bort alla åtkomstprinciper från resursen anropar du åtgärden Set ACL med en tom begärandetext.