Självstudie: Lägga till ett rolltilldelningsvillkor för att begränsa åtkomsten till blobar med hjälp av Azure-portalen
I de flesta fall ger en rolltilldelning de behörigheter du behöver för Azure-resurser. I vissa fall kanske du dock vill ge mer detaljerad åtkomstkontroll genom att lägga till ett rolltilldelningsvillkor.
I den här självstudien lär du dig att:
- Lägga till ett villkor i en rolltilldelning
- Begränsa åtkomsten till blobar baserat på en blobindextagg
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
, resource
och environment
principal
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.
Förutsättningar
Information om kraven för att lägga till eller redigera rolltilldelningsvillkor finns i Villkorskrav.
Villkor
I den här självstudien begränsar du åtkomsten till blobar med en specifik tagg. Du kan till exempel lägga till ett villkor i en rolltilldelning så att Chandra bara kan läsa filer med taggen Project=Cascade
.
Om Chandra försöker läsa en blob utan taggen Project=Cascade
tillåts inte åtkomst.
Så här ser villkoret ut i kod:
(
(
!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'}
AND NOT
SubOperationMatches{'Blob.List'})
)
OR
(
@Resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'
)
)
Steg 1: Skapa en användare
Logga in på Azure-portalen som ägare av en prenumeration.
Välj Microsoft Entra ID.
Skapa en användare eller hitta en befintlig användare. I den här självstudien används Chandra som exempel.
Steg 2: Konfigurera lagring
Skapa ett lagringskonto som är kompatibelt med funktionen blobindextaggar. Mer information finns i Hantera och hitta Azure Blob-data med blobindextaggar.
Skapa en ny container i lagringskontot och ange den anonyma åtkomstnivån till Privat (ingen anonym åtkomst).
I containern väljer du Ladda upp för att öppna fönstret Ladda upp blob.
Hitta en textfil som ska laddas upp.
Välj Avancerat för att expandera fönstret.
I avsnittet Blob-indextaggar lägger du till följande blobindextagg i textfilen.
Om du inte ser avsnittet blobindextaggar och du precis har registrerat din prenumeration kan du behöva vänta några minuter på att ändringarna ska spridas. Mer information finns i Använda blobindextaggar för att hantera och hitta data i Azure Blob Storage.
Kommentar
Blobar stöder också möjligheten att lagra godtyckliga användardefinierade nyckelvärdesmetadata. Även om metadata liknar blobindextaggar måste du använda blobindextaggar med villkor.
Tangent Värde Project Cascade
Välj knappen Ladda upp för att ladda upp filen.
Ladda upp en andra textfil.
Lägg till följande blobindextagg i den andra textfilen.
Tangent Värde Project Baker
Steg 3: Tilldela en lagringsblobdataroll
Öppna resursgruppen.
Välj Åtkomstkontroll (IAM) .
Välj fliken Rolltilldelningar om du vill visa rolltilldelningarna i det här omfånget.
Välj Lägg till>Lägg till rolltilldelning. Sidan Lägg till rolltilldelning öppnas:
- På fliken Roller väljer du rollen Lagringsblobdataläsare .
- På fliken Medlemmar väljer du den användare som du skapade tidigare.
(Valfritt) I rutan Beskrivning anger du Läsåtkomst till blobar med taggen Project=Cascade.
Välj Nästa.
Steg 4: Lägg till ett villkor
- På fliken Villkor (valfritt) väljer du Lägg till villkor. Sidan Lägg till rolltilldelningsvillkor visas:
I avsnittet Lägg till åtgärd väljer du Lägg till åtgärd.
Fönstret Välj en åtgärd visas. Det här fönstret är en filtrerad lista över dataåtgärder baserat på rolltilldelningen som ska vara målet för ditt villkor. Markera kryssrutan bredvid Läs en blob och välj sedan Välj:
I avsnittet Skapa uttryck väljer du Lägg till uttryck.
Avsnittet Uttryck expanderas.
Ange följande uttrycksinställningar:
Inställning Värde Attributkälla Resurs Attribut Blobindextaggar [Värden i nyckel] Nyckel Project Operator StringEqualsIgnoreCase Värde Cascade
Rulla upp till Redigeringstyp och välj Kod.
Villkoret visas som kod. Du kan göra ändringar i villkoret i den här kodredigeraren. Om du vill gå tillbaka till den visuella redigeraren väljer du Visuellt objekt.
Välj Spara för att lägga till villkoret och återgå till sidan Lägg till rolltilldelning.
Välj Nästa.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen med ett villkor.
Efter en liten stund tilldelas säkerhetsobjektet rollen i det omfång som valts.
Steg 5: Tilldela rollen Läsare
Upprepa föregående steg för att tilldela rollen Läsare till den användare som du skapade tidigare i resursgruppsomfånget.
Kommentar
Du behöver vanligtvis inte tilldela rollen Läsare. Detta görs dock så att du kan testa villkoret med hjälp av Azure-portalen.
Steg 6: Testa villkoret
Logga in på Azure Portal i ett nytt fönster.
Logga in som den användare som du skapade tidigare.
Öppna lagringskontot och containern som du skapade.
Kontrollera att autentiseringsmetoden är inställd på Microsoft Entra-användarkonto och inte åtkomstnyckel.
Välj textfilen Baker.
Du bör INTE kunna visa eller ladda ned bloben och ett meddelande om att auktoriseringen misslyckades ska visas.
Välj Kaskadtextfil.
Du bör kunna visa och ladda ned bloben.
Steg 7: Rensa resurser
Ta bort rolltilldelningen som du lade till.
Ta bort testlagringskontot som du skapade.
Ta bort den användare som du skapade.