Mengonfigurasi aturan jaringan IP publik

Registri kontainer Azure secara default menerima koneksi melalui internet dari host di jaringan apa pun. Artikel ini menunjukkan cara mengonfigurasi registri kontainer Anda untuk memungkinkan akses hanya dari alamat IP publik atau rentang alamat tertentu. Langkah setara yang menggunakan Azure CLI dan portal Microsoft Azure disediakan.

Aturan jaringan IP dikonfigurasi pada titik akhir registri publik. Aturan jaringan IP tidak berlaku untuk titik akhir privat yang dikonfigurasi dengan Private Link

Mengonfigurasi aturan akses IP tersedia di tingkat layanan registri kontainer Premium. Untuk informasi tentang tingkat dan batas layanan registri, lihat tingkat Azure Container Registry.

Setiap registri mendukung maksimal 100 aturan akses IP.

Penting

Beberapa fungsionalitas mungkin tidak tersedia atau memerlukan lebih banyak konfigurasi dalam registri kontainer yang membatasi akses ke titik akhir privat, subnet yang dipilih, atau alamat IP.

  • Bila akses jaringan publik ke registri dinonaktifkan, akses registri oleh layanan tepercaya tertentu termasuk Azure Security Center memerlukan pengaktifan pengaturan jaringan untuk mengabaikan aturan jaringan.
  • Setelah akses jaringan publik dinonaktifkan, instans layanan Azure tertentu termasuk Azure DevOps Services saat ini tidak dapat mengakses registri kontainer.
  • Titik akhir privat saat ini tidak didukung dengan agen terkelola Azure DevOps. Anda harus menggunakan agen yang dihost sendiri dengan garis pandang jaringan ke titik akhir privat.
  • Jika registri memiliki titik akhir privat yang disetujui dan akses jaringan publik dinonaktifkan, repositori dan tag tidak dapat dicantumkan di luar jaringan virtual menggunakan portal Microsoft Azure, Azure CLI, atau alat lainnya.

Akses dari jaringan publik yang dipilih - CLI

Mengubah akses jaringan default ke registri

Untuk membatasi akses ke jaringan publik yang dipilih, ubah dulu tindakan default untuk menolak akses. Ganti nama registri Anda dalam perintah perbarui az acr berikut:

az acr update --name myContainerRegistry --default-action Deny

Menambahkan aturan jaringan ke registri

Gunakan perintah tambahkan aturan jaringan az acr untuk menambahkan aturan jaringan ke registri Anda yang mengizinkan akses dari alamat atau rentang IP publik. Misalnya, ganti nama registri kontainer dan alamat IP publik VM dalam jaringan virtual.

az acr network-rule add \
  --name mycontainerregistry \
  --ip-address <public-IP-address>

Catatan

Setelah menambahkan aturan, dibutuhkan beberapa menit untuk aturan diterapkan.

Akses dari jaringan publik yang dipilih - portal

  1. Di portal, navigasi ke registri kontainer Anda.
  2. Di Pengaturan, pilih Jaringan.
  3. Pada tab Akses publik, pilih untuk mengizinkan akses publik dari Jaringan yang dipilih.
  4. Di bawah Firewall, masukkan alamat IP publik, seperti alamat IP publik VM dalam jaringan virtual. Atau, masukkan rentang alamat dalam notasi CIDR yang berisi alamat IP VM.
  5. Pilih Simpan.

Mengonfigurasi aturan firewall untuk registri kontainer

Catatan

Setelah menambahkan aturan, dibutuhkan beberapa menit untuk aturan diterapkan.

Tip

Secara opsional, aktifkan akses registri dari komputer klien lokal atau rentang alamat IP. Untuk mengizinkan akses ini, Anda memerlukan alamat IPv4 publik komputer. Anda dapat menemukan alamat ini dengan mencari "apa alamat IP saya" di browser internet. Alamat IPv4 klien saat ini juga muncul secara otomatis saat Anda mengonfigurasi pengaturan firewall pada halaman Jaringan di portal.

Nonaktifkan akses jaringan publik

