Roller och behörigheter för Azure Container Registry
Azure Container Registry-tjänsten stöder en uppsättning inbyggda Azure-roller som ger olika behörighetsnivåer till ett Azure-containerregister. Använd rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att tilldela specifika behörigheter till användare, tjänstens huvudnamn eller andra identiteter som behöver interagera med ett register, till exempel för att hämta eller push-överföra containeravbildningar. Du kan också definiera anpassade roller med detaljerad behörighet till ett register för olika åtgärder.
Roll/behörighet | Åtkomst till Resource Manager | Skapa/ta bort register | Push-avbildning | Pull-avbildning | Ta bort bilddata | Ändra principer | Signera bilder |
---|---|---|---|---|---|---|---|
Ägare | X | X | X | X | X | X | |
Deltagare | X | X | X | X | X | X | |
Läsare | X | X | |||||
AcrPush | X | X | |||||
AcrPull | X | ||||||
AcrDelete | X | ||||||
AcrImageSigner | X |
Tilldela roller
Se Steg för att lägga till en rolltilldelning för övergripande steg för att lägga till en rolltilldelning till en befintlig användare, grupp, tjänstens huvudnamn eller hanterad identitet. Du kan använda Azure Portal, Azure CLI, Azure PowerShell eller andra Azure-verktyg.
När du skapar ett huvudnamn för tjänsten konfigurerar du även dess åtkomst och behörigheter till Azure-resurser, till exempel ett containerregister. Ett exempelskript som använder Azure CLI finns i Azure Container Registry-autentisering med tjänstens huvudnamn.
Differentiera användare och tjänster
När behörigheter tillämpas är bästa praxis att tillhandahålla den mest begränsade uppsättningen behörigheter för en person eller tjänst för att utföra en uppgift. Följande behörighetsuppsättningar representerar en uppsättning funktioner som kan användas av människor och huvudlösa tjänster.
CI/CD-lösningar
När du automatiserar docker build
kommandon från CI/CD-lösningar behöver docker push
du funktioner. För dessa huvudlösa tjänstscenarier rekommenderar vi att du tilldelar AcrPush-rollen. Den här rollen förhindrar, till skillnad från den bredare deltagarrollen , kontot från att utföra andra registeråtgärder eller komma åt Azure Resource Manager.
Containervärdnoder
På samma sätt behöver noder som kör dina containrar rollen AcrPull , men bör inte kräva läsarfunktioner .
Visual Studio Code Docker-tillägg
För verktyg som Visual Studio Code Docker-tillägget krävs ytterligare åtkomst till resursprovidern för att visa en lista över tillgängliga Azure-containerregister. I det här fallet ger du användarna åtkomst till rollen Läsare eller Deltagare . Dessa roller tillåter docker pull
, docker push
, az acr list
, az acr build
och andra funktioner.
Åtkomst till Resource Manager
Azure Resource Manager-åtkomst krävs för Azure Portal och registerhantering med Azure CLI. Om du till exempel vill hämta en lista över register med hjälp av kommandot behöver du den az acr list
här behörighetsuppsättningen.
Skapa och ta bort register
Möjligheten att skapa och ta bort Azure-containerregister.
Push-avbildning
Möjligheten att docker push
skapa en avbildning eller skicka en annan artefakt som stöds, till exempel ett Helm-diagram, till ett register. Kräver autentisering med registret med hjälp av den auktoriserade identiteten.
Pull-avbildning
Möjligheten att docker pull
skapa en avbildning som inte är i karantän eller hämta en annan artefakt som stöds, till exempel ett Helm-diagram, från ett register. Kräver autentisering med registret med hjälp av den auktoriserade identiteten.
Ta bort bilddata
Möjligheten att ta bort containeravbildningar eller ta bort andra artefakter som stöds, till exempel Helm-diagram, från ett register.
Ändra principer
Möjligheten att konfigurera principer i ett register. Principer inkluderar bildrensning, aktivering av karantän och avbildningssignering.
Signera bilder
Möjligheten att signera bilder, vanligtvis tilldelade till en automatiserad process, som skulle använda tjänstens huvudnamn. Den här behörigheten kombineras vanligtvis med push-avbildning för att tillåta push-överföring av en betrodd avbildning till ett register. Mer information finns i Innehållsförtroende i Azure Container Registry.
Anpassade roller
Precis som med andra Azure-resurser kan du skapa anpassade roller med detaljerad behörighet till Azure Container Registry. Tilldela sedan anpassade roller till användare, tjänstens huvudnamn eller andra identiteter som behöver interagera med ett register.
Information om vilka behörigheter som ska tillämpas på en anpassad roll finns i listan över Microsoft.ContainerRegistry-åtgärder, granska de tillåtna åtgärderna för de inbyggda ACR-rollerna eller kör följande kommando:
az provider operation show --namespace Microsoft.ContainerRegistry
Information om hur du definierar en anpassad roll finns i Steg för att skapa en anpassad roll.
Kommentar
I klientorganisationer som har konfigurerats med en privat Azure Resource Manager-länk stöder Azure Container Registry jokerteckenåtgärder, till exempel Microsoft.ContainerRegistry/*/read
eller Microsoft.ContainerRegistry/registries/*/write
i anpassade roller, vilket ger åtkomst till alla matchande åtgärder. I en klientorganisation utan en privat ARM-länk anger du alla nödvändiga registeråtgärder individuellt i en anpassad roll.
Exempel: Anpassad roll för att importera bilder
Följande JSON definierar till exempel de minsta åtgärderna för en anpassad roll som tillåter import av avbildningar till ett register.
{
"assignableScopes": [
"/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
],
"description": "Can import images to registry",
"Name": "AcrImport",
"permissions": [
{
"actions": [
"Microsoft.ContainerRegistry/registries/push/write",
"Microsoft.ContainerRegistry/registries/pull/read",
"Microsoft.ContainerRegistry/registries/read",
"Microsoft.ContainerRegistry/registries/importImage/action"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleType": "CustomRole"
}
Om du vill skapa eller uppdatera en anpassad roll med JSON-beskrivningen använder du Azure CLI, Azure Resource Manager-mallen, Azure PowerShell eller andra Azure-verktyg. Lägg till eller ta bort rolltilldelningar för en anpassad roll på samma sätt som du hanterar rolltilldelningar för inbyggda Azure-roller.
Nästa steg
Läs mer om att tilldela Azure-roller till en Azure-identitet med hjälp av Azure Portal, Azure CLI, Azure PowerShell eller andra Azure-verktyg.
Läs mer om autentiseringsalternativ för Azure Container Registry.
Lär dig mer om att aktivera behörigheter med lagringsplatsomfattning i ett containerregister.