Sdílet prostřednictvím


Ověřování pomocí registru kontejneru Azure

Existuje několik způsobů ověřování pomocí registru kontejneru Azure, z nichž každá se vztahuje na jeden nebo více scénářů použití registru.

Mezi doporučené způsoby patří:

Pokud používáte registr kontejneru se službou Azure Kubernetes Service (AKS) nebo jiným clusterem Kubernetes, přečtěte si o scénářích ověřování ve službě Azure Container Registry z Kubernetes.

Možnosti ověřování

Následující tabulka uvádí dostupné metody ověřování a typické scénáře. Podrobnosti najdete v propojeném obsahu.

Metoda Jak ověřovat přihlašovací údaje Scénáře Řízení přístupu na základě role (RBAC) Microsoft Entra Omezení
Individuální identita Microsoft Entra  az acr login v Azure CLI

Connect-AzContainerRegistry v Azure PowerShell
Interaktivní posílání a přijímání změn vývojáři a testery Ano Token Microsoft Entra se musí obnovit každých 3 hodiny.
Aplikační objekt služby Microsoft Entra  docker login

az acr login v Azure CLI

Connect-AzContainerRegistry v PowerShellu pro Azure

Nastavení přihlášení registru v rozhraních API nebo nástrojích

Tajný klíč pro stažení Kubernetes   
Bezobslužné nabízení z kanálu CI/CD

Automatizované stažení do Azure nebo k externím službám
Ano Výchozí platnost hesla SP je 1 rok
Spravovaná identita Microsoft Entra pro prostředky Azure  docker login

az acr login v Azure CLI

Connect-AzContainerRegistry v PowerShellu pro Azure
Bezobslužné poslání z prostředí Azure CI/CD.

Bezobslužný přístup ke službám Azure

Seznam scénářů přiřazení rolí spravované identity najdete ve scénářích přiřazení rolí ACR.
Ano

Přiřazení rolí Microsoft Entra RBAC s předdefinovanými rolemi ACR

Řízení přístupu na základě atributů Microsoft Entra (ABAC) pro oprávnění úložiště založená na Microsoft Entra 
Používejte pouze z vybraných služeb Azure, které podporují spravované identity pro prostředky Azure.
Spravovaná identita uzlu clusteru AKS kubelet  Připojení registru při vytvoření nebo aktualizaci clusteru AKS Automatické stažení na uzel clusteru AKS v rámci stejného nebo odlišného předplatného Ne, pouze přístup ke stahování K dispozici pouze s clusterem AKS

Nejde použít pro ověřování mezi tenanty
Principál služby clusteru AKS  Povolení při vytvoření nebo aktualizaci clusteru AKS Bezobslužné stažení do clusteru AKS z registru jiného Entra tenanta Ne, pouze přístup ke stahování K dispozici pouze s clusterem AKS
Uživatel s rolí správce  docker login  Interaktivní push/pull jednotlivými vývojáři nebo testery

Nasazení image z registru do služby Azure App Service nebo Azure Container Instances na portálu
Ne, vždy vyžádat a odeslat přístup Jeden účet na registr, nedoporučuje se pro více uživatelů
Oprávnění úložiště založená na tokenech jiných společností než Microsoft Entra  docker login

az acr login v Azure CLI

Connect-AzContainerRegistry v PowerShellu pro Azure

Tajný klíč pro stažení Kubernetes 
Interaktivní push/pull operace do úložiště jednotlivým vývojářem nebo testerem

Bezobslužné vyžádání z úložiště jednotlivým systémem nebo externím zařízením
Oprávnění úložiště založená na tokenech nepodporují přiřazení rolí Microsoft Entra RBAC.

Informace o oprávněních úložiště založených na Microsoft Entra najdete v tématu Řízení přístupu na základě atributů Microsoft Entra (ABAC) pro oprávnění úložiště založená na Microsoft Entra .
Není aktuálně integrováno s identitou Microsoft Entra

Individuální přihlášení pomocí Microsoft Entra ID

Při přímé práci s registrem, například při načítání obrazů z registru do vývojové pracovní stanice a při nahrávání obrazů do registru, který jste vytvořili, se ověřte pomocí vaší individuální identity Azure. Přihlaste se k Azure CLI pomocí příkazu az login a spusťte příkaz az acr login :

az login
az acr login --name <acrName>

Když se přihlásíte pomocí az acr login, rozhraní příkazového řádku použije token vytvořený při spuštění az login k bezproblémovému ověření relace s registrem. K dokončení toku ověřování musí být rozhraní příkazového řádku Dockeru a démon Dockeru nainstalované a spuštěné ve vašem prostředí. az acr login používá klienta Dockeru k nastavení tokenu Microsoft Entra v docker.config souboru. Po přihlášení tímto způsobem se přihlašovací údaje ukládají do mezipaměti a následné docker příkazy v relaci nevyžadují uživatelské jméno ani heslo.

Návod

Používá se az acr login také k ověření individuální identity, pokud chcete do registru odeslat nebo vyžádat artefakty jiné než image Dockeru, jako jsou artefakty OCI.

Pro přístup k registru je token používaný az acr login3 hodiny platný, proto doporučujeme, abyste se před spuštěním docker příkazu vždy přihlásili k registru. Pokud platnost tokenu vyprší, můžete ho az acr login znovu aktualizovat pomocí příkazu k opětovnému ověření.

Použití az acr login s identitami Azure poskytuje řízení přístupu na základě role (RBAC) v Azure. V některých scénářích se můžete chtít přihlásit k registru s vlastní individuální identitou v Microsoft Entra ID nebo nakonfigurovat jiné uživatele Azure s konkrétními rolemi. Přehled oprávnění a rolí služby Azure Container Registry Pro scénáře napříč službami nebo zpracování potřeb pracovní skupiny nebo vývojového pracovního postupu, kde nechcete spravovat individuální přístup, se můžete přihlásit také pomocí spravované identity pro prostředky Azure.

az acr login with --expose-token

V některých případech se musíte autentizovat pomocí az acr login, když daemona Dockeru neběží ve vašem prostředí. Například možná budete muset spustit az acr login ve skriptu v Azure Cloud Shellu, který poskytuje Rozhraní příkazového řádku Dockeru, ale nespustí proces démona Dockeru.

Pro tento scénář spusťte az acr login nejprve s parametrem --expose-token . Tato možnost místo přihlášení prostřednictvím rozhraní příkazového řádku Dockeru zpřístupňuje přístupový token.

az acr login --name <acrName> --expose-token

Výstup zobrazí přístupový token, zkráceně zde:

{
  "accessToken": "eyJhbGciOiJSUzI1NiIs[...]24V7wA",
  "loginServer": "myregistry.azurecr.io"
}

Pro ověřování registru doporučujeme uložit přihlašovací údaje tokenu do bezpečného umístění a postupovat podle doporučených postupů pro správu přihlašovacích údajů Dockeru . Například uložte hodnotu tokenu do proměnné prostředí:

TOKEN=$(az acr login --name <acrName> --expose-token --output tsv --query accessToken)

Pak spusťte docker login, při předání 00000000-0000-0000-0000-000000000000 jako uživatelského jména a použijte přístupový token jako heslo.

docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN

Podobně můžete token vrácený příkazem az acr loginhelm registry login použít k ověření v registru:

echo $TOKEN | helm registry login myregistry.azurecr.io \
            --username 00000000-0000-0000-0000-000000000000 \
            --password-stdin

Hlavní služba

Pokud do registru přiřadíte služba principal, vaše aplikace nebo služba ho může použít k bezobslužnému ověřování. Instanční objekty umožňují řízení přístupu na základě role (RBAC) Azure k registru a k registru můžete přiřadit více instančních objektů. Několik objektů služby vám umožňuje definovat různé přístupy pro různé aplikace.

