Řešení potíží s přihlášením k registru

Tento článek vám pomůže vyřešit problémy, se kterými se můžete setkat při přihlašování k registru kontejneru Azure.

Příznaky

Může obsahovat jednu nebo více z následujících možností:

  • Nejde se přihlásit k registru pomocí docker login, az acr loginnebo obojího
  • Nejde se přihlásit k registru a zobrazí se chyba unauthorized: authentication required nebo unauthorized: Application not registered with AAD
  • Nejde se přihlásit k registru a zobrazí se chyba Azure CLI Could not connect to the registry login server
  • Nejde nasdílit nebo vyžádat image a zobrazí se chyba Dockeru unauthorized: authentication required
  • Nejde získat přístup k registru pomocí az acr login a zobrazí se chyba CONNECTIVITY_REFRESH_TOKEN_ERROR. Access to registry was denied. Response code: 403. Unable to get admin user credentials with message: Admin user is disabled. Unable to authenticate using AAD or admin login credentials.
  • Nejde získat přístup k registru ze služby Azure Kubernetes Service, Azure DevOps nebo jiné služby Azure
  • Nejde získat přístup k registru a zobrazí se chyba Error response from daemon: login attempt failed with status: 403 Forbidden – Viz Řešení potíží se sítí s registrem
  • Nejde získat přístup k nastavením registru nebo zobrazit na webu Azure Portal nebo spravovat registr pomocí Azure CLI

Příčiny

  • Docker není ve vašem prostředí správně nakonfigurovaný – řešení
  • Registr neexistuje nebo je název nesprávný – řešení
  • Přihlašovací údaje registru nejsou platné – řešení
  • Veřejný přístup registru je zakázaný. Pravidla přístupu k veřejné síti v registru brání přístupu – řešení
  • Přihlašovací údaje nejsou autorizované pro operace push, pull nebo Azure Resource Manager – řešení.
  • Platnost přihlašovacích údajů vypršela – řešení

Další diagnostika

Spuštěním příkazu az acr check-health získejte další informace o stavu prostředí registru a volitelně přístup k cílovému registru. Můžete například diagnostikovat chyby konfigurace Dockeru nebo problémy s přihlášením k Microsoft Entra.

Příklady příkazů najdete v tématu Kontrola stavu registru kontejnerů Azure. Pokud jsou nahlášeny chyby, projděte si referenční informace o chybách a v následujících částech se podívejte na doporučená řešení.

Pokud se vám nepodaří načíst image z ACR do clusteru AKS, postupujte podle pokynů z dokumentace podpory AKS.

Poznámka:

K některým chybám ověřování nebo autorizace může dojít také v případě, že existují konfigurace brány firewall nebo sítě, které brání přístupu k registru. Viz Řešení potíží se sítí s registrem.

Potenciální řešení

Kontrola konfigurace Dockeru

Většina toků ověřování ve službě Azure Container Registry vyžaduje místní instalaci Dockeru, abyste se mohli ověřit v registru pro operace, jako je odesílání a načítání imagí. Ověřte, že ve vašem prostředí běží klient Rozhraní příkazového řádku Dockeru a proces démon (Docker Engine). Potřebujete klienta Dockeru verze 18.03 nebo novější.

Související odkazy:

Zadejte správný název registru.

Při použití docker loginzadejte úplný název přihlašovacího serveru registru, například myregistry.azurecr.io. Ujistěte se, že používáte jenom malá písmena. Příklad:

docker login myregistry.azurecr.io

Při použití příkazu az acr login s identitou Microsoft Entra se nejprve přihlaste k Azure CLI a pak zadejte název prostředku Azure registru. Název prostředku je název zadaný při vytvoření registru, například myregistry (bez přípony domény). Příklad:

az acr login --name myregistry

Související odkazy:

Potvrzení přihlašovacích údajů pro přístup k registru

Zkontrolujte platnost přihlašovacích údajů, které používáte pro svůj scénář, nebo vám je poskytl vlastník registru. Některé možné problémy:

  • Pokud používáte instanční objekt služby Active Directory, ujistěte se, že používáte správné přihlašovací údaje v tenantovi Active Directory:
    • Uživatelské jméno – ID aplikace instančního objektu (označované také jako ID klienta)
    • Heslo – heslo instančního objektu (označované také jako tajný klíč klienta)
  • Pokud pro přístup k registru používáte službu Azure, jako je Azure Kubernetes Service nebo Azure DevOps, potvrďte konfiguraci registru pro vaši službu.
  • Pokud jste spustili az acr login možnost --expose-token , která umožňuje přihlášení registru bez použití démona Dockeru, ujistěte se, že jste se ověřili pomocí uživatelského jména 00000000-0000-0000-0000-000000000000.
  • Pokud je váš registr nakonfigurovaný pro anonymní přístup k vyžádání změn, stávající přihlašovací údaje Dockeru uložené z předchozího přihlášení Dockeru můžou zabránit anonymnímu přístupu. Před pokusem o anonymní operaci vyžádání změn v registru spusťte docker logout .

Související odkazy:

Potvrzení oprávnění k přístupu k registru

Ověřte oprávnění registru, která jsou přidružená k přihlašovacím údajům, jako AcrPull je role Azure pro vyžádání imagí z registru nebo AcrPush role pro nabízení imagí.

Přístup k registru na portálu nebo správě registru pomocí Azure CLI vyžaduje alespoň Reader roli nebo ekvivalentní oprávnění k provádění operací Azure Resource Manageru.

Pokud se vaše oprávnění nedávno změnila tak, aby umožňovala přístup k registru přes portál, možná budete muset v prohlížeči vyzkoušet anonymní nebo soukromou relaci, abyste se vyhnuli zastaralé mezipaměti prohlížeče nebo souborům cookie.

Abyste mohli přidávat nebo odebírat přiřazení rolí, musíte mít v předplatném dostatečná oprávnění vy nebo vlastník registru.

Související odkazy:

Zkontrolujte, jestli nevypršela platnost přihlašovacích údajů.

Platnost tokenů a přihlašovacích údajů služby Active Directory může vypršet po definovaných obdobích, což brání přístupu k registru. Pokud chcete povolit přístup, je možné, že přihlašovací údaje bude potřeba resetovat nebo znovu vygenerovat.

  • Pokud pro přihlášení k registru používáte individuální identitu AD, spravovanou identitu nebo instanční objekt, platnost tokenu AD vyprší po 3 hodinách. Znovu se přihlaste k registru.
  • Pokud používáte instanční objekt AD s tajným kódem klienta s prošlou platností, musí vlastník předplatného nebo správce účtu resetovat přihlašovací údaje nebo vygenerovat nový instanční objekt.
  • Pokud používáte token s oborem úložiště, může vlastník registru potřebovat resetovat heslo nebo vygenerovat nový token.

Související odkazy:

Řešení potíží na pokročilé úrovni

Pokud je v registru povolená kolekce protokolů prostředků, zkontrolujte protokol ContainerRegistryLoginEvents. Tento protokol ukládá události a stav ověřování, včetně příchozí identity a IP adresy. Dotazování protokolu na selhání ověřování registru

Související odkazy:

Další kroky

Pokud tady problém nevyřešíte, podívejte se na následující možnosti.