Mengamankan akses ke server API menggunakan rentang alamat IP resmi di Azure Kubernetes Service (AKS)

Artikel ini menunjukkan cara menggunakan rentang alamat IP resmi server API untuk membatasi alamat IP dan CIDR mana yang dapat mengakses titik akhir sarana kontrol untuk beban kerja Azure Kubernetes Service (AKS).

Prasyarat

  • Azure CLI versi 2.0.76 atau yang lebih baru diinstal dan dikonfigurasi. Periksa versi Anda menggunakan az --version perintah . Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.
  • Untuk mempelajari alamat IP apa yang akan disertakan saat mengintegrasikan kluster AKS Anda dengan Azure DevOps, lihat Alamat IP dan URL domain yang diizinkan.

Petunjuk / Saran

Dari portal Microsoft Azure, Anda dapat menggunakan Azure Copilot untuk membuat perubahan pada alamat IP yang dapat mengakses kluster Anda. Untuk informasi selengkapnya, lihat Bekerja dengan kluster AKS secara efisien menggunakan Azure Copilot.

Batasan dan pertimbangan

  • Fitur ini hanya didukung pada load balancer SKU Standar untuk kluster yang dibuat setelah Oktober 2019. Setiap kluster yang ada pada load balancer SKU Basic dengan fitur yang diaktifkan harus terus berfungsi dengan baik jika versi Kubernetes dan control plane ditingkatkan. Namun, Anda tidak dapat memigrasikan kluster ini ke load balancer SKU Standar.
  • Anda tidak dapat menggunakan fitur ini dengan kluster privat.
  • Saat menggunakan fitur ini dengan kluster yang menggunakan IP publik Node, kumpulan simpul yang menggunakan IP publik Node harus menggunakan awalan IP publik. Anda harus menambahkan awalan IP publik sebagai rentang yang diizinkan.
  • Anda dapat menentukan hingga 200 rentang IP resmi. Untuk melampaui batas ini, pertimbangkan untuk menggunakan Integrasi VNet API Server, yang mendukung hingga 2.000 rentang IP resmi.

Ringkasan rentang IP resmi server API

Server API Kubernetes mengekspos API Kubernetes yang mendasar dan menyediakan interaksi untuk alat manajemen seperti kubectl dan dasbor Kubernetes. AKS menyediakan sarana kontrol kluster penyewa tunggal dengan server API khusus. Server API diberi alamat IP publik secara default. Anda dapat mengontrol akses menggunakan kontrol akses berbasis peran Kubernetes (Kubernetes RBAC) atau Azure RBAC.

Untuk mengamankan akses ke sarana kontrol AKS/server API yang dapat diakses publik, Anda dapat mengaktifkan dan menggunakan rentang IP resmi. Rentang IP resmi ini hanya memungkinkan rentang alamat IP yang ditentukan untuk berkomunikasi dengan server API. Setiap permintaan yang dibuat ke server API dari alamat IP yang bukan bagian dari rentang IP resmi ini diblokir. Aturan ini membutuhkan waktu hingga 2 menit untuk diterapkan. Tunggu hingga waktu tersebut saat menguji koneksi.

Sebaiknya masukkan rentang alamat IP berikut dalam konfigurasi rentang IP resmi server API Anda:

  • Alamat IP keluar kluster (firewall, gateway NAT, atau alamat lainnya, tergantung pada jenis keluar Anda).
  • Rentang apa pun yang mewakili jaringan tempat Anda mengelola kluster.

Membuat kluster AKS dengan rentang IP resmi server API diaktifkan

Catatan

Saat Anda mengaktifkan rentang IP resmi server API selama pembuatan kluster, IP publik server API dan IP publik keluar dari load balancer SKU Standar secara otomatis diizinkan secara default, selain rentang apa pun yang Anda tentukan.

Kasus khusus - 0.0.0.0/32: Ini adalah nilai khusus yang memberi tahu AKS untuk hanya mengizinkan IP publik keluar dari load balancer SKU Standar untuk mengakses server API. Nilai 0.0.0.0/32 berfungsi sebagai pengganti sementara yang:

  • Menonaktifkan perilaku default untuk mengizinkan rentang IP klien tambahan.
  • Membatasi akses server API hanya ke IP keluar kluster sendiri.
  • Berguna untuk skenario di mana Anda ingin kluster mengelola sendiri tetapi memblokir akses eksternal.

Saat membuat kluster dengan rentang IP resmi server API diaktifkan, Anda menyediakan daftar rentang alamat IP publik resmi. Saat Anda menentukan rentang CIDR, Anda harus menggunakan alamat jaringan (alamat IP pertama dalam rentang). Misalnya, jika Anda ingin mengizinkan rentang 137.117.106.88 ke 137.117.106.95, Anda harus menentukan 137.117.106.88/29.

  • Buat kluster AKS dengan rentang IP resmi server API yang diaktifkan menggunakan az aks create perintah dengan --api-server-authorized-ip-ranges parameter . Contoh berikut membuat kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup dan memungkinkan rentang 73.140.245.0/24 alamat IP untuk mengakses server API:

    az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 73.140.245.0/24 --generate-ssh-keys
    
  • Buat kluster AKS dengan rentang IP resmi server API yang diaktifkan menggunakan New-AzAksCluster cmdlet dengan -ApiServerAccessAuthorizedIpRange parameter . Contoh berikut membuat kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup dan memungkinkan rentang 73.140.245.0/24 alamat IP untuk mengakses server API:

    New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '73.140.245.0/24' -GenerateSshKey
    
  1. Dari beranda portal Azure, pilih
  2. Konfigurasikan pengaturan kluster sesuai kebutuhan.
  3. Di bagian Jaringan di bawah Akses publik, pilih Atur rentang IP resmi.
  4. Untuk Tentukan rentang IP, masukkan rentang alamat IP yang ingin Anda otorisasi untuk mengakses server API.
  5. Konfigurasikan pengaturan kluster lainnya sesuai kebutuhan.
  6. Setelah siap, pilih Tinjau + buat> untuk membuat kluster.

Tentukan IP keluar untuk load balancer SKU Standar

Saat membuat kluster dengan rentang IP resmi server API diaktifkan, Anda juga dapat menentukan alamat IP keluar atau awalan untuk kluster menggunakan --load-balancer-outbound-ips parameter atau --load-balancer-outbound-ip-prefixes . Semua IP yang disediakan dalam parameter diizinkan bersama dengan IP dalam --api-server-authorized-ip-ranges parameter .

  • Buat kluster AKS dengan rentang IP resmi server API diaktifkan dan tentukan alamat IP keluar untuk load balancer SKU Standar menggunakan --load-balancer-outbound-ips parameter . Contoh berikut membuat kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup, memungkinkan rentang 73.140.245.0/24 alamat IP untuk mengakses server API, dan menentukan dua alamat IP keluar untuk load balancer SKU Standar. Pastikan untuk mengganti placeholder <public-ip-id-1> dan <public-ip-id-2> dengan ID sumber daya aktual untuk alamat IP publik Anda.

    az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 73.140.245.0/24 --load-balancer-outbound-ips <public-ip-id-1>,<public-ip-id-2> --generate-ssh-keys
    

Hanya mengizinkan IP publik outbound dari load balancer SKU Standar

  • Buat kluster AKS dengan rentang IP resmi server API yang diaktifkan dan hanya mengizinkan IP publik keluar dari load balancer SKU Standar menggunakan --api-server-authorized-ip-ranges parameter . Contoh berikut membuat kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup dengan rentang IP resmi server API yang diaktifkan dan hanya memungkinkan IP publik keluar dari load balancer SKU Standar:

    az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 0.0.0.0/32 --generate-ssh-keys
    
  • Buat kluster AKS dengan rentang IP resmi server API yang diaktifkan dan hanya mengizinkan IP publik keluar dari load balancer SKU Standar menggunakan -ApiServerAccessAuthorizedIpRange parameter . Contoh berikut membuat kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup dengan rentang IP resmi server API yang diaktifkan dan hanya memungkinkan IP publik keluar dari load balancer SKU Standar:

    New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '0.0.0.0/32' -GenerateSshKey
    
  1. Dari beranda portal Azure, pilih
  2. Konfigurasikan pengaturan kluster sesuai kebutuhan.
  3. Di bagian Jaringan di bawah Akses publik, pilih Atur rentang IP resmi.
  4. Untuk Tentukan rentang IP, masukkan 0.0.0.0/32. Pengaturan ini hanya memungkinkan IP publik keluar dari load balancer SKU Standar.
  5. Konfigurasikan pengaturan kluster lainnya sesuai kebutuhan.
  6. Setelah siap, pilih Tinjau + buat> untuk membuat kluster.

Memperbarui rentang IP resmi server API pada kluster yang ada

  • Perbarui rentang IP resmi server API kluster yang ada menggunakan az aks update perintah dengan --api-server-authorized-ip-ranges parameter . Contoh berikut memperbarui rentang IP resmi server API pada kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup dan memperbarui rentang alamat IP menjadi 73.140.245.0/24:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24
    

Perbolehkan beberapa rentang alamat IP

Untuk mengizinkan beberapa rentang alamat IP, Anda dapat mencantumkan beberapa alamat IP, dipisahkan dengan koma.

  • Perbarui rentang IP yang diizinkan dari server API pada kluster yang ada untuk memungkinkan beberapa rentang alamat IP menggunakan perintah az aks update dengan parameter --api-server-authorized-ip-ranges. Contoh berikut memperbarui rentang IP resmi server API pada kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup dan memungkinkan beberapa rentang alamat IP:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24,193.168.1.0/24,194.168.1.0/24
    
  • Perbarui rentang IP resmi server API kluster yang ada menggunakan Set-AzAksCluster cmdlet dengan -ApiServerAccessAuthorizedIpRange parameter . Contoh berikut memperbarui rentang IP resmi server API pada kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup dan memperbarui rentang alamat IP menjadi 73.140.245.0/24:

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '73.140.245.0/24'
    
  1. Navigasi ke portal Azure dan pilih kluster AKS yang ingin Anda perbarui.
  2. Dari menu layanan, di bawah Pengaturan, pilih Jaringan.
  3. Di bawah Pengaturan sumber daya, pilih Kelola.
  4. Pada halaman Rentang IP resmi, perbarui rentang IP Resmi sesuai kebutuhan.
  5. Jika sudah selesai, pilih Simpan.