Secara opsional, nonaktifkan titik akhir publik pada registri. Menonaktifkan titik akhir publik akan menggantikan semua konfigurasi firewall. Misalnya, Anda mungkin ingin menonaktifkan akses publik ke registri yang diamankan di jaringan virtual menggunakan Private Link.

Catatan

Jika registri diatur dalam jaringan virtual dengan titik akhir layanan, menonaktifkan akses ke titik akhir publik registri juga menonaktifkan akses ke registri dalam jaringan virtual.

Menonaktifkan akses publik - CLI

Untuk menonaktifkan akses publik menggunakan Azure CLI, jalankan perbarui az acr dan atur --public-network-enabled ke false. Argumen public-network-enabled memerlukan Azure CLI 2.6.0 atau yang lebih baru.

az acr update --name myContainerRegistry --public-network-enabled false

Menonaktifkan akses publik - portal

  1. Di portal, navigasikan ke registri penampung Anda dan pilih Pengaturan > Jaringan.
  2. Pada tab Akses publik, di Perbolehkan akses jaringan publik, pilih Dinonaktifkan. Lalu pilih Simpan.

Menonaktifkan akses publik

Memulihkan akses jaringan publik

Untuk mengaktifkan kembali titik akhir publik, perbarui pengaturan jaringan untuk mengizinkan akses publik. Mengaktifkan titik akhir publik akan menggantikan semua konfigurasi firewall.

Memulihkan akses publik - CLI

Jalankan perbarui az acr dan atur --public-network-enabled ke true.

Catatan

Argumen public-network-enabled memerlukan Azure CLI 2.6.0 atau yang lebih baru.

az acr update --name myContainerRegistry --public-network-enabled true

Memulihkan akses publik - portal

  1. Di portal, navigasi ke registri kontainer Anda dan pilih Pengaturan > Jaringan.
  2. Pada tab Akses publik, di Perbolehkan akses jaringan publik, pilih Semua jaringan. Lalu pilih Simpan.

Akses publik dari semua jaringan

Pecahkan masalah

Akses di balik proksi HTTPS

Jika aturan jaringan publik ditetapkan, atau akses publik ke registri ditolak, upaya untuk masuk ke registri dari jaringan publik yang tidak diizinkan akan gagal. Akses klien dari balik proksi HTTPS juga akan gagal jika aturan akses untuk proksi tidak ditetapkan. Anda akan melihat pesan kesalahan yang serupa dengan Error response from daemon: login attempt failed with status: 403 Forbidden atau Looks like you don't have access to registry.

Kesalahan ini juga dapat terjadi jika Anda menggunakan proksi HTTPS yang diizinkan oleh aturan akses jaringan, tetapi proksi tidak dikonfigurasi dengan benar di lingkungan klien. Cek apakah klien Docker dan daemon Docker Anda dikonfigurasi untuk perilaku proksi. Untuk detailnya, lihat Proksi HTTP/HTTPS dalam dokumentasi Docker.

Mengakses dari Azure Pipelines

Jika Anda menggunakan Azure Pipelines dengan registri kontainer Azure yang membatasi akses ke alamat IP tertentu, alur tersebut mungkin tidak dapat mengakses registri, karena alamat IP yang keluar dari alur tidak tetap. Secara default, alur menjalankan pekerjaan menggunakan agen yang di-hosting Microsoft pada kumpulan komputer virtual dengan satu set alamat IP yang berubah.

Salah satu solusinya adalah mengubah agen yang digunakan untuk menjalankan alur dari yang dihosting Microsoft ke yang dihosting sendiri. Dengan agen host sendiri yang berjalan di komputer Windows atau Linux yang Anda kelola, Anda mengontrol alamat IP keluar dari alur, dan Anda dapat menambahkan alamat ini ke dalam aturan akses IP registri.

Mengakses dari AKS

Jika Anda menggunakan Azure Kubernetes Service (AKS) dengan registri kontainer Azure yang membatasi akses ke alamat IP tertentu, Anda tidak dapat mengonfigurasi alamat IP AKS tetap secara default. Alamat IP egress dari kluster AKS ditetapkan secara acak.

Untuk memungkinkan kluster AKS mengakses registri, Anda memiliki opsi ini:

Langkah berikutnya