Ověřování pomocí služby Azure Container Registry

Existuje několik způsobů, jak ověřit pomocí služby Azure Container Registry, z nichž každá je platná pro jeden nebo více scénářů použití registru.

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

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

Možnosti ověřování

Následující tabulka obsahuje seznam dostupných metod ověřování a typických scénářů. Podrobnosti najdete v tématu s propojeným obsahem.

Metoda Ověřování 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žádané sdílení pro vývojáře, testery Yes Token AD se musí obnovit každé 3 hodiny.
Instanční objekt služby AD docker login

az acr login v Azure CLI

Connect-AzContainerRegistryv Azure PowerShell

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

Tajný kód pro vyžádání obsahu Kubernetes
Bezobslužné vkládání z kanálu CI/CD

Bezobslužné stažení 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é vkládání z kanálu CI/CD z Azure

Bezobslužné získání dat 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řipojit registr při vytvoření nebo aktualizaci clusteru AKS Bezobslužné stažení do clusteru AKS ve stejném nebo jiném předplatném Ne, jenom přístup pro vyžádání K dispozici pouze v clusteru AKS

Nejde použít pro ověřování mezi klienty
AKS objekt služby Cluster Povolit při vytvoření nebo aktualizaci clusteru AKS Bezobslužné stažení do clusteru AKS z registru v jiném tenantovi služby AD Ne, jenom přístup pro vyžádání K dispozici pouze v clusteru AKS
Uživatel s oprávněními správce docker login Interaktivní nabízená oznámení nebo vyžádaná osoba pro jednotlivé vývojáře nebo testery

Nasazení bitové kopie z registru portálu do Azure App Service nebo Azure Container Instances
Ne, vždycky získávat a nabízet 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 vyžádání obsahu Kubernetes
Interaktivní nabízená oznámení nebo vyžádání do úložiště podle individuálního vývojáře nebo testerů

Bezobslužné stahování z úložiště podle jednotlivých systémových nebo externích zařízení
Yes Aktuálně není integrováno se službou AD identity

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

Při přímém práci s registrem, jako je například navýšení a vkládání imagí z vývojové pracovní stanice do registru, který jste vytvořili, můžete ověřit pomocí konkrétní identity Azure. Přihlaste se k Azure CLI pomocí příkazu AZ Logina potom spusťte příkaz AZ ACR Login :

az login
az acr login --name <acrName>

Při přihlášení 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 ve vašem prostředí nainstalovaný a spuštěný démon Docker CLI a Docker. az acr logink nastavení tokenu Azure Active Directory v souboru používá klienta docker docker.config . Po přihlášení tohoto postupu jsou vaše přihlašovací údaje uložené v mezipaměti a následné docker příkazy ve vaší relaci nevyžadují uživatelské jméno ani heslo.

Tip

Slouží také az acr login k ověření individuální identity v případě, že chcete vyžádat nebo načíst artefakty jiné než Image Docker do registru, například artefakty OCI.

V případě přístupu k registru je token používaný nástrojem az acr login platný po dobu 3 hodin, proto doporučujeme, abyste se před spuštěním příkazu vždy přihlásili k registru docker . V případě vypršení platnosti tokenu ho můžete znovu aktualizovat pomocí az acr login příkazu znovu a ověřit.

Použití az acr login s identitami Azure poskytuje řízení přístupu na základě role 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 mezi službami nebo pro zpracování potřeb pracovní skupiny nebo pracovního postupu vývoje, 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--zpřístupnit-token

V některých případech je nutné provést ověření v az acr login případě, že démon Docker neběží ve vašem prostředí. Například může být nutné spustit az acr login skript v Azure Cloud Shell, který poskytuje Docker CLI, ale nespustí démona Docker.

Pro tento scénář spusťte az acr login nejprve --expose-token parametr. Tato možnost zpřístupňuje přístupový token místo přihlášení prostřednictvím Docker CLI.

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

Výstup zobrazuje přístupový token, který se tady zkracuje:

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

Pro ověřování v registru doporučujeme ukládat přihlašovací údaje tokenu v bezpečném umístění a podle doporučených postupů spravovat přihlašovací údaje Docker . 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ředejte 00000000-0000-0000-0000-000000000000 jako uživatelské jméno a pomocí přístupového tokenu jako hesla:

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

Podobně můžete použít token vrácený pomocí az acr login helm registry login příkazu k ověření pomocí 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žít pro bezobslužné ověřování. Instanční objekty umožňují řízení přístupu na základě role Azure (Azure RBAC) k registru a k registru můžete přiřadit více instančních objektů. Několik instančních objektů vám umožní definovat různý přístup pro různé aplikace.

K dispozici jsou role pro registr kontejnerů:

  • AcrPull: pull

  • AcrPush: vyžádání a vložení

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

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

Pro skripty rozhraní příkazového řádku pro vytvoření instančního objektu pro ověřování pomocí služby Azure Container registry a další pokyny najdete v tématu Azure Container Registry ověřování pomocí instančních objektů.

Účet správce

Každý registr kontejnerů obsahuje účet uživatele správce, který je ve výchozím nastavení zakázaný. můžete povolit uživatele správce a spravovat jeho přihlašovací údaje v Azure Portal nebo pomocí azure CLI, Azure PowerShell nebo dalších nástrojů azure. Účet správce má úplná oprávnění k registru.

Účet správce se v současnosti vyžaduje, aby některé scénáře nasadily image z registru kontejneru do určitých služeb Azure. Například účet správce je potřeba při použití Azure Portal k nasazení image kontejneru z registru přímo do Azure Container Instances nebo Azure Web Apps for Containers.

Důležité

Účet správce je navržený pro jednoho uživatele, který má přístup k registru, hlavně pro účely testování. Nedoporučujeme sdílení přihlašovacích údajů účtu správce mezi více uživateli. Všichni uživatelé, kteří se ověřují pomocí účtu správce, se zobrazí jako jednotliví uživatelé s přístupem push a pull do registru. Změna nebo zakázání tohoto účtu zakáže přístup k registru pro všechny uživatele, kteří používají své přihlašovací údaje. Pro uživatele a instanční objekty se doporučuje použít pro scénáře s doplňováním provozu individuální identitu.

Účet správce je k dispozici se dvěma hesly, z nichž lze znovu vygenerovat. Dvě hesla umožňují udržovat připojení k registru pomocí jednoho hesla při opětovném vygenerování. Pokud je povolen účet správce, můžete docker login při zobrazení výzvy k zadání základního ověřování do registru předat uživatelské jméno a heslo k příkazu. Například:

docker login myregistry.azurecr.io

Doporučené postupy pro správu přihlašovacích údajů najdete v tématu Reference k příkazům Docker Login .

Pokud chcete povolit uživatele s oprávněními správce pro existující registr, můžete použít --admin-enabled parametr příkazu AZ ACR Update v rozhraní příkazového řádku Azure CLI:

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

Uživatele s oprávněními správce můžete v Azure Portal povolit tak, že přejdete do registru, vyberete přístupové klíče v části Nastavení a potom povolíte v části uživatel s oprávněními správce.

Povolit uživatelské rozhraní uživatele pro správu v Azure Portal

Další kroky