Použití identity spravované Azure v úlohách ACR

Povolte spravovanou identitu pro prostředky Azure v úloze ACR, aby úloha mohla přistupovat k jiným prostředkům Azure bez nutnosti zadávat nebo spravovat přihlašovací údaje. Použijte například spravovanou identitu, která umožňuje kroku úkolu vyžádat nebo odeslat image kontejneru do jiného registru.

V tomto článku se dozvíte, jak pomocí Azure CLI povolit spravovanou identitu přiřazenou uživatelem nebo systémem u úlohy ACR. Můžete použít Azure Cloud Shell nebo místní instalaci Azure CLI. Pokud ho chcete používat místně, vyžaduje se verze 2.0.68 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Ukázkové příkazy v tomto článku pro ilustraci používají příkazy az acr task create k vytvoření základní úlohy sestavení image, která umožňuje spravovanou identitu. Ukázkové scénáře přístupu k zabezpečeným prostředkům z úlohy ACR pomocí spravované identity najdete tady:

Proč používat spravovanou identitu?

Spravovaná identita pro prostředky Azure poskytuje vybrané služby Azure s automaticky spravovanou identitou v Microsoft Entra ID. Úlohu ACR můžete nakonfigurovat se spravovanou identitou, aby úloha získala přístup k jiným zabezpečeným prostředkům Azure bez předání přihlašovacích údajů v krocích úkolu.

Spravované identity mají dva typy:

  • Identity přiřazené uživatelem, které můžete přiřadit k více prostředkům a zachovat tak dlouho, dokud chcete. Identity přiřazené uživatelem jsou aktuálně ve verzi Preview.

  • Identita přiřazená systémem, která je jedinečná pro konkrétní prostředek, jako je úloha ACR, a trvá po celou dobu života tohoto prostředku.

V úloze ACR můžete povolit buď nebo oba typy identity. Udělte identitě přístup k jinému prostředku stejně jako jakýkoli objekt zabezpečení. Když se úloha spustí, použije identitu pro přístup k prostředku v libovolném postupu úkolu, který vyžaduje přístup.

Postup použití spravované identity

Pokud chcete použít spravovanou identitu s úlohou ACR, postupujte podle těchto základních kroků.

1. (Volitelné) Vytvoření identity přiřazené uživatelem

Pokud plánujete použít identitu přiřazenou uživatelem, použijte existující identitu nebo ji vytvořte pomocí Azure CLI nebo jiných nástrojů Azure. Použijte například příkaz az identity create .

Pokud plánujete používat pouze identitu přiřazenou systémem, tento krok přeskočte. Identitu přiřazenou systémem vytvoříte při vytváření úlohy ACR.

2. Povolení identity u úlohy ACR

Při vytváření úlohy ACR volitelně povolte identitu přiřazenou uživatelem, identitu přiřazenou systémem nebo obojí. Například při spuštění příkazu az acr task create v Azure CLI předejte --assign-identity parametr.

Pokud chcete povolit identitu přiřazenou systémem, předejte --assign-identity ji bez hodnoty nebo assign-identity [system]. Následující ukázkový příkaz vytvoří úlohu Linuxu z veřejného úložiště GitHub, které vytvoří hello-world image a povolí spravovanou identitu přiřazenou systémem:

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

Pokud chcete povolit identitu přiřazenou uživatelem, předejte --assign-identity ji s hodnotou ID prostředku identity. Následující ukázkový příkaz vytvoří úlohu Linuxu z veřejného úložiště GitHub, které vytvoří hello-world image a povolí spravovanou identitu přiřazenou uživatelem:

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>

ID prostředku identity můžete získat spuštěním příkazu az identity show . ID prostředku pro ID myUserAssignedIdentity ve skupině prostředků myResourceGroup je ve formuláři:

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

3. Udělení oprávnění identit pro přístup k dalším prostředkům Azure

V závislosti na požadavcích vašeho úkolu udělte identitě oprávnění pro přístup k dalším prostředkům Azure. Příkladem může být:

  • Přiřaďte spravovanou identitu roli s oprávněním k vyžádání, nasdílení změn a přijetí změn nebo jiným oprávněním k cílovému registru kontejneru v Azure. Úplný seznam rolí registru najdete v článku Role a oprávnění služby Azure Container Registry.
  • Přiřaďte spravovanou identitu roli ke čtení tajných kódů v trezoru klíčů Azure.

Ke správě přístupu k prostředkům použijte Azure CLI nebo jiné nástroje Azure. Například spuštěním příkazu az role assignment create přiřaďte identitě roli k prostředku.

Následující příklad přiřadí spravovanou identitu oprávnění k vyžádání z registru kontejneru. Příkaz určuje ID objektu zabezpečení identity úlohy a ID prostředku cílového registru.

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

4. (Volitelné) Přidání přihlašovacích údajů k úloze

Pokud vaše úloha potřebuje přihlašovací údaje k vyžádání nebo nasdílení imagí do jiného vlastního registru nebo přístupu k jiným prostředkům, přidejte do úlohy přihlašovací údaje. Spuštěním příkazu az acr task credential add přidejte přihlašovací údaje a předejte --use-identity parametr, který indikuje, že identita má přístup k přihlašovacím údajům.

Pokud chcete například přidat přihlašovací údaje pro identitu přiřazenou systémem pro ověření pomocí cílového registru kontejneru Azure, předejteuse-identity [system]:

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

Pokud chcete přidat přihlašovací údaje pro identitu přiřazenou uživatelem, která se má ověřit v cílovém registru registru, předejte use-identity id klienta identity. Příklad:

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

ID klienta identity můžete získat spuštěním příkazu az identity show . ID klienta je identifikátor GUID formuláře xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Parametr --use-identity není volitelný, pokud má registr zakázaný přístup k veřejné síti a spoléhá pouze na určité důvěryhodné služby pro spouštění úloh ACR. Podívejte se na příklad úloh ACR jako důvěryhodné služby.

5. Spusťte úlohu.

Po konfiguraci úlohy se spravovanou identitou spusťte úlohu. Pokud chcete například otestovat jednu z úloh vytvořených v tomto článku, ručně ji aktivujte pomocí příkazu az acr task run . Pokud jste nakonfigurovali další automatické triggery úloh, úloha se spustí při automatické aktivaci.

Další kroky

V tomto článku jste zjistili, jak povolit a používat spravovanou identitu přiřazenou uživatelem nebo systémem pro úlohu ACR. Scénáře přístupu k zabezpečeným prostředkům z úlohy ACR pomocí spravované identity najdete tady: