Dela via


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 buildoch 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