Een door Azure beheerde identiteit gebruiken in ACR Tasks

Schakel een beheerde identiteit in voor Azure-resources in een ACR-taak, zodat de taak toegang heeft tot andere Azure-resources, zonder referenties op te geven of te beheren. Gebruik bijvoorbeeld een beheerde identiteit om een taakstap in te schakelen voor het ophalen of pushen van containerinstallatiekopieën naar een ander register.

In dit artikel leert u hoe u de Azure CLI gebruikt om een door de gebruiker toegewezen of door het systeem toegewezen beheerde identiteit in te schakelen voor een ACR-taak. U kunt de Azure Cloud Shell of een lokale installatie van de Azure CLI gebruiken. Als u deze lokaal wilt gebruiken, is versie 2.0.68 of hoger vereist. Voer az --version uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Ter illustratie gebruiken de voorbeeldopdrachten in dit artikel az acr task create om een eenvoudige build-taak voor installatiekopieën te maken die een beheerde identiteit mogelijk maakt. Zie voor voorbeeldscenario's voor toegang tot beveiligde resources vanuit een ACR-taak met behulp van een beheerde identiteit:

Waarom een beheerde identiteit gebruiken?

Een beheerde identiteit voor Azure-resources biedt geselecteerde Azure-services met een automatisch beheerde identiteit in Microsoft Entra-id. U kunt een ACR-taak configureren met een beheerde identiteit, zodat de taak toegang heeft tot andere beveiligde Azure-resources, zonder referenties door te geven in de taakstappen.

Beheerde identiteiten zijn van twee typen:

  • Door de gebruiker toegewezen identiteiten, die u aan meerdere resources kunt toewijzen en zolang u wilt behouden. Door de gebruiker toegewezen identiteiten zijn momenteel beschikbaar als preview-versie.

  • Een door het systeem toegewezen identiteit, die uniek is voor een specifieke resource, zoals een ACR-taak en die voor de levensduur van die resource duurt.

U kunt een of beide typen identiteiten inschakelen in een ACR-taak. Verdeel de identiteit toegang tot een andere resource, net als elke beveiligingsprincipaal. Wanneer de taak wordt uitgevoerd, wordt de identiteit gebruikt voor toegang tot de resource in alle taakstappen waarvoor toegang is vereist.

Stappen voor het gebruik van een beheerde identiteit

Volg deze stappen op hoog niveau om een beheerde identiteit te gebruiken met een ACR-taak.

1. (Optioneel) Een door de gebruiker toegewezen identiteit maken

Als u van plan bent om een door de gebruiker toegewezen identiteit te gebruiken, gebruikt u een bestaande identiteit of maakt u de identiteit met behulp van de Azure CLI of andere Azure-hulpprogramma's. Gebruik bijvoorbeeld de opdracht az identity create .

Als u van plan bent om alleen een door het systeem toegewezen identiteit te gebruiken, slaat u deze stap over. U maakt een door het systeem toegewezen identiteit wanneer u de ACR-taak maakt.

2. Identiteit inschakelen voor een ACR-taak

Wanneer u een ACR-taak maakt, schakelt u eventueel een door de gebruiker toegewezen identiteit, een door het systeem toegewezen identiteit of beide in. Geef bijvoorbeeld de parameter door wanneer u de --assign-identityopdracht az acr task create uitvoert in de Azure CLI.

Als u een door het systeem toegewezen identiteit wilt inschakelen, geeft --assign-identity u zonder waarde of assign-identity [system]. Met de volgende voorbeeldopdracht maakt u een Linux-taak op basis van een openbare GitHub-opslagplaats die de hello-world installatiekopieën bouwt en een door het systeem toegewezen beheerde identiteit inschakelt:

az acr task create \
    --image hello-world:{{.Run.ID}} \
    --name hello-world --registry MyRegistry \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --file Dockerfile \
    --commit-trigger-enabled false \
    --assign-identity

Als u een door de gebruiker toegewezen identiteit wilt inschakelen, geeft u --assign-identity een waarde op van de resource-id van de identiteit. Met de volgende voorbeeldopdracht maakt u een Linux-taak op basis van een openbare GitHub-opslagplaats die de hello-world installatiekopieën bouwt en een door de gebruiker toegewezen beheerde identiteit inschakelt:

