Mengelola SSH untuk akses aman ke simpul Azure Kubernetes Service (AKS)
Artikel ini menjelaskan cara mengonfigurasi kunci SSH (pratinjau) pada kluster AKS atau kumpulan simpul Anda, selama penyebaran awal atau di lain waktu.
AKS mendukung opsi konfigurasi berikut untuk mengelola kunci SSH pada node kluster:
- Membuat kluster dengan kunci SSH
- Memperbarui kunci SSH pada kluster AKS yang ada
- Menonaktifkan dan mengaktifkan layanan SSH
Penting
Fitur pratinjau AKS tersedia berdasarkan layanan mandiri. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan mereka dikecualikan dari perjanjian tingkat layanan dan garansi terbatas. Pratinjau AKS sebagian dicakup oleh dukungan pelanggan berdasarkan upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
Sebelum Anda mulai
- Anda memerlukan
aks-preview
versi 0.5.116 atau yang lebih baru untuk menggunakan Pembaruan. - Anda memerlukan
aks-preview
versi 1.0.0b6 atau yang lebih baru untuk menggunakan Nonaktifkan. - Fitur Buat dan Perbarui SSH mendukung kumpulan simpul Linux, Windows, dan Azure Linux pada kluster yang ada.
- Fitur Nonaktifkan SSH tidak didukung dalam rilis pratinjau ini pada kumpulan simpul yang menjalankan sistem operasi Windows Server.
Memasang ekstensi aks-preview
Azure CLI
Instal ekstensi aks-preview menggunakan
az extension add
perintah .az extension add --name aks-preview
Perbarui ke versi terbaru ekstensi menggunakan
az extension update
perintah .az extension update --name aks-preview
Daftarkan DisableSSHPreview
bendera fitur
Untuk menggunakan fitur Nonaktifkan SSH, lakukan langkah-langkah berikut untuk mendaftar dan mengaktifkannya di langganan Anda.
Daftarkan
DisableSSHPreview
bendera fitur menggunakanaz feature register
perintah .az feature register --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
Dibutuhkan beberapa menit agar status menampilkan Terdaftar.
Verifikasi status pendaftaran menggunakan
az feature show
perintah .az feature show --namespace "Microsoft.ContainerService" --name "DisableSSHPreview"
Saat status mencerminkan Terdaftar, refresh pendaftaran penyedia sumber daya Microsoft.ContainerService menggunakan
az provider register
perintah .az provider register --namespace Microsoft.ContainerService
Membuat kluster AKS dengan kunci SSH
Gunakan perintah az aks create untuk menyebarkan kluster AKS dengan kunci umum SSH. Anda dapat menentukan kunci atau file kunci menggunakan --ssh-key-value
argumen .
Parameter SSH | Deskripsi | Nilai default |
---|---|---|
--generate-ssh-key |
Jika Anda tidak memiliki kunci SSH Anda sendiri, tentukan --generate-ssh-key . Azure CLI secara otomatis menghasilkan sekumpulan kunci SSH dan menyimpannya di direktori ~/.ssh/ default . |
|
--ssh-key-value | Jalur kunci publik atau konten kunci untuk diinstal pada VM simpul untuk akses SSH. Contohnya,ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm . |
~/.ssh/id_rsa.pub |
--no-ssh-key |
Jika Anda tidak memerlukan kunci SSH, tentukan argumen ini. Namun, AKS secara otomatis menghasilkan sekumpulan kunci SSH karena dependensi sumber daya Azure Virtual Machine tidak mendukung file kunci SSH kosong. Akibatnya, kunci tidak dikembalikan dan tidak dapat digunakan untuk SSH ke dalam simpul VM. Kunci privat dibuang dan tidak disimpan. |
Catatan
Jika tidak ada parameter yang ditentukan, Azure CLI default untuk mereferensikan kunci SSH yang disimpan dalam ~/.ssh/id_rsa.pub
file. Jika kunci tidak ditemukan, perintah mengembalikan pesan An RSA key file or key value must be supplied to SSH Key Value
.
Berikut ini adalah contoh perintah ini:
Untuk membuat kluster dan menggunakan kunci SSH yang dihasilkan default:
az aks create --name myAKSCluster --resource-group MyResourceGroup --generate-ssh-key
Untuk menentukan file kunci publik SSH, sertakan
--ssh-key-value
argumen:az aks create --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value ~/.ssh/id_rsa.pub
Memperbarui kunci publik SSH pada kluster AKS yang ada
az aks update
Gunakan perintah untuk memperbarui kunci umum SSH (pratinjau) pada kluster Anda. Operasi ini memperbarui kunci pada semua kumpulan simpul. Anda dapat menentukan kunci atau file kunci menggunakan --ssh-key-value
argumen .
Catatan
Memperbarui kunci SSH didukung pada set skala komputer virtual Azure dengan kluster AKS.
Berikut ini adalah contoh perintah ini:
Untuk menentukan nilai kunci publik SSH baru, sertakan
--ssh-key-value
argumen:az aks update --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value 'ssh-rsa AAAAB3Nza-xxx'
Untuk menentukan file kunci publik SSH, tentukan dengan
--ssh-key-value
argumen:az aks update --name myAKSCluster --resource-group MyResourceGroup --ssh-key-value ~/.ssh/id_rsa.pub
Penting
Setelah Anda memperbarui kunci SSH, AKS tidak secara otomatis memperbarui kumpulan simpul Anda. Kapan saja, Anda dapat memilih untuk melakukan operasi pembaruan nodepool. Operasi perbarui kunci SSH berlaku setelah pembaruan gambar simpul selesai.
Nonaktifkan gambaran umum SSH
Untuk meningkatkan keamanan dan mendukung persyaratan atau strategi keamanan perusahaan Anda, AKS mendukung penonaktifan SSH (pratinjau) baik pada kluster maupun di tingkat kumpulan simpul. Nonaktifkan SSH memperkenalkan pendekatan yang disederhanakan dibandingkan dengan satu-satunya solusi yang didukung, yang memerlukan konfigurasi aturan grup keamanan jaringan pada kartu antarmuka jaringan subnet/simpul AKS (NIC). Nonaktifkan SSH hanya mendukung kumpulan simpul Virtual Machine Scale Sets.
Ketika Anda menonaktifkan SSH pada waktu pembuatan kluster, itu berlaku setelah kluster dibuat. Namun, ketika Anda menonaktifkan SSH pada kluster atau kumpulan simpul yang ada, AKS tidak secara otomatis menonaktifkan SSH. Kapan saja, Anda dapat memilih untuk melakukan operasi peningkatan nodepool. Operasi nonaktifkan/aktifkan kunci SSH berlaku setelah pembaruan gambar simpul selesai.
Catatan
Saat Anda menonaktifkan SSH di tingkat kluster, SSH berlaku untuk semua kumpulan simpul yang ada. Setiap kumpulan simpul yang dibuat setelah operasi ini akan mengaktifkan SSH secara default, dan Anda harus menjalankan perintah ini lagi untuk menonaktifkannya.
Parameter SSH | Deskripsi |
---|---|
disabled |
Layanan SSH dinonaktifkan. |
localuser |
Layanan SSH diaktifkan dan pengguna dengan kunci SSH dapat mengakses simpul dengan aman. |
Catatan
node debug kubectl terus berfungsi setelah Anda menonaktifkan SSH karena tidak bergantung pada layanan SSH.
Menonaktifkan SSH pada penyebaran kluster baru
Secara default, layanan SSH pada node kluster AKS terbuka untuk semua pengguna dan pod yang berjalan pada kluster. Anda dapat mencegah akses SSH langsung dari jaringan apa pun ke node kluster untuk membantu membatasi vektor serangan jika kontainer dalam pod disusupi.
az aks create
Gunakan perintah untuk membuat kluster baru, dan sertakan --ssh-access disabled
argumen untuk menonaktifkan SSH (pratinjau) pada semua kumpulan simpul selama pembuatan kluster.
Penting
Setelah menonaktifkan layanan SSH, Anda tidak dapat SSH ke dalam kluster untuk melakukan tugas administratif atau memecahkan masalah.
Catatan
Pada kluster yang baru dibuat, nonaktifkan ssh hanya akan mengonfigurasi nodepool sistem ke-1. Semua nodepool lainnya perlu dikonfigurasi pada tingkat nodepool.
az aks create --resource-group myResourceGroup --name myManagedCluster --ssh-access disabled
Setelah beberapa menit, perintah selesai dan kembalikan informasi berformat JSON tentang kluster. Contoh berikut menyerupai output dan hasil yang terkait dengan menonaktifkan SSH:
"securityProfile": {
"sshAccess": "Disabled"
},
Menonaktifkan SSH untuk kumpulan simpul baru
az aks nodepool add
Gunakan perintah untuk menambahkan kumpulan simpul, dan sertakan --ssh-access disabled
argumen untuk menonaktifkan SSH selama pembuatan kumpulan simpul.
az aks nodepool add --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --ssh-access disabled
Setelah beberapa menit, perintah menyelesaikan dan mengembalikan informasi berformat JSON tentang kluster yang menunjukkan mynodepool berhasil dibuat. Contoh berikut menyerupai output dan hasil yang terkait dengan menonaktifkan SSH:
"securityProfile": {
"sshAccess": "Disabled"
},
Nonaktifkan SSH untuk kumpulan simpul yang ada
Gunakan argumen [az aks nodepool update][az-aks-nodepool-update] command with the
--ssh-access disabled' untuk menonaktifkan SSH (pratinjau) pada kumpulan simpul yang ada.
az aks nodepool update --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --ssh-access disabled
Setelah beberapa menit, perintah menyelesaikan dan mengembalikan informasi berformat JSON tentang kluster yang menunjukkan mynodepool berhasil dibuat. Contoh berikut menyerupai output dan hasil yang terkait dengan menonaktifkan SSH:
"securityProfile": {
"sshAccess": "Disabled"
},
Agar perubahan diterapkan, Anda perlu menggambar ulang kumpulan simpul dengan menggunakan az aks nodepool upgrade
perintah .
az aks nodepool upgrade --cluster-name myManagedCluster --name mynodepool --resource-group myResourceGroup --node-image-only
Penting
Untuk menonaktifkan SSH pada kluster yang ada, Anda perlu menonaktifkan SSH untuk setiap kumpulan simpul pada kluster ini.
Mengaktifkan kembali SSH pada kluster yang ada
az aks update
Gunakan perintah untuk memperbarui kluster yang ada, dan sertakan --ssh-access localuser
argumen untuk mengaktifkan kembali SSH (pratinjau) pada semua kumpulan simpul di kluster.
az aks update --resource-group myResourceGroup --name myManagedCluster --ssh-access localuser
Pesan berikut dikembalikan saat proses dilakukan:
Only after all the nodes are reimaged, does the disable/enable SSH Access operation take effect."
Setelah mengaktifkan kembali SSH, simpul tidak akan dicitrakan ulang secara otomatis. Kapan saja, Anda dapat memilih untuk melakukan operasi reimage.
Penting
Selama operasi ini, semua instans Virtual Machine Scale Set ditingkatkan dan dicitrakan ulang untuk menggunakan kunci umum SSH baru.
Mengaktifkan kembali SSH untuk kumpulan simpul tertentu
az aks update
Gunakan perintah untuk memperbarui kumpulan simpul tertentu, dan sertakan --ssh-access localuser
argumen untuk mengaktifkan kembali SSH (pratinjau) pada kumpulan simpul tersebut di kluster. Dalam contoh berikut, nodepool1 adalah kumpulan simpul target.
az aks nodepool update --cluster-name myManagedCluster --name nodepool1 --resource-group myResourceGroup --ssh-access localuser
Pesan berikut dikembalikan saat proses dilakukan:
Only after all the nodes are reimaged, does the disable/enable SSH Access operation take effect.
Penting
Selama operasi ini, semua instans Virtual Machine Scale Set ditingkatkan dan dicitrakan ulang untuk menggunakan kunci umum SSH baru.
Status layanan SSH
Lakukan langkah-langkah berikut untuk menggunakan node-shell ke satu simpul dan periksa status layanan SSH menggunakan systemctl
.
Dapatkan shell bash standar dengan menjalankan
kubectl node-shell <node>
perintah .kubectl node-shell aks-nodepool1-20785627-vmss000001
Jalankan
systemctl
perintah untuk memeriksa status layanan SSH.systemctl status ssh
Jika SSH dinonaktifkan, output sampel berikut menunjukkan hasilnya:
ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; disabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2024-01-03 15:36:57 UTC; 20min ago
Jika SSH diaktifkan, output sampel berikut menunjukkan hasilnya:
ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2024-01-03 15:40:20 UTC; 19min ago
Langkah berikutnya
Untuk membantu memecahkan masalah dengan konektivitas SSH ke node kluster, Anda dapat melihat log kubelet atau melihat log simpul master Kubernetes.
Azure Kubernetes Service