Memecahkan masalah login registri
Artikel ini membantu Anda memecahkan masalah yang mungkin Anda temui saat masuk ke registri kontainer Azure.
Gejala
Dapat mencakup satu atau lebih hal berikut:
- Tidak dapat masuk ke registri menggunakan
docker login
,az acr login
, atau keduanya - Tidak dapat masuk ke registri dan Anda menerima kesalahan
unauthorized: authentication required
atauunauthorized: Application not registered with AAD
- Tidak dapat masuk ke registri dan Anda menerima kesalahan Azure CLI
Could not connect to the registry login server
- Tidak dapat mendorong atau menarik gambar dan Anda menerima kesalahan Docker
unauthorized: authentication required
- Tidak dapat mengakses registri menggunakan
az acr login
dan Anda menerima kesalahanCONNECTIVITY_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.
- Tidak dapat mengakses registri dari Azure Kubernetes Service, Azure DevOps, atau layanan Azure lainnya
- Tidak dapat mengakses registri dan Anda menerima kesalahan
Error response from daemon: login attempt failed with status: 403 Forbidden
- Lihat Memecahkan masalah jaringan dengan registri - Tidak dapat mengakses atau melihat pengaturan registri di portal Azure atau mengelola registri menggunakan Azure CLI
Penyebab
- Docker tidak dikonfigurasi dengan benar di lingkungan Anda - solusi
- Registri tidak ada atau namanya salah - solusi
- Kredensial registri tidak valid - solusi
- Akses publik registri dinonaktifkan. Aturan akses jaringan publik pada registri mencegah akses - solusi
- Kredensial tidak diotorisasi untuk operasi dorong, tarik, atau Azure Resource Manager - solusi
- Kredensial kedaluwarsa - solusi
Diagnosis lebih lanjut
Jalankan perintah az acr check-health untuk mendapatkan informasi selengkapnya tentang kesehatan lingkungan registri dan akses opsional ke registri target. Misalnya, diagnosis kesalahan konfigurasi Docker atau masalah login Microsoft Entra.
Lihat Memeriksa kesehatan registri kontainer Azure untuk contoh perintah. Jika kesalahan dilaporkan, tinjau referensi kesalahan dan bagian berikut untuk solusi yang disarankan.
Ikuti instruksi dari dokumen dukungan AKS jika Anda gagal menarik gambar dari ACR ke kluster AKS.
Catatan
Beberapa kesalahan autentikasi atau otorisasi juga dapat terjadi jika ada firewall atau konfigurasi jaringan yang mencegah akses registri. Lihat Memecahkan masalah jaringan dengan registri.
Potensi solusi
Periksa konfigurasi Docker
Sebagian besar alur autentikasi Azure Container Registry memerlukan penginstalan Docker lokal sehingga Anda dapat mengautentikasi dengan registri Anda untuk operasi seperti mendorong dan menarik gambar. Pastikan bahwa klien dan daemon Docker CLI (Mesin Docker) berjalan di lingkungan Anda. Anda memerlukan klien Docker versi 18.03 atau yang lebih baru.
Tautan terkait:
Tentukan nama registri yang benar
Saat menggunakan docker login
, berikan nama server login lengkap dari registri, seperti myregistry.azurecr.io. Pastikan Anda hanya menggunakan huruf kecil. Contoh:
docker login myregistry.azurecr.io
Saat menggunakan az acr login dengan identitas Microsoft Entra, pertama-tama masuk ke Azure CLI, lalu tentukan nama sumber daya Azure dari registri. Nama sumber daya adalah nama yang disediakan ketika registri dibuat, seperti myregistry (tanpa akhiran domain). Contoh:
az acr login --name myregistry
Tautan terkait:
Konfirmasi kredensial untuk mengakses registri
Periksa validitas kredensial yang Anda gunakan untuk skenario Anda, atau diberikan kepada Anda oleh pemilik registri. Kemungkinan masalah:
- Jika menggunakan perwakilan layanan Direktori Aktif, pastikan Anda menggunakan kredensial yang benar di penyewa Direktori Aktif:
- Nama pengguna - ID aplikasi perwakilan layanan (juga disebut ID klien)
- Kata sandi - kata sandi perwakilan layanan (juga disebut rahasia klien)
- Jika menggunakan layanan Azure seperti Azure Kubernetes Service atau Azure DevOps untuk mengakses registri, konfirmasikan konfigurasi registri untuk layanan Anda.
- Jika Anda menjalankan
az acr login
dengan opsi--expose-token
, yang memungkinkan login registri tanpa menggunakan daemon Docker, pastikan Anda mengautentikasi dengan nama pengguna00000000-0000-0000-0000-000000000000
. - Jika registri Anda dikonfigurasi untuk akses tarik anonim, kredensial Docker yang ada yang disimpan dari login Docker sebelumnya dapat mencegah akses anonim. Jalankan
docker logout
sebelum mencoba operasi tarik anonim pada registri.
Tautan terkait:
- Gambaran autentikasi
- Login individual dengan ID Microsoft Entra
- Masuk dengan perwakilan layanan
- Login dengan identitas terkelola
- Login dengan token yang dicakup repositori
- Login dengan akun admin
- Autentikasi Microsoft Entra dan kode kesalahan autentikasi
- referensi az acr login
Konfirmasi apakah kredensial diotorisasi untuk mengakses registri
Konfirmasikan izin registri yang terkait dengan kredensial, seperti AcrPull
peran Azure untuk menarik gambar dari registri, atau peran AcrPush
untuk mendorong gambar.
Akses ke registri di portal atau manajemen registri menggunakan Azure CLI memerlukan setidaknya peran Reader
atau izin yang setara untuk melakukan operasi Azure Resource Manager.
Jika izin Anda baru-baru ini diubah untuk mengizinkan akses registri melalui portal, Anda mungkin perlu mencoba sesi incognito atau pribadi di browser Anda untuk menghindari cache atau cookie browser yang kedaluwarsa.
Anda atau pemilik registri harus memiliki hak istimewa yang memadai dalam langganan untuk menambahkan atau menghapus penetapan peran.
Tautan terkait:
- Peran dan izin Azure - Azure Container Registry
- Login dengan token yang dicakup repositori
- Menambahkan atau menghapus penetapan peran Azure menggunakan portal Microsoft Azure
- Menggunakan portal untuk membuat aplikasi Microsoft Entra dan perwakilan layanan yang dapat mengakses sumber daya
- Membuat rahasia aplikasi baru
- Kode autentikasi dan otorisasi Microsoft Entra
Periksa apakah kredensial tidak kedaluwarsa
Token dan kredensial Active Directory dapat kedaluwarsa setelah periode yang ditentukan, untuk mencegah akses registri. Untuk mengaktifkan akses, kredensial mungkin perlu direset atau diregenerasi.
- Jika menggunakan identitas AD perorangan, identitas terkelola, atau prinsip layanan untuk login registri, token AD akan kedaluwarsa setelah 3 jam. Masuk lagi ke registri.
- Jika menggunakan perwakilan layanan AD dengan rahasia klien yang kedaluwarsa, pemilik langganan atau administrator akun perlu mereset kredensial atau menghasilkan perwakilan layanan baru.
- Jika menggunakan token yang tercakup dalam repositori, pemilik registri mungkin perlu mengatur ulang kata sandi atau menghasilkan token baru.
Tautan terkait:
- Mereset kredensial perwakilan layanan
- Meregenerasi kata sandi token
- Login individual dengan ID Microsoft Entra
Pemecahan masalah tingkat lanjut
Jika kumpulan log sumber daya diaktifkan di registri, tinjau log ContainerRegistryLoginEvents. Log ini menyimpan peristiwa dan status autentikasi, termasuk identitas dan alamat IP yang masuk. Kueri log untuk kegagalan autentikasi registri.
Tautan terkait:
- Log untuk evaluasi diagnostik dan audit
- FAQ registri kontainer
- Praktik terbaik untuk Azure Container Registry
Langkah berikutnya
Jika masalah Anda tidak terselesaikan di sini, lihat opsi berikut.
- Topik pemecahan masalah registri lainnya meliputi:
- Opsi Dukungan komunitas
- Microsoft Q&A
- Buka tiket dukungan - berdasarkan informasi yang Anda berikan, diagnostik cepat mungkin dijalankan untuk kegagalan autentikasi di registri Anda