Belajar Kubernetes (TLS di Arsitektur Kubernetes)
Transport Layer Security (TLS) Merupakan sebuah protokol kriptografi yang menyediakan komunikasi yang aman yang dikirim melalui jaringan komputer, atau internet. Protokol ini memastikan pertukaran data antar dua sistem tetap terautentikasi, rahasia dan otentik. TLS merupakan penerus protokol Security Sockets Layer (SSL).
TLS mengandalkan sertificat digital yang dikeluarkan oleh Certificate Authorities (CA) untuk melakukan verifikasi keaslian identitas server.
Ada 3 sertifikat digital yang menerapkan TLS yang digunakan dalam komunikasi data antar bagian di dalam arsitektur kubernetes, yakni Certificate Authorities atau Root certificate, Server certificates dan Client Certificates. Ketiga sertifikat digital ini menggunakan public private key pair dalam melakukan enkripsi data atau biasa dikenal dengan Asymmetric encryption.
Biasanya nama atau ekstension yang ditemukan di server sebagai berikut:
Public key:
- server.crt
- server.pem
- client.crt
- client.pem
Private key:
- server.key
- server-key.pem
- client.key
- client-key.pem
Di dalam arsitektur kubernetes, setiap komunikasi yang terjadi pada setiap komponen harus dilakukan dengan cara yang aman. Sebagai contoh, ketika user mengakses master node menggunakan kubectl, komunikasi tersebut akan di enkripsi. Begitu juga dengan master node yang ingin berkomunikasi dengan node-node yang terhubung dengannya.
Komponen-komponen tersebut akan menggunakan sertifikat digital untuk mengamankan setiap komunikasi yang terjadi. Misalnya server certificates dan client certificates. Kita dapat membagi komponen yang menggunakan server certificates maupun client certificates sebagai berikut:
Server Certificates
- kube-apiserver
- etcd server
- kubelet server
Client Certificates
- admin
- kube-scheduler
- kube-control-manager
- kube-proxy
- kube-apiserver
- kubelet server
Terlihat bahwa kube-apiserver dan kubelet server memiliki dua sertifikat digital server certificates maupun client certificates, ini dikarenakan kedua komponen tersebut berperan server maupun klien dalam komunikasi data pada arsitektur kubernetes.
Dengan melihat gambar diatas maka dapat disimpulkan bahwa masing-masing komponen memiliki sertifikat digital (public dan private key) yang dapat dibuat sebagai berikut:
Publik dan privat key ini dapat melakukan enkripsi terhadap setiap komunikasi yang dilakukan antar komponen didalam kubernetes. Adapun untuk membuat sertifikat digital dapat menggunakan openssl dan akan dibahas pada tulisan berbeda.