Aracılığıyla paylaş


Kayıt defteri oturum açma sorunlarını giderme

Bu makale, Azure Container Registry'de oturum açarken, kimlik doğrulaması yaparken veya yetkilendirme yaparken karşılaşabileceğiniz sorunları gidermenize yardımcı olur.

Belirti -leri

Aşağıdakilerden birini veya daha fazlasını içerebilir:

  • docker login veya az acr login ya da her ikisini kullanarak kayıtta oturum açılamıyor
  • Kayıt defterinde oturum açılamıyor ve hata unauthorized: authentication required alıyorsunuz veya unauthorized: Application not registered with AAD
  • Kayıt defterinde oturum açılamıyor ve Azure CLI hatası alıyorsunuz Could not connect to the registry login server
  • Görüntü gönderilemiyor veya çekilemiyor ve Docker hatası alıyorsunuz unauthorized: authentication required
  • kullanarak az acr login kayıt defterine erişilemiyor ve hata alıyorsunuz 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.
  • Azure Kubernetes Service, Azure DevOps veya başka bir Azure hizmetinden kayıt defterine erişilemiyor
  • Kayıt defterine erişilemiyor ve hata Error response from daemon: login attempt failed with status: 403 Forbidden alıyorsunuz - Bkz. Kayıt defteriyle ilgili ağ sorunlarını giderme
  • Azure portalında kayıt defteri ayarlarına erişilemiyor veya görüntülenemiyor ya da Azure CLI kullanılarak kayıt defteri yönetilemiyor

Nedenler

  • Docker ortamınızda düzgün yapılandırılmadı - çözüm
  • Kayıt defteri yok veya ad yanlış - çözüm
  • Kayıt defteri kimlik bilgileri geçerli değil - çözüm
  • Kayıt defteri genel erişimi devre dışı bırakıldı. Kayıt defterindeki genel ağ erişim kuralları erişimi engelliyor - çözüm
  • Kimlik bilgileri gönderme, çekme veya Azure Resource Manager işlemleri için yetkilendirilmemiş - çözüm
  • Kimlik bilgilerinin süresi doldu - çözüm
  • Microsoft Entra kimliği (kullanıcı, yönetilen kimlik veya hizmet sorumlusu) için kayıt defteri izinlerini yönetmek için Microsoft Entra rol tabanlı erişim denetimi (RBAC) kullanıyorsanız, kimlik kayıt defteri izinlerine sahip olabilir ancak depo izinlerine sahip olmayabilir - çözüm

Daha fazla tanılama

Kayıt defteri ortamının durumu ve isteğe bağlı olarak hedef kayıt defterine erişim hakkında daha fazla bilgi edinmek için az acr check-health komutunu çalıştırın. Örneğin, Docker yapılandırma hatalarını veya Microsoft Entra oturum açma sorunlarını tanılayın.

Komut örnekleri için Azure kapsayıcı kayıt defterinin durumunu denetleme bölümüne bakın. Hatalar bildirilirse, önerilen çözümler için hata başvurularını ve aşağıdaki bölümleri gözden geçirin.

ACR'den AKS kümesine görüntü çekemezseniz AKS destek belgesinden yönergeleri izleyin.

Uyarı

Kayıt defteri erişimini engelleyen güvenlik duvarı veya ağ yapılandırmaları varsa bazı kimlik doğrulama veya yetkilendirme hataları da oluşabilir. Kayıt defteriyle ağ sorunlarını giderme konusunu görün.

Olası çözümler

Docker yapılandırmasını denetleme

Çoğu Azure Container Registry kimlik doğrulama akışı yerel bir Docker yüklemesi gerektirir, böylece görüntüleri gönderme ve çekme gibi işlemler için kayıt defterinizde kimlik doğrulaması yapabilirsiniz. Docker CLI istemcisinin ve daemon'un (Docker Altyapısı) ortamınızda çalıştığını onaylayın. Docker istemci sürümü 18.03 veya üzeri gerekir.

İlgili bağlantılar:

Doğru kayıt defteri adını belirtin

kullanırkendocker login, myregistry.azurecr.io gibi kayıt defterinin tam oturum açma sunucusu adını sağlayın. Yalnızca küçük harf kullandığınızdan emin olun. Örnek:

docker login myregistry.azurecr.io

Microsoft Entra kimliğiyle az acr login kullanırken, önce Azure CLI'da oturum açın ve ardından kayıt defterinin Azure kaynak adını belirtin. Kaynak adı, kayıt defteri oluşturulduğunda sağlanan addır (örneğin , myregistry (etki alanı soneki olmadan). Örnek:

az acr login --name myregistry

İlgili bağlantılar:

Kayıt defterine erişmek için kimlik bilgilerini onaylama

Senaryonuz için kullandığınız veya bir kayıt defteri sahibi tarafından size sağlanan kimlik bilgilerinin geçerliliğini denetleyin. Bazı olası sorunlar:

  • Active Directory hizmet sorumlusu kullanıyorsanız, Active Directory kiracısında doğru kimlik bilgilerini kullandığınızdan emin olun:
    • Kullanıcı adı - hizmet sorumlusu uygulama kimliği (istemci kimliği olarak da adlandırılır)
    • Parola - hizmet sorumlusu parolası (istemci gizli anahtarı olarak da adlandırılır)
  • Kayıt defterine erişmek için Azure Kubernetes Service veya Azure DevOps gibi bir Azure hizmeti kullanıyorsanız hizmetinizin kayıt defteri yapılandırmasını onaylayın.
  • Docker daemon'unu az acr login kullanmadan kayıt defteri oturum açma işlemini etkinleştiren seçeneğiyle çalıştıysanız--expose-token, kullanıcı adıyla 00000000-0000-0000-0000-000000000000kimlik doğrulaması yaptığınızdan emin olun.
  • Kayıt defteriniz anonim çekme erişimi için yapılandırılmışsa, önceki bir Docker oturumundan depolanan mevcut Docker kimlik bilgileri anonim erişimi engelleyebilir. Kayıt defterinde anonim çekme işlemi denemeden önce komutunu çalıştırın docker logout .

İlgili bağlantılar:

Kimlik bilgilerinin kayıt defterine erişim yetkisi olduğunu onaylayın

  • İzinleriniz kısa süre önce portalda kayıt defteri erişimine izin verecek şekilde değiştirildiyse, eski tarayıcı önbelleğini veya tanımlama bilgilerini önlemek için tarayıcınızda gizli veya özel bir oturum denemeniz gerekebilir.
  • Microsoft Entra rol atamalarını eklemek, değiştirmek veya kaldırmak için abonelikte sizin veya kayıt defteri sahibinin yeterli ayrıcalıklara sahip olması gerekir. Role Based Access Control Administrator rolü tarafından Microsoft Entra rol atamalarını yönetme izinleri verilir.
  • Azure CLI kullanarak portaldaki bir kayıt defterine veya kayıt defteri yönetimine erişim, Azure Resource Manager işlemlerini gerçekleştirmek için en azından Container Registry Contributor and Data Access Configuration Administrator rol veya eşdeğer izinler gerektirir.

Kimlik izinlerini ve rol atamalarını doğrulama

  • Kayıt defteri izinlerini yönetmek için Microsoft Entra rol tabanlı erişim denetimi (RBAC) kullanıyorsanız, kimliğin (kullanıcı, yönetilen kimlik veya hizmet sorumlusu) doğru rol ataması ve izinlerine sahip olduğunu onaylayın.
    • "Kayıt defteri rol atama izinleri modu" (Azure portalı "Özellikler" dikey penceresinde) yeni "RBAC Kayıt Defteri + ABAC Deposu İzinleri" seçeneğine ayarlanmışsa ve kimlik görüntüleri gönderemiyorsa, çekemiyorsa veya silemiyorsa, kimliğin görüntünün içinde olduğu depoya erişme izinleri olmayabilir.
      • Kimliğin depoya erişmek için doğru izinlere sahip olduğundan emin olmak için mevcut rol atamalarını ve rol ataması ABAC koşullarını denetleyin.
      • "RBAC Kayıt Defteri + ABAC Depo İzinleri" moduna sahip kayıt defterleri mevcut AcrPull, AcrPushveya AcrDelete rollerine uymaz.
      • Aksine, bu tür kayıt defterleri yalnızca kayıt defterindeki depolar içinde görüntüleri okumak, yazmak veya silmek için Container Registry Repository Reader, Container Registry Repository Writer ve Container Registry Repository Contributor rollerini tanır. Bu roller, belirli depolara verilen izinleri kısıtlayan opsiyonel ABAC koşullarına sahip olabilir.
      • Bu rollerin kayıt üzerindeki depoları listelemeye yönelik katalog izinleri sağlamadığını unutmayın. Depoları listelemek (ancak depolardaki içeriği okumamak için), kimliğe ayrı olarak Container Registry Repository Catalog Lister rolünü atamanız gerekir. Bu rol ABAC koşullarını desteklemediğinden, kayıt defterindeki tüm depoları listeleme izinleri verir.
      • Daha fazla bilgi için bkz . Microsoft Entra tabanlı depo izinleri için Microsoft Entra öznitelik tabanlı erişim denetimi (ABAC).
    • "Kayıt defteri rol atama izinleri modu" eski "RBAC Kayıt Defteri İzinleri" seçeneğine ayarlanmışsa, kimliğin kayıt defterine ve depolarına erişim izinleri olmayabilir.
      • Kimliğin kayıt defterine ve depolarına erişmek için doğru izinlere sahip olduğundan emin olmak için mevcut rol atamalarını denetleyin.
      • "RBAC Kayıt İzinleri" moduna sahip kayıtlar, bir kayıttaki depolardaki görüntüleri okumak, yazmak veya silmek için yalnızca AcrPull, AcrPush veya AcrDelete rollerini dikkate alır.
      • Daha fazla bilgi için bkz. Azure Container Registry Microsoft Entra izinlerine ve rollerine genel bakış.

İlgili bağlantılar:

Kimlik bilgilerinin süresinin dolmadığını denetleyin

Belirteçlerin ve Active Directory kimlik bilgilerinin süresi tanımlı dönemlerden sonra dolabilir ve bu da kayıt defteri erişimini engelleyebilir. Erişimi etkinleştirmek için kimlik bilgilerinin sıfırlanması veya yeniden üretilmesi gerekebilir.

  • Kayıt defterine giriş için bireysel bir AD kimliği, yönetilen kimlik veya hizmet ilkesi kullanılıyorsa, AD jetonunun süresi 3 saat sonra dolar. Kayıt defterinde yeniden oturum açın.
  • Süresi dolmuş bir istemci sırrı olan bir AD hizmet sorumlusu kullanıyorsanız, bir abonelik sahibi veya hesap yöneticisinin kimlik bilgilerini sıfırlaması veya yeni bir hizmet sorumlusu oluşturması gerekir.
  • Microsoft Entra belirteci tabanlı olmayan bir depo izinleri kullanıyorsanız, kayıt defteri sahibinin parolayı sıfırlaması veya yeni bir belirteç oluşturması gerekebilir.

İlgili bağlantılar:

Gelişmiş sorun giderme

Kayıt defterinde kaynak günlükleri koleksiyonu etkinleştirildiyse ContainerRegistryLoginEvents günlüğünü gözden geçirin. Bu günlük, kimlik doğrulama olaylarını ve durumunu; kimlik ve IP adresi gibi gelen bilgileri de dahil ederek depolar. Kayıt defteri kimlik doğrulaması hataları için günlüğü sorgula.

İlgili bağlantılar:

Sonraki Adımlar

Sorununuzu burada çözmezseniz aşağıdaki seçeneklere bakın.