Używanie tożsamości zarządzanej platformy Azure w usłudze ACR Tasks

Włącz tożsamość zarządzaną dla zasobów platformy Azure w zadaniu usługi ACR, dzięki czemu zadanie może uzyskiwać dostęp do innych zasobów platformy Azure bez konieczności podawania poświadczeń ani zarządzania nimi. Na przykład użyj tożsamości zarządzanej, aby umożliwić krokowi zadania ściąganie lub wypychanie obrazów kontenerów do innego rejestru.

Z tego artykułu dowiesz się, jak za pomocą interfejsu wiersza polecenia platformy Azure włączyć tożsamość zarządzaną przypisaną przez użytkownika lub przypisaną przez system w zadaniu usługi ACR. Możesz użyć usługi Azure Cloud Shell lub lokalnej instalacji interfejsu wiersza polecenia platformy Azure. Jeśli chcesz używać go lokalnie, wymagana jest wersja 2.0.68 lub nowsza. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

W celach ilustracyjnych przykładowe polecenia w tym artykule używają polecenia az acr task create , aby utworzyć podstawowe zadanie kompilacji obrazu, które umożliwia tożsamość zarządzaną. Aby uzyskać przykładowe scenariusze uzyskiwania dostępu do zabezpieczonych zasobów z zadania usługi ACR przy użyciu tożsamości zarządzanej, zobacz:

Dlaczego warto używać tożsamości zarządzanej?

Tożsamość zarządzana dla zasobów platformy Azure udostępnia wybrane usługi platformy Azure z automatycznie zarządzaną tożsamością w usłudze Microsoft Entra ID. Zadanie usługi ACR można skonfigurować przy użyciu tożsamości zarządzanej, aby zadanie uzyskiwało dostęp do innych zabezpieczonych zasobów platformy Azure bez przekazywania poświadczeń w krokach zadania.

Tożsamości zarządzane to dwa typy:

  • Tożsamości przypisane przez użytkownika, które można przypisać do wielu zasobów i utrwalać tak długo, jak chcesz. Tożsamości przypisane przez użytkownika są obecnie dostępne w wersji zapoznawczej.

  • Tożsamość przypisana przez system, która jest unikatowa dla określonego zasobu, takiego jak zadanie usługi ACR, i trwa przez cały okres istnienia tego zasobu.

W zadaniu usługi ACR można włączyć albo oba typy tożsamości. Udziel tożsamości dostępu do innego zasobu, podobnie jak każdy podmiot zabezpieczeń. Gdy zadanie jest uruchamiane, używa tożsamości do uzyskiwania dostępu do zasobu w dowolnych krokach zadań, które wymagają dostępu.

Procedura używania tożsamości zarządzanej

Wykonaj te ogólne kroki, aby użyć tożsamości zarządzanej z zadaniem usługi ACR.

1. (Opcjonalnie) Tworzenie tożsamości przypisanej przez użytkownika

Jeśli planujesz używać tożsamości przypisanej przez użytkownika, użyj istniejącej tożsamości lub utwórz tożsamość przy użyciu interfejsu wiersza polecenia platformy Azure lub innych narzędzi platformy Azure. Na przykład użyj polecenia az identity create .

Jeśli planujesz używać tylko tożsamości przypisanej przez system, pomiń ten krok. Tożsamość przypisana przez system jest tworzona podczas tworzenia zadania usługi ACR.

2. Włączanie tożsamości w zadaniu usługi ACR

Podczas tworzenia zadania usługi ACR opcjonalnie włącz tożsamość przypisaną przez użytkownika, tożsamość przypisaną przez system lub obie te elementy. Na przykład przekaż parametr po uruchomieniu --assign-identitypolecenia az acr task create w interfejsie wiersza polecenia platformy Azure.

Aby włączyć tożsamość przypisaną przez system, przekaż wartość --assign-identity bez wartości lub assign-identity [system]. Następujące przykładowe polecenie tworzy zadanie systemu Linux z publicznego repozytorium GitHub, które kompiluje hello-world obraz i umożliwia przypisaną przez system tożsamość zarządzaną:

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

Aby włączyć tożsamość przypisaną przez użytkownika, przekaż --assign-identitywartość identyfikatora zasobu tożsamości. Następujące przykładowe polecenie tworzy zadanie systemu Linux z publicznego repozytorium GitHub, które kompiluje hello-world obraz i umożliwia przypisaną przez użytkownika tożsamość zarządzaną:

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>

Identyfikator zasobu tożsamości można uzyskać, uruchamiając polecenie az identity show . Identyfikator zasobu identyfikatora myUserAssignedIdentity w grupie zasobów myResourceGroup ma postać:

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

3. Udzielanie tożsamości uprawnień dostępu do innych zasobów platformy Azure

W zależności od wymagań zadania przyznaj tożsamości uprawnienia dostępu do innych zasobów platformy Azure. Oto kilka przykładów:

Użyj interfejsu wiersza polecenia platformy Azure lub innych narzędzi platformy Azure, aby zarządzać dostępem opartym na rolach do zasobów. Na przykład uruchom polecenie az role assignment create , aby przypisać tożsamość do zasobu.

W poniższym przykładzie przypisano tożsamość zarządzaną uprawnienia do ściągania z rejestru kontenerów. Polecenie określa identyfikator podmiotu zabezpieczeń tożsamości zadania i identyfikator zasobu rejestru docelowego.

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

4. (Opcjonalnie) Dodawanie poświadczeń do zadania

Jeśli zadanie wymaga poświadczeń do ściągania lub wypychania obrazów do innego rejestru niestandardowego lub uzyskiwania dostępu do innych zasobów, dodaj poświadczenia do zadania. Uruchom polecenie az acr task credential add, aby dodać poświadczenia, i przekaż --use-identity parametr , aby wskazać, że tożsamość może uzyskać dostęp do poświadczeń.

Aby na przykład dodać poświadczenia tożsamości przypisanej przez system do uwierzytelniania za pomocą docelowego rejestru kontenerów platformy Azure, przekaż polecenie use-identity [system]:

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

Aby dodać poświadczenia tożsamości przypisanej przez użytkownika do uwierzytelniania w rejestrze targetregistry, przekaż use-identity wartość identyfikatora klienta tożsamości. Przykład:

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

Identyfikator klienta tożsamości można uzyskać, uruchamiając polecenie az identity show . Identyfikator klienta jest identyfikatorem GUID formularza xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Parametr --use-identity nie jest opcjonalny, jeśli rejestr ma wyłączony dostęp do sieci publicznej i korzysta tylko z niektórych zaufanych usług do uruchamiania zadań usługi ACR. Zobacz przykład usługi ACR Tasks jako zaufaną usługę.

5. Uruchom zadanie

Po skonfigurowaniu zadania z tożsamością zarządzaną uruchom zadanie. Aby na przykład przetestować jedno z zadań utworzonych w tym artykule, ręcznie wyzwól je za pomocą polecenia az acr task run . Jeśli skonfigurowano dodatkowe wyzwalacze zadań automatycznych, zadanie jest uruchamiane po automatycznym wyzwoleniu.

Następne kroki

W tym artykule przedstawiono sposób włączania i używania tożsamości zarządzanej przypisanej przez użytkownika lub przypisanej przez system w zadaniu usługi ACR. Aby uzyskać dostęp do zabezpieczonych zasobów z zadania usługi ACR przy użyciu tożsamości zarządzanej, zobacz: