Mengamankan penyebaran Azure Kubernetes Service (AKS) Anda

Azure Kubernetes Service (AKS) menyediakan lingkungan Kubernetes terkelola untuk menyebarkan dan mengoperasikan aplikasi dalam kontainer. Microsoft mengelola sarana kontrol Kubernetes, sementara Anda bertanggung jawab untuk mengamankan beban kerja, konfigurasi node, jaringan, identitas, dan data di kluster Anda. Saat Anda menyebarkan AKS, penting untuk mengikuti praktik terbaik keamanan untuk melindungi permukaan bersama ini di seluruh siklus hidup kluster.

Artikel ini menyajikan rekomendasi keamanan untuk membantu melindungi deployment AKS Anda. Banyak dari kontrol ini telah dikonfigurasi sebelumnya di AKS Otomatis, yang memulai kluster dari garis besar yang diperkeras, dan tersedia bagi Anda untuk mengaktifkan dan mengelola di Standar AKS. Untuk konsep di balik kontrol ini, termasuk cara kerja keamanan AKS di seluruh alur build-to-runtime, lihat Konsep keamanan untuk aplikasi dan kluster di AKS.

Rekomendasi keamanan dalam artikel ini menerapkan prinsip-prinsip Zero Trust: "Verifikasi secara eksplisit", "Gunakan akses hak istimewa paling sedikit", dan "Asumsikan pelanggaran". Untuk panduan Zero Trust yang komprehensif, lihat Pusat Panduan Zero Trust.

Keamanan khusus layanan

AKS menggabungkan primitif keamanan Kubernetes dengan kontrol platform Azure. Rekomendasi berikut menangani aspek penguatan keamanan yang khusus untuk pengoperasian kluster Kubernetes terkelola, termasuk integritas node, asal-usul image, dan isolasi beban kerja.

Penguatan keamanan klaster dan node

  • Pertahankan kluster pada versi Kubernetes yang didukung dengan peningkatan kluster otomatis: Daftarkan kluster di saluran peningkatan otomatis sehingga sarana kontrol dan kumpulan simpul menerima patch Kubernetes yang memperbaiki kerentanan yang diketahui tanpa intervensi manual. Untuk informasi selengkapnya, lihat Meningkatkan kluster AKS secara otomatis.
  • Terapkan pembaruan keamanan OS simpul secara otomatis: Konfigurasikan saluran peningkatan otomatis OS simpul sehingga simpul menerima patch keamanan Linux dan Windows OS pada irama yang ditentukan. Untuk informasi selengkapnya, lihat Meningkatkan citra sistem operasi simpul kluster AKS secara otomatis.
  • Terapkan standar Penerimaan Keamanan Pod: Terapkan garis besar atau Standar Keamanan Pod terbatas pada tingkat namespace untuk mencegah pod istimewa, berbagi namespace host, dan pemasangan volume yang tidak aman. Untuk informasi selengkapnya, lihat Mengamankan pod Anda di AKS.
  • Menyebarkan kumpulan simpul berkemampuan FIPS untuk beban kerja yang diatur: Aktifkan kumpulan simpul berkemampuan FIPS, yang menggunakan modul kriptografi tervalidasi FIPS 140-3, saat beban kerja harus memenuhi persyaratan seperti kepatuhan FedRAMP. Untuk informasi selengkapnya, lihat Mengaktifkan Federal Information Process Standard (FIPS) untuk kumpulan simpul AKS.
  • Jangan menjalankan beban kerja multipenyewa yang bermusuhan pada kluster bersama: Kluster Kubernetes standar bukanlah batas keamanan yang keras antara penyewa yang tidak tepercaya, karena domain keamanan adalah seluruh kluster daripada simpul individual. Untuk beban kerja yang memerlukan isolasi ketat, gunakan kluster yang terisolasi secara fisik, ukuran simpul VM yang terisolasi, atau sandboxing pod. Untuk informasi selengkapnya, lihat Praktik terbaik untuk isolasi kluster di AKS.

Gambar kontainer dan keamanan rantai pasokan

  • Membatasi penyebaran ke registri kontainer tepercaya: Gunakan add-on Azure Policy untuk memberlakukan bahwa pod hanya dapat menarik gambar dari registri yang disetujui, seperti Azure Container Registry privat Anda, sehingga gambar publik yang tidak tepercaya tidak dapat berjalan di kluster. Untuk informasi selengkapnya, lihat Mengamankan kluster AKS Anda dengan Azure Policy.
  • Hapus gambar rentan yang tidak digunakan dengan Image Cleaner: Aktifkan Image Cleaner untuk secara otomatis menghapus gambar kedaluarsa dari simpul dan mengurangi permukaan serangan yang ditinggalkan oleh gambar yang rentan. Untuk informasi selengkapnya, lihat Menggunakan Image Cleaner untuk membersihkan gambar yang rentan di AKS.
  • Pindai registri dan menjalankan beban kerja dengan Microsoft Defender untuk Kontainer: Mendeteksi gambar yang rentan dan kesalahan konfigurasi di seluruh registri dan kluster Anda sebelum dan sesudah penyebaran. Untuk informasi selengkapnya, lihat Ikhtisar Microsoft Defender untuk Kontainer.

Keamanan jaringan

Secara default, server API AKS dapat dijangkau melalui titik akhir publik, dan egress kluster tidak dibatasi. Membatasi akses masuk ke sarana kontrol dan lalu lintas keluar dari beban kerja adalah salah satu perubahan paling efektif yang dapat Anda lakukan untuk mengurangi permukaan serangan jaringan kluster Anda.

  • Sebarkan kluster privat untuk menghapus titik akhir server API publik: Buat kluster privat sehingga server API Kubernetes hanya dapat dijangkau dari jaringan virtual Anda melalui titik akhir privat. Untuk informasi selengkapnya, lihat Membuat kluster Azure Kubernetes Service (AKS) privat.
  • Integrasikan server API dengan jaringan virtual Anda: Gunakan integrasi jaringan virtual server API sehingga lalu lintas sarana kontrol tetap berada di subnet privat tanpa memerlukan komponen penerowongan. Untuk informasi selengkapnya, lihat Membuat kluster AKS dengan integrasi jaringan virtual server API.
  • Terapkan kebijakan jaringan untuk mengontrol lalu lintas pod-ke-pod: Terapkan kebijakan jaringan Kubernetes untuk membatasi lalu lintas timur-barat antar pod hanya untuk apa yang diperlukan beban kerja Anda. Untuk informasi selengkapnya, lihat Mengamankan lalu lintas antar pod dengan menggunakan kebijakan jaringan di AKS.
  • Membatasi lalu lintas keluar kluster: Atur jenis keluar yang ditentukan pengguna dan keluar rute melalui Azure Firewall untuk memfilter dan memeriksa tujuan yang dapat dijangkau beban kerja Anda. Untuk informasi selengkapnya, lihat Mengontrol lalu lintas keluar untuk node kluster di AKS.
  • Memfilter lalu lintas keluar dengan nama domain yang sepenuhnya memenuhi syarat: Gunakan pemfilteran berbasis FQDN di Layanan Jaringan Kontainer Tingkat Lanjut untuk memungkinkan keluar hanya ke domain yang disetujui. Untuk informasi selengkapnya, lihat Pemfilteran FQDN untuk Layanan Jaringan Kontainer Tingkat Lanjut.

Pengelolaan identitas dan akses

AKS mengautentikasi identitas kluster dan beban kerja melalui Microsoft Entra ID dan mengotorisasi akses melalui RBAC Azure dan RBAC Kubernetes. Gunakan identitas terkelola dan otorisasi yang didukung Entra alih-alih kredensial statis atau akun Kubernetes mandiri.

  • Gunakan identitas terkelola untuk kluster: Konfigurasikan kluster untuk menggunakan identitas terkelola sehingga AKS mengakses sumber daya Azure tanpa kredensial perwakilan layanan statis yang harus Anda putar. Untuk informasi selengkapnya, lihat Menggunakan identitas terkelola di Azure Kubernetes Service (AKS).
  • Gunakan identitas beban kerja untuk akses pod ke sumber daya Azure: Federasi akun layanan Kubernetes dengan identitas beban kerja Microsoft Entra sehingga pod mendapatkan token untuk sumber daya Azure tanpa menyimpan rahasia. Untuk informasi selengkapnya, lihat Menggunakan Microsoft Entra Workload ID dengan AKS.
  • Mengintegrasikan autentikasi kluster dengan Microsoft Entra ID: Aktifkan integrasi Microsoft Entra sehingga pengguna dan grup mengautentikasi ke kluster dengan identitas Entra mereka alih-alih sertifikat bersama. Untuk informasi selengkapnya, lihat integrasi Microsoft Entra yang dikelola AKS.
  • Otorisasi akses API Kubernetes dengan Azure RBAC: Gunakan RBAC Azure untuk otorisasi Kubernetes dan tetapkan peran bawaan AKS (Azure Kubernetes Service Pembaca RBAC, Azure Kubernetes Service Penulis RBAC, Azure Kubernetes Service Admin RBAC, dan Azure Kubernetes Service Admin Kluster RBAC) pada cakupan kluster atau namespace layanan untuk memberikan akses hak istimewa terkecil. Untuk informasi selengkapnya, lihat Konsep otorisasi kluster.
  • Nonaktifkan akun Kubernetes lokal: Nonaktifkan akun lokal sehingga semua alur akses kluster melalui Microsoft Entra ID dan tidak dapat melewati otorisasi yang didukung Entra dengan kredensial admin kluster statis. Untuk informasi selengkapnya, lihat Mengelola akun lokal dengan integrasi Microsoft Entra yang dikelola AKS.
  • Terapkan Akses Bersyarat untuk administrator kluster: Terapkan kebijakan Akses Bersyarat yang memerlukan autentikasi multifaktor dan perangkat yang sesuai untuk identitas Entra yang dapat membuat, meningkatkan, atau menghapus kluster AKS dan mengelola kumpulan simpul, jaringan, dan penetapan peran mereka. Untuk informasi lebih lanjut, lihat Require MFA for Azure management.

Perlindungan data

AKS mengenkripsi data tidak aktif pada disk terkelola secara default. Konfigurasikan kontrol berikut untuk melindungi rahasia Kubernetes dan untuk membawa kunci Anda sendiri di mana persyaratan kepatuhan Anda memanggilnya.

  • Enkripsi rahasia Kubernetes di etcd dengan layanan manajemen kunci: Aktifkan enkripsi data KMS sehingga objek Rahasia Kubernetes dienkripsi pada lapisan aplikasi sebelum ditulis ke etcd, menggunakan kunci yang dikelola platform atau kunci yang dikelola pelanggan Anda sendiri di Azure Key Vault. Untuk informasi selengkapnya, lihat Konsep enkripsi data saat tidak aktif untuk AKS.
  • Menyimpan rahasia aplikasi di Azure Key Vault: Gunakan penyedia Azure Key Vault untuk Secrets Store CSI Driver untuk memasang rahasia, kunci, dan sertifikat dari Key Vault alih-alih menyimpannya sebagai rahasia Kubernetes teks biasa. Untuk informasi selengkapnya, lihat Menggunakan penyedia Azure Key Vault untuk Secrets Store CSI Driver di AKS.
  • Gunakan kunci yang dikelola pelanggan untuk node dan disk data: Mengenkripsi OS dan disk data dengan kunci Anda sendiri di Key Vault saat Anda memerlukan kontrol atas siklus hidup kunci enkripsi. Untuk informasi selengkapnya, lihat Membawa kunci Anda sendiri (BYOK) dengan disk Azure di AKS.
  • Aktifkan enkripsi berbasis host: Aktifkan enkripsi berbasis host sehingga disk sementara dan cache disk OS/data pada simpul VM dienkripsi saat tidak aktif di host. Untuk informasi selengkapnya, lihat Enkripsi berbasis host di AKS.

Pencatatan dan pemantauan

Kumpulkan telemetri kluster, sarana kontrol, dan beban kerja sehingga Anda dapat mendeteksi dan menyelidiki ancaman terhadap kluster AKS Anda.

  • Memantau kluster dengan wawasan Kontainer: Mengaktifkan wawasan Kontainer untuk mengumpulkan metrik dan log simpul dan kontainer untuk kluster Anda ke dalam ruang kerja Log Analytics. Untuk informasi selengkapnya, lihat Memantau Azure Kubernetes Service (AKS).
  • Kumpulkan log audit sarana kontrol dengan pengaturan diagnostik: Konfigurasikan pengaturan diagnostik untuk mengirim server API Kubernetes dan kategori log audit (kube-audit, kube-audit-admin, dan guard) ke Log Analytics untuk penyelidikan keamanan. Untuk informasi selengkapnya, lihat Referensi data pemantauan AKS.
  • Aktifkan deteksi ancaman dengan Microsoft Defender untuk Kontainer: Aktifkan Defender agar Kontainer menerima pemberitahuan deteksi ancaman runtime untuk node kluster, beban kerja, dan sarana kontrol Kubernetes. Untuk informasi selengkapnya, lihat Ikhtisar Microsoft Defender untuk Kontainer.

Kepatuhan dan tata kelola

Gunakan Azure Policy untuk menerapkan konfigurasi keamanan secara konsisten di seluruh kluster AKS Anda dan untuk mencegah beban kerja yang tidak patuh disebarkan.

  • Menerapkan konfigurasi kluster dan beban kerja dengan Azure Policy untuk AKS: Aktifkan add-on Azure Policy dan tetapkan inisiatif kebijakan bawaan AKS untuk mengaudit dan menerapkan kontrol seperti registri yang disetujui, batas sumber daya, dan kontainer istimewa yang diblokir. Untuk informasi selengkapnya, lihat Mengamankan kluster AKS Anda dengan Azure Policy.
  • Menerapkan perlindungan penyebaran untuk praktik terbaik Kubernetes: Aktifkan perlindungan penyebaran untuk memvalidasi sumber daya kluster terhadap praktik terbaik AKS dalam mode peringatan atau penegakan. Untuk informasi selengkapnya, lihat Menggunakan perlindungan penyebaran untuk menerapkan praktik terbaik di AKS.
  • Tetapkan definisi kebijakan bawaan AKS untuk menerapkan kontrol tertentu: Tetapkan definisi Azure Policy bawaan bagi AKS untuk menerapkan kontrol individual, seperti memerlukan rentang IP resmi atau kluster privat, menonaktifkan kontainer istimewa, dan memberlakukan penyeimbang beban internal. Untuk informasi selengkapnya, lihat Azure Policy definisi bawaan untuk AKS.

Pencadangan dan pemulihan

Lindungi status kluster dan data aplikasi sehingga Anda dapat pulih dari penghapusan, kerusakan, atau peningkatan yang gagal yang tidak disengaja.

  • Mencadangkan status kluster dan volume persisten dengan cadangan AKS: Gunakan cadangan AKS dengan brankas Backup untuk menjadwalkan pencadangan sumber daya kluster dan volume persisten yang didukung oleh Azure Disk dan Azure Files (SMB), dan untuk memulihkan namespace layanan atau seluruh kluster. Untuk informasi selengkapnya, lihat Apa itu pencadangan Azure Kubernetes Service (AKS)?.
  • Memberikan akses cadangan dengan Akses Tepercaya alih-alih izin luas: Aktifkan Akses Tepercaya sehingga vault Backup mencapai kluster dengan izin tercakup daripada memerlukan akses administratif yang berdiri. Untuk informasi selengkapnya, lihat Mengaktifkan sumber daya Azure untuk mengakses kluster AKS dengan menggunakan Akses Tepercaya.

Langkah berikutnya