az acr task create \
    --image hello-world:{{.Run.ID}} \
    --name hello-world --registry MyRegistry \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --file Dockerfile \
    --commit-trigger-enabled false
    --assign-identity <resourceID>

U kunt de resource-id van de identiteit ophalen door de opdracht az identity show uit te voeren. De resource-id voor de id myUserAssignedIdentity in resourcegroep myResourceGroup heeft de volgende vorm:

"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUserAssignedIdentity"

3. De identiteitsmachtigingen verlenen voor toegang tot andere Azure-resources

Afhankelijk van de vereisten van uw taak, verleent u de identiteitsmachtigingen voor toegang tot andere Azure-resources. Voorbeelden zijn:

  • Wijs de beheerde identiteit een rol toe met pull-, push- en pull-machtigingen of andere machtigingen voor een doelcontainerregister in Azure. Raadpleeg Azure Container Registry-rollen en -machtigingen voor een volledig overzicht van registerrollen.
  • Wijs de beheerde identiteit een rol toe om geheimen in een Azure-sleutelkluis te lezen.

Gebruik de Azure CLI of andere Azure-hulpprogramma's om op rollen gebaseerde toegang tot resources te beheren. Voer bijvoorbeeld de opdracht az role assignment create uit om de identiteit een rol toe te wijzen aan de resource.

In het volgende voorbeeld wordt een beheerde identiteit toegewezen aan de machtigingen voor het ophalen uit een containerregister. Met de opdracht geeft u de principal-id van de taak-id en de resource-id van het doelregister op.

az role assignment create \
  --assignee <principalID> \
  --scope <registryID> \
  --role acrpull

4. (Optioneel) Referenties toevoegen aan de taak

Als uw taak referenties nodig heeft om installatiekopieën op te halen of te pushen naar een ander aangepast register of om toegang te krijgen tot andere resources, voegt u referenties toe aan de taak. Voer de opdracht az acr task credential add uit om referenties toe te voegen en geef de --use-identity parameter door om aan te geven dat de identiteit toegang heeft tot de referenties.

Als u bijvoorbeeld referenties wilt toevoegen voor een door het systeem toegewezen identiteit om te verifiëren met het doelregister van het Azure-containerregister, geeft u use-identity [system]het volgende door:

az acr task credential add \
    --name helloworld \
    --registry myregistry \
    --login-server targetregistry.azurecr.io \
    --use-identity [system]

Als u referenties wilt toevoegen voor een door de gebruiker toegewezen identiteit om te verifiëren met het registerdoelregister, geeft use-identity u een waarde van de client-id van de identiteit door. Bijvoorbeeld:

az acr task credential add \
    --name helloworld \
    --registry myregistry \
    --login-server targetregistry.azurecr.io \
    --use-identity <clientID>

U kunt de client-id van de identiteit ophalen door de opdracht az identity show uit te voeren. De client-id is een GUID van het formulier xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

De --use-identity parameter is niet optioneel, als het register openbare netwerktoegang heeft uitgeschakeld en alleen afhankelijk is van bepaalde vertrouwde services om ACR-taken uit te voeren. Zie het voorbeeld van ACR Tasks als een vertrouwde service.

5. Voer de taak uit

Nadat u een taak met een beheerde identiteit hebt geconfigureerd, voert u de taak uit. Als u bijvoorbeeld een van de taken wilt testen die in dit artikel zijn gemaakt, activeert u deze handmatig met behulp van de opdracht az acr task run . Als u extra, geautomatiseerde taaktriggers hebt geconfigureerd, wordt de taak uitgevoerd wanneer deze automatisch wordt geactiveerd.

Volgende stappen

In dit artikel hebt u geleerd hoe u een door de gebruiker toegewezen of door het systeem toegewezen beheerde identiteit kunt inschakelen en gebruiken voor een ACR-taak. Zie voor scenario's voor toegang tot beveiligde resources vanuit een ACR-taak met behulp van een beheerde identiteit: