Dela via


Säkerhetsöverväganden för tilldelningsvillkor för Azure-roller i Azure Blob Storage

Om du vill skydda resurser helt med hjälp av azure-attributbaserad åtkomstkontroll (Azure ABAC) måste du också skydda de attribut som används i villkoren för Tilldelning av Azure-roller. Om ditt villkor till exempel baseras på en filsökväg bör du akta dig för att åtkomsten kan komprometteras om huvudnamnet har obegränsad behörighet att byta namn på en filsökväg.

I den här artikeln beskrivs säkerhetsöverväganden som du bör ta med i dina rolltilldelningsvillkor.

Viktigt!

Azure-attributbaserad åtkomstkontroll (Azure ABAC) är allmänt tillgänglig (GA) för att styra åtkomsten till Azure Blob Storage, Azure Data Lake Storage Gen2 och Azure Queues med hjälp av request, resourceoch environmentprincipal attribut på prestandanivåerna för både standard- och Premium Storage-konton. För närvarande finns resursattributet för containermetadata och listbloben med begärandeattributet i FÖRHANDSVERSION. Fullständig information om funktionsstatus för ABAC för Azure Storage finns i Status för villkorsfunktioner i Azure Storage.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Användning av andra auktoriseringsmekanismer

Villkor för rolltilldelning utvärderas endast när du använder Azure RBAC för auktorisering. Dessa villkor kan kringgås om du tillåter åtkomst med alternativa auktoriseringsmetoder:

På samma sätt utvärderas inte villkor när åtkomst beviljas med hjälp av åtkomstkontrollistor (ACL: er) i lagringskonton med ett hierarkiskt namnområde (HNS).

Du kan förhindra delad nyckel, SAS på kontonivå och SAS-auktorisering på tjänstnivå genom att inaktivera auktorisering av delad nyckel för ditt lagringskonto. Eftersom SAS för användardelegering är beroende av Azure RBAC utvärderas villkor för rolltilldelning när du använder den här auktoriseringsmetoden.

Skydda lagringsattribut som används under förhållanden

Blobsökväg

När du använder blobsökvägen som ett @Resource-attribut för ett villkor bör du också förhindra att användare byter namn på en blob för att få åtkomst till en fil när de använder konton som har ett hierarkiskt namnområde. Om du till exempel vill skapa ett villkor baserat på blobsökväg bör du även begränsa användarens åtkomst till följande åtgärder:

Åtgärd beskrivning
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action Med den här åtgärden kan kunder byta namn på en fil med hjälp av API:et Sökvägsskapande.
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action Den här åtgärden ger åtkomst till olika filsystem- och sökvägsåtgärder.

Blobindextaggar

Blobindextaggar används som friformulärattribut för villkor i lagringen. Om du skapar några åtkomstvillkor med hjälp av dessa taggar måste du också skydda själva taggarna. Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write Mer specifikt tillåter DataAction användare att ändra taggarna på ett lagringsobjekt. Du kan begränsa den här åtgärden för att förhindra att användare manipulerar en taggnyckel eller ett värde för att få åtkomst till obehöriga objekt.

Om blobindextaggar används under förhållanden kan data dessutom vara sårbara om data och associerade indextaggar uppdateras i separata åtgärder. Du kan använda @Request villkor för blobskrivningsåtgärder för att kräva att indextaggar anges i samma uppdateringsåtgärd. Den här metoden kan skydda data från det ögonblick de skrivs till lagring.

Taggar på kopierade blobar

Som standard kopieras inte blobindextaggar från en källblob till målet när du använder Api för kopieringsblob eller någon av dess varianter. Om du vill bevara åtkomstomfånget för blob vid kopiering bör du även kopiera taggarna.

Taggar på ögonblicksbilder

Det går inte att ändra taggar på blobögonblicksbilder. Därför måste du uppdatera taggarna på en blob innan du tar ögonblicksbilden. Om du ändrar taggarna på en basblob fortsätter taggarna på ögonblicksbilden att ha sitt tidigare värde.

Om en tagg på en basblob ändras när en ögonblicksbild har tagits kan åtkomstomfånget skilja sig åt för basbloben och ögonblicksbilden.

Taggar i blobversioner

Blobindextaggar kopieras inte när en blobversion skapas via API:erna Put Blob, Put Block List eller Copy Blob . Du kan ange taggar via rubriken för dessa API:er.

Taggar kan anges individuellt på en aktuell basblob och på varje blobversion. När du ändrar taggar på en basblob uppdateras inte taggarna i tidigare versioner. Om du vill ändra åtkomstomfånget för en blob och alla dess versioner med hjälp av taggar måste du uppdatera taggarna för varje version.

Fråge- och filtreringsbegränsningar för versioner och ögonblicksbilder

När du använder taggar för att fråga och filtrera blobar i en container inkluderas endast basblobbarna i svaret. Blobversioner eller ögonblicksbilder med de begärda nycklarna och värdena ingår inte.

Roller och behörigheter

Om du använder rolltilldelningsvillkor för inbyggda Azure-roller bör du noggrant granska alla behörigheter som rollen beviljar ett huvudnamn.

Ärvda rolltilldelningar

Rolltilldelningar kan konfigureras för en hanteringsgrupp, prenumeration, resursgrupp, lagringskonto eller en container och ärvs på varje nivå i angiven ordning. Azure RBAC har en additiv modell, så de effektiva behörigheterna är summan av rolltilldelningar på varje nivå. Om ett huvudnamn har samma behörighet tilldelad till dem via flera rolltilldelningar utvärderas åtkomsten för en åtgärd som använder den behörigheten separat för varje tilldelning på varje nivå.

Eftersom villkor implementeras som villkor för rolltilldelningar kan alla ovillkorliga rolltilldelningar tillåta användare att kringgå villkoret. Anta att du tilldelar rollen Storage Blob Data Contributor till en användare för ett lagringskonto och en prenumeration, men lägger bara till ett villkor i tilldelningen för lagringskontot. Resultatet är att användaren har obegränsad åtkomst till lagringskontot via rolltilldelningen på prenumerationsnivå.

Därför bör du tillämpa villkor konsekvent för alla rolltilldelningar i en resurshierarki.

Övriga beaktanden

Villkorsåtgärder som skriver blobar

Många åtgärder som skriver blobar kräver antingen behörigheten Microsoft.Storage/storageAccounts/blobServices/containers/blobs/writeMicrosoft.Storage/storageAccounts/blobServices/containers/blobs/add/action eller . Inbyggda roller, till exempel Storage Blob Data Owner och Storage Blob Data Contributor , beviljar båda behörigheterna till ett säkerhetsobjekt.

När du definierar ett rolltilldelningsvillkor för dessa roller bör du använda identiska villkor för båda dessa behörigheter för att säkerställa konsekventa åtkomstbegränsningar för skrivåtgärder.

Beteende för att kopiera blob och kopiera blob från URL

För åtgärderna @Request Kopiera blobb och Kopiera blob från URL utvärderas villkor som använder blobsökväg som attribut för Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write åtgärden och dess underåtgärder endast för målbloben.

För villkor för källbloben @Resource utvärderas villkoren för åtgärden Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read .

Se även