rollen en machtigingen Azure Container Registry

De Azure Container Registry-service ondersteunt een set ingebouwde Azure-rollen die verschillende machtigingsniveaus bieden voor een Azure-containerregister. Gebruik op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) om specifieke machtigingen toe te wijzen aan gebruikers, service-principals of andere identiteiten die moeten communiceren met een register, bijvoorbeeld voor het ophalen of pushen van containerinstallatiekopieën. U kunt ook aangepaste rollen definiëren met gedetailleerde machtigingen voor een register voor verschillende bewerkingen.

Rol/Machtiging Access-Resource Manager Register maken/verwijderen Installatiekopieën pushen Pull-installatiekopie Afbeeldingsgegevens verwijderen Beleid wijzigen Afbeeldingen ondertekenen
Eigenaar X X X X X X
Inzender X X X X X X
Lezer X X
AcrPush X X
AcrPull X
AcrDelete X
AcrImageSigner X

Rollen toewijzen

Zie Stappen voor het toevoegen van een roltoewijzing voor stappen op hoog niveau om een roltoewijzing toe te voegen aan een bestaande gebruiker, groep, service-principal of beheerde identiteit. U kunt de Azure Portal, Azure CLI, Azure PowerShell of andere Azure-hulpprogramma's gebruiken.

Wanneer u een service-principal maakt, configureert u ook de toegang en machtigingen voor Azure-resources, zoals een containerregister. Zie verificatie met service-principals Azure Container Registry voor een voorbeeldscript met behulp van de Azure CLI.

Onderscheid maken tussen gebruikers en services

Telkens wanneer machtigingen worden toegepast, wordt aanbevolen om de meest beperkte set machtigingen voor een persoon of service te bieden om een taak uit te voeren. De volgende machtigingensets vertegenwoordigen een set mogelijkheden die kunnen worden gebruikt door mensen en headless-services.

CI/CD-oplossingen

Wanneer u opdrachten van CI/CD-oplossingen automatiseert docker build , hebt u mogelijkheden nodig docker push . Voor deze headless servicescenario's raden we u aan de rol AcrPush toe te wijzen. Deze rol voorkomt, in tegenstelling tot de bredere rol Inzender, dat het account andere registerbewerkingen uitvoert of toegang heeft tot Azure Resource Manager.

Containerhostknooppunten

Op dezelfde manier hebben knooppunten waarop uw containers worden uitgevoerd de rol AcrPull nodig, maar geen lezermogelijkheden .

Docker-extensie voor Visual Studio Code

Voor hulpprogramma's zoals de Docker-extensie van Visual Studio Code is aanvullende toegang tot de resourceprovider vereist om de beschikbare Azure-containerregisters weer te geven. Geef in dit geval uw gebruikers toegang tot de rol Lezer of Inzender . Met deze rollen zijn , , , az acr builden andere mogelijkheden toegestaandocker pull. az acr listdocker push

Access-Resource Manager

Azure Resource Manager-toegang is vereist voor het Azure Portal en registerbeheer met de Azure CLI. Als u bijvoorbeeld een lijst met registers wilt ophalen met behulp van de az acr list opdracht, hebt u deze machtigingenset nodig.

Register maken en verwijderen

De mogelijkheid om Azure-containerregisters te maken en te verwijderen.

Installatiekopieën pushen

De mogelijkheid om docker push een installatiekopieën of een ander ondersteund artefact, zoals een Helm-grafiek, naar een register te pushen . Vereist verificatie met het register met behulp van de geautoriseerde identiteit.

Pull-installatiekopie

De mogelijkheid om een niet-in quarantaine geplaatste installatiekopie op te halen of een ander ondersteund artefact, zoals een Helm-grafiek, uit een register op te docker pull halen. Vereist verificatie met het register met behulp van de geautoriseerde identiteit.

Afbeeldingsgegevens verwijderen

De mogelijkheid om containerinstallatiekopieën of andere ondersteunde artefacten , zoals Helm-grafieken, te verwijderen uit een register.

Beleid wijzigen

De mogelijkheid om beleidsregels voor een register te configureren. Beleidsregels omvatten het opschonen van afbeeldingen, het inschakelen van quarantaine en het ondertekenen van afbeeldingen.

Afbeeldingen ondertekenen

De mogelijkheid om afbeeldingen te ondertekenen, meestal toegewezen aan een geautomatiseerd proces, dat een service-principal zou gebruiken. Deze machtiging wordt doorgaans gecombineerd met push-installatiekopieën , zodat een vertrouwde installatiekopieën naar een register kunnen worden gepusht. Zie Inhoud vertrouwen in Azure Container Registry voor meer informatie.

Aangepaste rollen

Net als bij andere Azure-resources kunt u aangepaste rollen maken met gedetailleerde machtigingen voor Azure Container Registry. Wijs vervolgens de aangepaste rollen toe aan gebruikers, service-principals of andere identiteiten die moeten communiceren met een register.

Als u wilt bepalen welke machtigingen moeten worden toegepast op een aangepaste rol, raadpleegt u de lijst met Microsoft.ContainerRegistry-acties, controleert u de toegestane acties van de ingebouwde ACR-rollen of voert u de volgende opdracht uit:

az provider operation show --namespace Microsoft.ContainerRegistry

Zie Stappen voor het maken van een aangepaste rol om een aangepaste rol te definiëren.

Notitie

In tenants die zijn geconfigureerd met Azure Resource Manager private link, ondersteunt Azure Container Registry acties met jokertekens, zoals Microsoft.ContainerRegistry/*/read of Microsoft.ContainerRegistry/registries/*/write in aangepaste rollen, waarmee toegang wordt verleend tot alle overeenkomende acties. Geef in een tenant zonder een arm-privékoppeling alle vereiste registeracties afzonderlijk op in een aangepaste rol.

Voorbeeld: Aangepaste rol voor het importeren van afbeeldingen

De volgende JSON definieert bijvoorbeeld de minimale acties voor een aangepaste rol die het importeren van installatiekopieën in een register toestaat.

{
   "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"
 }

Als u een aangepaste rol wilt maken of bijwerken met behulp van de JSON-beschrijving, gebruikt u de Azure CLI, Azure Resource Manager-sjabloon, Azure PowerShell of andere Azure-hulpprogramma's. U kunt roltoewijzingen voor een aangepaste rol op dezelfde manier toevoegen of verwijderen als u roltoewijzingen voor ingebouwde Azure-rollen beheert.

Volgende stappen