Ověřovací token ACR se vytvoří při přihlášení k ACR a aktualizuje se při následných operacích. Doba platnosti pro tento token je 3 hodiny.

Seznam dostupných rolí najdete v přehledu oprávnění a rolí služby Azure Container Registry Entra.

Skripty rozhraní příkazového řádku pro vytvoření instančního objektu pro ověřování pomocí registru kontejneru Azure a další pokyny najdete v tématu Ověřování azure Container Registry pomocí instančních objektů.

Účet správce

Každý registr kontejneru obsahuje uživatelský účet správce, který je ve výchozím nastavení zakázaný. Uživatele s rolí správce a jeho přihlašovací údaje můžete povolit na webu Azure Portal nebo pomocí Azure CLI, Azure PowerShellu nebo jiných nástrojů Azure. Účet správce má úplná oprávnění k registru.

Účet správce se v současné době vyžaduje pro některé scénáře nasazení image z registru kontejneru do určitých služeb Azure. Například účet správce je potřeba, když pomocí webu Azure Portal nasadíte image kontejneru z registru přímo do služby Azure Container Instances nebo Azure Web Apps for Containers.

Důležité

Účet správce je určený pro jednoho uživatele pro přístup k registru, zejména pro účely testování. Nedoporučujeme sdílet přihlašovací údaje účtu správce mezi více uživateli. Všichni uživatelé, kteří se ověřují pomocí účtu správce, se jeví jako jeden uživatel s přístupem pro zápis a čtení do registru. Změna nebo zakázání tohoto účtu zakáže přístup registru pro všechny uživatele, kteří používají jeho přihlašovací údaje. Individuální identita se doporučuje pro uživatele a instanční objekty pro bezobslužné scénáře.

Účet správce je k dispozici se dvěma hesly, z nichž obě se dají znovu vygenerovat. Nová hesla vytvořená pro účty správců jsou k dispozici okamžitě. Opakované vygenerování hesel pro účty správců bude trvat 60 sekund, než se replikují a budou dostupné. Dvě hesla umožňují udržovat připojení k registru pomocí jednoho hesla, zatímco znovu vygenerujete druhé. Pokud je účet správce povolený, můžete uživatelské jméno a jedno z hesel předat příkazu docker login po zobrazení výzvy k základnímu ověřování registru. Například:

docker login myregistry.azurecr.io

Doporučené postupy pro správu přihlašovacích údajů najdete v referenčních informacích k příkazům docker login .

Pokud chcete povolit uživatele správce pro existující registr, můžete použít --admin-enabled parametr příkazu az acr update v Azure CLI:

az acr update -n <acrName> --admin-enabled true

Uživatele správce můžete povolit na webu Azure Portal tak, že přejdete do registru, vyberete Přístupové klíče v části NASTAVENÍ a pak v části Uživatel s oprávněním správcepovolíte.

Povolení uživatelského rozhraní správce na webu Azure Portal

Přihlášení pomocí alternativního nástroje kontejneru místo Dockeru

V některých scénářích musíte místo běžného nástroje podmankontejneru použít alternativní nástroje docker kontejneru. Například: Docker už není k dispozici v RHEL 8 a 9, takže musíte přepnout nástroj kontejneru.

Výchozí nástroj kontejneru je nastavený na docker pro az acr login příkazy. Pokud nenastavíte výchozí nástroj pro kontejner a docker příkaz ve vašem prostředí chybí, zobrazí se následující chyba:

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.

Chcete-li změnit výchozí kontejnerový nástroj, který příkaz az acr login používá, můžete nastavit proměnnou prostředí DOCKER_COMMAND. Například:

DOCKER_COMMAND=podman \
az acr login --name <acrName>

Poznámka:

K použití této funkce potřebujete nainstalované a nakonfigurované Rozhraní příkazového řádku Azure CLI verze 2.59.0 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalovat nebo upgradovat, podívejte se na Install Azure CLI.

Další kroky