Azure Container Registry roller och behörigheter

Tjänsten Azure Container Registry 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 detaljerade behörigheter till ett register för olika åtgärder.

Roll/behörighet Åtkomst Resource Manager Skapa/ta bort register Push-avbildning Hämta 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.

Särskilja 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 Docker-tillägget i Visual Studio Code 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 . De här rollerna tillåter docker pull, docker push, az acr list, az acr buildoch andra funktioner.

Åtkomst 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 här behörighetsuppsättningen az acr list .

Skapa och ta bort register

Möjligheten att skapa och ta bort Azure-containerregister.

Push-avbildning

Möjligheten till docker push en avbildning eller push-överför 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.

Hämta avbildning

Möjligheten att skapa docker pull 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. Principerna omfattar 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 detaljerade behörigheter för att Azure Container Registry. Tilldela sedan de anpassade rollerna 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.

Anteckning

I klienter som konfigurerats med Azure Resource Manager privat länk stöder Azure Container Registry jokerteckenåtgärder som 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 avbildningar

Följande JSON definierar till exempel minsta åtgärder 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 hjälp av JSON-beskrivningen använder du mallen Azure CLI, Azure Resource Manager, 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