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 kontejnerů s Azure Kubernetes Service (AKS) nebo jiným clusterem Kubernetes, podívejte se na scénáře pro ověření pomocí 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 Ověření Scénáře Řízení přístupu na základě role Azure (Azure RBAC) Omezení
Individuální identita AD  az acr login v Azure CLI

Connect-AzContainerRegistryv Azure PowerShell
Interaktivní nabízení a vyžádání od vývojářů, testerů Yes Token AD se musí obnovit každých 3 hodiny.
Instanční objekt AD  docker login

az acr login v Azure CLI

Connect-AzContainerRegistryv Azure PowerShell

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

Tajný kód pro přijetí změn Kubernetes   
Bezobslužné nabízení z kanálu CI/CD

Bezobslužné přijetí změn do Azure nebo externích služeb
Yes Výchozí platnost hesla SP je 1 rok
Spravovaná identita pro prostředky Azure  docker login

az acr login v Azure CLI

Connect-AzContainerRegistryv Azure PowerShell
Bezobslužné nabízení z kanálu CI/CD Azure

Bezobslužné přijetí změn do služeb Azure

Yes Používejte jenom z vybraných služeb Azure, které podporují spravované identity pro prostředky Azure.
Spravovaná identita clusteru AKS  Připojení registru při vytvoření nebo aktualizaci clusteru AKS Bezobslužné vyžádání do clusteru AKS ve stejném nebo jiném předplatném Ne, přístup jen pro vyžádání K dispozici pouze v clusteru AKS

Nejde použít pro ověřování mezi tenanty
Instanční objekt clusteru AKS  Povolení při vytvoření nebo aktualizaci clusteru AKS Bezobslužné přijetí změn do clusteru AKS z registru v jiném tenantovi AD Ne, přístup jen pro vyžádání K dispozici pouze v clusteru AKS
Správa uživatel  docker login  Interaktivní nabízení a přijetí změn podle jednotlivých vývojářů nebo testerů

Nasazení image z registru do Azure App Service nebo Azure Container Instances portálu
Ne, vždy vyžádat a odeslat přístup Jeden účet na registr, nedoporučuje se pro více uživatelů.
Přístupový token s oborem úložiště  docker login

az acr login v Azure CLI

Connect-AzContainerRegistryv Azure PowerShell

Tajný kód pro přijetí změn Kubernetes 
Interaktivní nabízení a vyžádání změn do úložiště podle jednotlivých vývojářů nebo testerů

Bezobslužné vyžádání z úložiště podle jednotlivých systémů nebo externích zařízení
Yes Aktuálně není integrovaná s identitou AD.

Individuální přihlášení pomocí Azure AD

Při přímé práci s registrem, jako je například vyžádání imagí do vývojové pracovní stanice do registru, který jste vytvořili, 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 v registru. Aby bylo možné tok ověřování dokončit, musí být v prostředí nainstalovaný a spuštěný démon Dockeru cli a Dockeru. az acr login používá klienta Dockeru k nastavení tokenu Azure Active Directory v docker.config souboru. Po přihlášení tímto způsobem se vaše 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.

Tip

Slouží 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 v Azure (Azure RBAC). V některých scénářích se můžete chtít přihlásit k registru s vlastní individuální identitou v Azure AD nebo nakonfigurovat jiné uživatele Azure s konkrétními rolemi a oprávněními Azure. 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 také přihlásit pomocí spravované identity pro prostředky Azure.

az acr login with --expose-token

V některých případech je potřeba provést ověření, az acr login když démon Dockeru není ve vašem prostředí spuštěný. Můžete například potřebovat spustit az acr login skript v Azure Cloud Shell, který poskytuje rozhraní příkazového řádku Dockeru, ale nespustí démona Dockeru.

V tomto scénáři spusťte az acr login nejprve parametr --expose-token . Tato možnost zveřejňuje přístupový token místo přihlášení prostřednictvím rozhraní příkazového řádku Dockeru.

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

Výstup zobrazí přístupový token zkrácený tady:

{
  "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 , předejte docker login00000000-0000-0000-0000-000000000000 jako uživatelské jméno a jako heslo použijte přístupový token:

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

Podobně můžete token vrácený az acr login příkazem helm 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

Instanční objekt

Pokud k registru přiřadíte instanční objekt , vaše aplikace nebo služba ho můžou používat k ověřování bez hlavy. Instanční objekty umožňují řízení přístupu na základě role Azure (Azure RBAC) do registru a k registru můžete přiřadit více instančních objektů. Více instančních objektů umožňuje definovat jiný přístup pro různé aplikace.

Ověřovací token ACR se vytvoří při přihlášení k ACR a při dalších operacích se aktualizuje. Doba života pro tento token je 3 hodiny.

Mezi dostupné role pro registr kontejneru patří:

  • AcrPull: pull

  • AcrPush: pull and push

  • Vlastník: vyžádání, nabízení a přiřazení rolí jiným uživatelům

Úplný seznam rolí najdete v tématu Azure Container Registry rolí a oprávnění.

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 Azure Container Registry ověřování 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 správce můžete povolit a spravovat jeho přihlašovací údaje v Azure Portal nebo pomocí Azure CLI, Azure PowerShell 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. Pokud například použijete Azure Portal k nasazení image kontejneru z registru přímo do Azure Container Instances nebo Azure Web Apps pro kontejnery, je potřeba účet správce.

Důležité

Účet správce je určený pro jednoho uživatele, který má přístup k registru, hlavně 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í účtem správce, se zobrazí jako jeden uživatel s nabízeným oznámením a vyžádáním přístupu k registru. Změna nebo zakázání tohoto účtu zakáže přístup registru všem uživatelům, kteří používají jeho přihlašovací údaje. Individuální identita se doporučuje pro uživatele a instanční objekty pro scénáře bez hlavy.

Úč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ě. Opětovné 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 při opětovném vygenerování druhého hesla. Pokud je účet správce povolený, můžete uživatelské jméno a heslo docker login předat příkazu po zobrazení výzvy k základnímu ověřování do registru. Pří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říkazu 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 v Azure Portal tak, že přejdete do registru, v části NASTAVENÍ vyberete Přístupové klíče a pak v části Správa uživatelpovolíte.

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

Další kroky