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ří:
- Ověřování v registru přímo prostřednictvím individuálního přihlášení
- aplikace a orchestrace kontejnerů mohou provádět bezobslužné nebo nezabezpečené ověřování pomocí instančního objektu Azure Active Directory (Azure AD).
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 CLIConnect-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 loginaz acr login v Azure CLIConnect-AzContainerRegistryv Azure PowerShellNastavení 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 loginaz acr login v Azure CLIConnect-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 loginaz acr login v Azure CLIConnect-AzContainerRegistryv Azure PowerShellTajný 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.
