Azure Container Registry-rollen en -machtigingen
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 om containerinstallatiekopieën op te halen of te pushen. U kunt ook aangepaste rollen definiëren met verfijnde machtigingen voor een register voor verschillende bewerkingen.
Rol/Machtiging | Toegang tot Resource Manager | Register maken/verwijderen | Push-installatiekopieën | 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 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 Azure Container Registry-verificatie met service-principals voor een voorbeeldscript met behulp van de Azure CLI.
Onderscheid maken tussen gebruikers en services
Telkens wanneer machtigingen worden toegepast, kunt u het beste de meest beperkte set machtigingen voor een persoon of service opgeven om een taak uit te voeren. De volgende machtigingensets vertegenwoordigen een set mogelijkheden die kunnen worden gebruikt door mensen en services zonder hoofd.
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 om de AcrPush-rol toe te wijzen. Met deze rol voorkomt u, 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 hiervoor zijn geen lezermogelijkheden vereist.
Visual Studio Code Docker-extensie
Voor hulpprogramma's zoals de Docker-extensie van Visual Studio Code is extra 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 mogelijkheden toegestaan docker pull
, docker push
, az acr list
en az acr build
andere mogelijkheden.
Toegang tot Resource Manager
Azure Resource Manager-toegang is vereist voor 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.
Push-installatiekopieën
De mogelijkheid om een installatiekopieën te docker push
maken 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 docker pull
halen of een ander ondersteund artefact , zoals een Helm-grafiek, op te halen uit een register. Vereist verificatie met het register met behulp van de geautoriseerde identiteit.
Afbeeldingsgegevens verwijderen
De mogelijkheid om containerinstallatiekopieën te verwijderen of andere ondersteunde artefacten, zoals Helm-grafieken, te verwijderen uit een register.
Beleid wijzigen
De mogelijkheid om beleidsregels in 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 meestal gecombineerd met een push-installatiekopieën om het pushen van een vertrouwde installatiekopieën naar een register mogelijk te maken. Zie Inhoudsvertrouwen in Azure Container Registry voor meer informatie.
Aangepaste rollen
Net als bij andere Azure-resources kunt u aangepaste rollen maken met verfijnde 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 u wilt toepassen 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 als u een aangepaste rol wilt 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 waarmee installatiekopieën naar een register kunnen worden geïmporteerd.
{
"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. Voeg roltoewijzingen voor een aangepaste rol toe of verwijder deze op dezelfde manier als u roltoewijzingen voor ingebouwde Azure-rollen beheert.
Volgende stappen
Meer informatie over het toewijzen van Azure-rollen aan een Azure-identiteit met behulp van Azure Portal, de Azure CLI, Azure PowerShell of andere Azure-hulpprogramma's.
Meer informatie over verificatieopties voor Azure Container Registry.
Meer informatie over het inschakelen van machtigingen binnen het bereik van een opslagplaats in een containerregister.