Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Er zijn verschillende manieren om te verifiëren met een Azure-containerregister, die elk van toepassing is op een of meer scenario's voor registergebruik.
Aanbevolen manieren zijn onder andere:
- Rechtstreeks verifiëren bij een register via afzonderlijke aanmelding
- Toepassingen en containerorchestrators kunnen zonder toezicht of 'headless' verificatie uitvoeren met behulp van een Microsoft Entra-service-principal
Als u een containerregister gebruikt met Azure Kubernetes Service (AKS) of een ander Kubernetes-cluster, raadpleegt u Scenario's voor verificatie met Azure Container Registry vanuit Kubernetes.
Verificatieopties
De volgende tabel bevat beschikbare verificatiemethoden en typische scenario's. Zie de gekoppelde inhoud voor meer informatie.
Methode | Hoe te verifiëren | Scenario's | Op rollen gebaseerd toegangsbeheer van Microsoft Entra (RBAC) | Beperkingen |
---|---|---|---|---|
Afzonderlijke Microsoft Entra-identiteit |
az acr login in Azure CLIConnect-AzContainerRegistry in Azure PowerShell |
Interactieve push/pull mogelijk gemaakt door ontwikkelaars, testers | Ja | Microsoft Entra-token moet elke 3 uur worden vernieuwd |
Microsoft Entra-service-principal | docker login az acr login in Azure CLIConnect-AzContainerRegistry in Azure PowerShellRegisteraanmeldingsinstellingen in API's of hulpprogramma's Kubernetes pull-secret |
Push zonder toezicht vanuit CI/CD-pipeline Onbeheerde pull naar Azure of externe services |
Ja | De standaardvervaltermijn voor het SP-wachtwoord is 1 jaar. |
Door Microsoft Entra beheerde identiteit voor Azure-resources | docker login az acr login in Azure CLIConnect-AzContainerRegistry in Azure PowerShell |
Onbeheerde push vanuit Azure CI/CD-pijplijn Automatische pull naar Azure-services Raadpleeg de ACR-roltoewijzingsscenario's voor een lijst met scenario's voor roltoewijzing van beheerde identiteiten. |
Ja Microsoft Entra RBAC-roltoewijzingen met ingebouwde ACR-rollen Microsoft Entra-attributie-gebaseerde toegangscontrole (ABAC) voor Microsoft Entra-gebaseerde opslagplaatsmachtigingen |
Alleen van bepaalde Azure-services gebruiken die beheerde identiteiten voor Azure-resources ondersteunen |
Kubelet-beheerde identiteit voor AKS-clusterknooppunt | Register bijvoegen wanneer AKS-cluster is gemaakt of bijgewerkt | Onbeheerde pull naar AKS-clusterknooppunt in hetzelfde of een ander abonnement | Nee, alleen toegang om gegevens op te halen | Alleen beschikbaar met AKS-cluster Kan niet worden gebruikt voor verificatie tussen tenants |
Service-principal voor AKS-cluster | Inschakelen wanneer een AKS-cluster is gemaakt of bijgewerkt | Onbeheerde pull naar AKS-cluster vanuit een register in een andere Entra-tenant | Nee, alleen toegang om gegevens op te halen | Alleen beschikbaar met AKS-cluster |
Gebruiker met beheerdersrechten | docker login |
Interactieve push/pull door individuele ontwikkelaar of tester Implementatie via de portal van images uit register naar Azure App Service of Azure Container Instances |
Nee, altijd pull- en pushtoegang | Eén account per register, niet aanbevolen voor meerdere gebruikers |
Niet-Microsoft Entra-tokenmachtigingen voor opslagplaatsen | docker login az acr login in Azure CLIConnect-AzContainerRegistry in Azure PowerShellKubernetes pull-secret |
Interactieve push/pull naar opslagplaats door individuele ontwikkelaar of tester Pull zonder toezicht uit de opslagplaats per afzonderlijk systeem of extern apparaat |
Op tokens gebaseerde opslagplaatsmachtigingen bieden geen ondersteuning voor roltoewijzingen van Microsoft Entra RBAC. Zie microsoft Entra-toegangsbeheer (ABAC) voor machtigingen voor opslagplaatsen op basis van Microsoft Entra voor machtigingen voor opslagplaatsen op basis van Microsoft Entra . |
Momenteel niet geïntegreerd met Microsoft Entra-identiteit |
Individuele aanmelding met Microsoft Entra-id
Wanneer u rechtstreeks met uw register werkt, zoals het ophalen van installatiekopieën naar en het pushen van installatiekopieën van een ontwikkelwerkstation naar een register dat u hebt gemaakt, verifieert u zich met behulp van uw afzonderlijke Azure-identiteit. Meld u aan bij de Azure CLI met az login en voer vervolgens de opdracht az acr login uit:
az login
az acr login --name <acrName>
Wanneer u zich aanmeldt met az acr login
, gebruikt de CLI het token dat is aangemaakt toen u az login
uitvoerde om uw sessie naadloos te verifiëren met uw register. Als u de verificatiestroom wilt voltooien, moeten de Docker CLI en docker-daemon worden geïnstalleerd en uitgevoerd in uw omgeving.
az acr login
gebruikt de Docker-client om een Microsoft Entra-token in het docker.config
bestand in te stellen. Zodra u zich op deze manier hebt aangemeld, worden uw referenties in de cache opgeslagen en hebben volgende docker
opdrachten in uw sessie geen gebruikersnaam of wachtwoord nodig.
Aanbeveling
Gebruik az acr login
ook om een afzonderlijke identiteit te verifiëren wanneer u andere artefacten dan Docker-afbeeldingen naar uw register wilt verplaatsen of ophalen, zoals OCI-artefacten.
Voor registertoegang is het token dat wordt az acr login
gebruikt gedurende 3 uur geldig. Daarom wordt u aangeraden u altijd aan te melden bij het register voordat u een docker
opdracht uitvoert. Als uw token verloopt, kunt u het vernieuwen door de az acr login
opdracht opnieuw te gebruiken om opnieuw te verifiëren.
Het gebruik van az acr login
met Azure-identiteiten biedt Azure-rolgebaseerd toegangsbeheer (RBAC). Voor sommige scenario's kunt u zich aanmelden bij een register met uw eigen afzonderlijke identiteit in Microsoft Entra ID of andere Azure-gebruikers met specifieke rollen configureren. Zie het overzicht van Azure Container Registry Entra-machtigingen en -rollen. Voor scenario's tussen services of voor het afhandelen van de behoeften van een werkgroep of een ontwikkelwerkstroom waarvoor u geen afzonderlijke toegang wilt beheren, kunt u zich ook aanmelden met een beheerde identiteit voor Azure-resources.
az acr login with --expose-token
In sommige gevallen moet u zich authentiseren bij az acr login
wanneer de Docker-daemon niet actief is in uw omgeving. U moet az acr login
bijvoorbeeld uitvoeren in een script in Azure Cloud Shell, dat de Docker CLI biedt, maar de Docker-daemon niet uitvoert.
Voer az acr login
voor dit scenario eerst uit met de --expose-token
parameter. Met deze optie wordt een toegangstoken weergegeven in plaats van u aan te melden via de Docker CLI.
az acr login --name <acrName> --expose-token
De uitvoer geeft het toegangstoken weer, afgekort hier:
{
"accessToken": "eyJhbGciOiJSUzI1NiIs[...]24V7wA",
"loginServer": "myregistry.azurecr.io"
}
Voor registerverificatie raden we u aan om de tokenreferentie op een veilige locatie op te slaan en aanbevolen procedures te volgen voor het beheren van docker-aanmeldingsreferenties . Sla bijvoorbeeld de tokenwaarde op in een omgevingsvariabele:
TOKEN=$(az acr login --name <acrName> --expose-token --output tsv --query accessToken)
Voer vervolgens het volgende uit docker login
, waarbij u de gebruikersnaam doorgeeft 00000000-0000-0000-0000-000000000000
en het toegangstoken als wachtwoord gebruikt:
docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN
Op dezelfde manier kunt u het token gebruiken dat wordt geretourneerd door az acr login
de helm registry login
opdracht om te verifiëren met het register:
echo $TOKEN | helm registry login myregistry.azurecr.io \
--username 00000000-0000-0000-0000-000000000000 \
--password-stdin
Service-principal
Als u een service-principal toekent aan uw register, kan uw toepassing of service deze gebruiken voor authenticatie zonder gebruikersinterface. Service-principals staan op rollen gebaseerd toegangsbeheer (RBAC) van Azure toe aan een register en u kunt meerdere service-principals toewijzen aan een register. Met meerdere service-principals kunt u verschillende toegang voor verschillende toepassingen definiëren.
ACR-verificatietoken wordt gemaakt bij aanmelding bij de ACR en wordt vernieuwd bij volgende bewerkingen. De levensduur voor dat token is 3 uur.
Zie het overzicht van Azure Container Registry Entra-machtigingen en -rollen voor een lijst met beschikbare rollen.
Voor CLI-scripts voor het maken van een service-principal voor verificatie met een Azure-containerregister en meer richtlijnen raadpleegt u Azure Container Registry-verificatie met service-principals.
Beheerdersaccount
Elk containerregister bevat een gebruikersaccount voor beheerders, dat standaard is uitgeschakeld. U kunt de gebruiker met beheerdersrechten inschakelen en de referenties ervan beheren in Azure Portal, of met behulp van de Azure CLI, Azure PowerShell of andere Azure-hulpprogramma's. Het beheerdersaccount heeft volledige machtigingen voor het register.
Het beheerdersaccount is momenteel vereist voor sommige scenario's om een image van een containerregister naar bepaalde Azure-services te implementeren. Het beheerdersaccount is bijvoorbeeld nodig wanneer u de Azure-portal gebruikt om een containerimage direct naar Azure Container Instances of Azure Web Apps for Containers te implementeren.
Belangrijk
Het beheerdersaccount is bedoeld om één gebruiker toegang te bieden tot het register, voornamelijk voor testdoeleinden. Wij raden aan om de inloggegevens van het beheerdersaccount niet onder meerdere gebruikers te delen. Alle gebruikers die verifiëren met het beheerdersaccount, worden weergegeven als één gebruiker met push- en pull-toegang tot het register. Als u dit account wijzigt of uitschakelt, wordt toegang tot het Windows-register uitgeschakeld voor alle gebruikers die de bijbehorende referenties gebruiken. Afzonderlijke identiteit wordt aanbevolen voor gebruikers en service-principals voor hoofdloze scenario's.
Het beheerdersaccount wordt geleverd met twee wachtwoorden, die beide opnieuw kunnen worden gegenereerd. Nieuwe wachtwoorden die zijn gemaakt voor beheerdersaccounts zijn onmiddellijk beschikbaar. Het opnieuw genereren van wachtwoorden voor beheerdersaccounts duurt 60 seconden om te repliceren en beschikbaar te zijn. Met twee wachtwoorden kunt u verbinding met het register onderhouden door het ene wachtwoord te gebruiken terwijl u het andere opnieuw genereert. Als het beheerdersaccount is ingeschakeld, kunt u de gebruikersnaam en het wachtwoord doorgeven aan de docker login
opdracht wanneer u wordt gevraagd om basisverificatie naar het register. Voorbeeld:
docker login myregistry.azurecr.io
Zie de referentie voor de docker-aanmeldingsopdracht voor aanbevolen procedures voor het beheren van aanmeldingsreferenties.
Als u de gebruiker met beheerdersrechten voor een bestaand register wilt inschakelen, kunt u de --admin-enabled
parameter van de opdracht az acr update in de Azure CLI gebruiken:
az acr update -n <acrName> --admin-enabled true
U kunt de gebruiker met beheerdersrechten in de Azure-portal inschakelen door in uw register te navigeren, toegangssleutels te selecteren onder INSTELLINGEN en vervolgens inschakelen onder Gebruiker beheerder.
Aanmelden met een alternatief containerhulpprogramma in plaats van Docker
In sommige scenario's moet u alternatieve containerhulpprogramma's gebruiken, zoals podman
in plaats van het algemene containerhulpprogramma docker
. Bijvoorbeeld: Docker is niet meer beschikbaar in RHEL 8 en 9, dus u moet overschakelen van containerhulpprogramma.
Het standaardcontainerhulpprogramma is ingesteld op docker
voor az acr login
opdrachten. Als u het standaardcontainerhulpprogramma niet instelt en de docker
opdracht ontbreekt in uw omgeving, wordt de volgende fout weergegeven:
az acr login --name <acrName>
2024-03-29 07:30:10.014426 An error occurred: DOCKER_COMMAND_ERROR
Please verify if Docker client is installed and running.
Als u het standaardcontainerhulpprogramma wilt wijzigen dat door de az acr login
opdracht wordt gebruikt, kunt u de omgevingsvariabele DOCKER_COMMAND
instellen. Voorbeeld:
DOCKER_COMMAND=podman \
az acr login --name <acrName>
Opmerking
U hebt Azure CLI versie 2.59.0 of hoger geïnstalleerd en geconfigureerd om deze functie te kunnen gebruiken. Voer az --version
uit om de versie te vinden. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.