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ří:
- Ověření v registru přímo prostřednictvím individuálního přihlášení
- Aplikace a orchestrátory kontejnerů můžou provádět bezobslužné nebo bezobslužné ověřování pomocí instančního objektu Služby Azure Active Directory (Azure AD).
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 CLIConnect-AzContainerRegistry v 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 CLIConnect-AzContainerRegistry v Azure PowerShellNastavení 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 CLIConnect-AzContainerRegistry v 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 CLIConnect-AzContainerRegistry v Azure PowerShellTajný 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 login
3 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 login
00000000-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.