Ověřování pomocí privátního registru kontejnerů DockerAuthenticate with a private Docker 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.There are several ways to authenticate with an Azure container registry, each of which is applicable to one or more registry usage scenarios.

Mezi doporučené způsoby patří ověřování v registru přímo přes jednotlivé přihlašovací údaje, nebo vaše aplikace a orchestrace kontejnerů můžou provádět bezobslužné nebo nezabezpečené ověřování pomocí služby Azure Active Directory (Azure AD). objekt zabezpečeníRecommended ways include authenticating to a registry directly via individual login, or your applications and container orchestrators can perform unattended, or "headless," authentication by using an Azure Active Directory (Azure AD) service principal.

Individuální přihlášení pomocí Azure ADIndividual login with 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, proveďte ověření pomocí příkazu AZ ACR Login v rozhraní příkazového řádku Azure CLI:When working with your registry directly, such as pulling images to and pushing images from a development workstation, authenticate by using the az acr login command in the Azure CLI:

az acr login --name <acrName>

Při přihlášení pomocí az acr loginrozhraní příkazového řádku použije token vytvořený při provedení AZ Login k bezproblémovému ověření relace s registrem.When you log in with az acr login, the CLI uses the token created when you executed az login to seamlessly authenticate your session with your registry. 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.Once you've logged in this way, your credentials are cached, and subsequent docker commands in your session do not require a username or password.

V případě přístupu k registru je token používaný az acr login nástrojem platný po dobu 1 hodiny, proto doporučujeme, abyste se před docker spuštěním příkazu vždy přihlásili k registru.For registry access, the token used by az acr login is valid for 1 hour, so we recommend that you always log in to the registry before running a docker command. V případě vypršení platnosti tokenu ho můžete znovu aktualizovat pomocí az acr login příkazu znovu a ověřit.If your token expires, you can refresh it by using the az acr login command again to reauthenticate.

Použití az acr login s identitami Azure zajišťuje přístup založený na rolích.Using az acr login with Azure identities provides role-based access. 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.For some scenarios you may want to log in to a registry with your own individual identity in Azure AD. Pro scénáře mezi službami nebo pro zpracování potřeb pracovní skupiny, u kterých nechcete spravovat individuální přístup, se můžete také přihlásit pomocí spravované identity pro prostředky Azure.For cross-service scenarios or to handle the needs of a workgroup where you don't want to manage individual access, you can also log in with a managed identity for Azure resources.

Instanční objektService principal

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í.If you assign a service principal to your registry, your application or service can use it for headless authentication. Instanční objekty umožňují přístup na základě rolí k registru a k registru můžete přiřadit více instančních objektů.Service principals allow role-based access to a registry, and you can assign multiple service principals to a registry. Několik instančních objektů vám umožní definovat různý přístup pro různé aplikace.Multiple service principals allow you to define different access for different applications.

K dispozici jsou role pro registr kontejnerů:The available roles for a container registry include:

  • AcrPull: pullAcrPull: pull

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

  • Vlastník: vyžádání, vložení a přiřazení rolí jiným uživatelůmOwner: pull, push, and assign roles to other users

Úplný seznam rolí najdete v tématu Azure Container Registry role a oprávnění.For a complete list of roles, see Azure Container Registry roles and permissions.

Pokud chcete, aby skripty rozhraní příkazového řádku vytvořily instanční objekt pro ověřování pomocí služby Azure Container registry a pokyny k používání instančního objektu, přečtěte si téma Azure Container Registry ověřování s instančními objekty.For CLI scripts to create a service principal for authenticating with an Azure container registry, and guidance on using a service principal, see Azure Container Registry authentication with service principals.

Účet správceAdmin account

Každý registr kontejnerů obsahuje účet uživatele správce, který je ve výchozím nastavení zakázaný.Each container registry includes an admin user account, which is disabled by default. Můžete povolit uživatele správce a spravovat jeho přihlašovací údaje v Azure Portal nebo pomocí Azure CLI nebo jiných nástrojů Azure.You can enable the admin user and manage its credentials in the Azure portal, or by using the Azure CLI or other Azure tools.

Důležité

Účet správce je navržený pro jednoho uživatele, který má přístup k registru, hlavně pro účely testování.The admin account is designed for a single user to access the registry, mainly for testing purposes. Nedoporučujeme sdílení přihlašovacích údajů účtu správce mezi více uživateli.We do not recommend sharing the admin account credentials among multiple users. 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.All users authenticating with the admin account appear as a single user with push and pull access to the registry. 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.Changing or disabling this account disables registry access for all users who use its credentials. 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.Individual identity is recommended for users and service principals for headless scenarios.

Účet správce je k dispozici se dvěma hesly, z nichž lze znovu vygenerovat.The admin account is provided with two passwords, both of which can be regenerated. Dvě hesla umožňují udržovat připojení k registru pomocí jednoho hesla při opětovném vygenerování.Two passwords allow you to maintain connection to the registry by using one password while you regenerate the other. Pokud je povolen účet správce, můžete při zobrazení výzvy k zadání základního ověřování do registru předat docker login uživatelské jméno a heslo k příkazu.If the admin account is enabled, you can pass the username and either password to the docker login command when prompted for basic authentication to the registry. Příklad:For example:

docker login myregistry.azurecr.io 

Osvědčené postupy pro správu přihlašovacích údajů najdete v tématu Reference k příkazům Docker Login .For best practices to manage login credentials, see the docker login command reference.

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:To enable the admin user for an existing registry, you can use the --admin-enabled parameter of the az acr update command in the 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.You can enable the admin user in the Azure portal by navigating your registry, selecting Access keys under SETTINGS, then Enable under Admin user.

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

Další postupNext steps