Menonaktifkan rentang IP resmi server API pada kluster yang ada

  • Nonaktifkan rentang IP resmi server API menggunakan az aks update perintah dan tentukan rentang "" kosong untuk --api-server-authorized-ip-ranges parameter .

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges ""
    
  • Nonaktifkan rentang IP resmi server API menggunakan Set-AzAksCluster cmdlet dan tentukan rentang '' kosong untuk -ApiServerAccessAuthorizedIpRange parameter .

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange ''
    
  1. Navigasi ke portal Azure dan pilih kluster AKS yang ingin Anda perbarui.
  2. Dari menu layanan, di bawah Pengaturan, pilih Jaringan.
  3. Di bawah Pengaturan sumber daya, pilih Kelola.
  4. Pada halaman Rentang IP resmi, batal pilih kotak centang Atur rentang IP resmi.
  5. Pilih Simpan.

Menemukan rentang IP resmi server API yang ada

  • Temukan rentang IP yang diizinkan dari server API yang ada menggunakan perintah az aks show dengan parameter --query diatur ke apiServerAccessProfile.authorizedIpRanges.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query apiServerAccessProfile.authorizedIpRanges
    

    Contoh output:

    [
      "73.140.245.0/24"
    ]
    
  • Temukan rentang IP resmi server API yang ada menggunakan Get-AzAksCluster cmdlet .

    Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster | Select-Object -ExpandProperty ApiServerAccessProfile
    

    Contoh output:

    AuthorizedIPRanges: {73.140.245.0/24}
    ...
    
  1. Navigasi ke portal Azure dan pilih kluster AKS Anda.

  2. Dari menu layanan, di bawah Pengaturan, pilih Jaringan. Rentang IP resmi server API yang ada tercantum di bawah Pengaturan sumber daya.

    Cuplikan layar rentang IP resmi server API di portal Microsoft Azure.

Mengakses server API dari komputer pengembangan, alat, atau otomatisasi Anda

Anda harus menambahkan mesin pengembangan, alat, atau alamat IP otomatisasi ke daftar kluster AKS dari rentang IP yang disetujui untuk mengakses server API dari sana.

Opsi lain adalah mengonfigurasi jumpbox dengan alat yang diperlukan di dalam subnet terpisah di jaringan virtual firewall. Opsi ini mengasumsikan lingkungan Anda memiliki firewall dengan jaringan masing-masing dan Anda menambahkan IP firewall ke rentang yang diotorisasi. Demikian pula, jika Anda memaksa penerowongan dari subnet AKS ke subnet firewall, keberadaan jump box di subnet kluster juga tetap berfungsi dengan baik.

Catatan

Contoh berikut menambahkan alamat IP lain ke rentang yang disetujui. Ini masih termasuk alamat IP yang ada. Jika Anda tidak menyertakan alamat IP yang ada, perintah ini menggantinya dengan yang baru alih-alih menambahkannya ke rentang yang diotorisasi.

  1. Ambil alamat IP Anda dan atur ke variabel lingkungan menggunakan perintah berikut:

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. Tambahkan alamat IP Anda ke daftar yang disetujui dengan perintah az aks update dan parameter --api-server-authorized-ip-ranges. Contoh berikut menambahkan alamat IP Anda saat ini ke rentang IP resmi server API yang ada pada kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup:

    az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges $CURRENT_IP/24,73.140.245.0/24
    
  1. Ambil alamat IP Anda dan atur ke variabel lingkungan menggunakan perintah berikut:

    # Retrieve your IP address
    CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")
    
  2. Tambahkan alamat IP Anda ke daftar yang disetujui menggunakan Set-AzAksCluster cmdlet dengan -ApiServerAccessAuthorizedIpRange parameter . Contoh berikut menambahkan alamat IP Anda saat ini ke rentang IP resmi server API yang ada pada kluster bernama myAKSCluster di grup sumber daya bernama myResourceGroup:

    Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '$CURRENT_IP/24,73.140.245.0/24'
    

Opsi lain adalah menggunakan perintah berikut pada sistem Windows untuk mendapatkan alamat IPv4 publik:

Invoke-RestMethod http://ipinfo.io/json | Select -exp ip

Anda juga dapat mengikuti langkah-langkah dalam Menemukan alamat IP Anda atau mencari apa alamat IP saya? di browser internet.

Untuk mempelajari selengkapnya tentang keamanan di AKS, lihat artikel berikut ini: