Halaman ini menjelaskan berbagai metode untuk mengamankan Gateway di Google Kubernetes Engine (GKE). Anda juga dapat mempelajari cara Mengamankan Gateway.
Cara kerja keamanan Gateway
Gateway mewakili frontend load balancer. Ada dua jalur yang dapat Anda amankan dengan autentikasi dan enkripsi untuk Gateway:
- Klien ke Gateway: traffic berasal dari klien dan dihentikan di Gateway.
- Gateway ke Pod: traffic berasal dari Gateway dan dihentikan di Pod backend.
Diagram berikut menunjukkan kedua jalur untuk mengautentikasi dan mengenkripsi Gateway:
Halaman ini menjelaskan cara mengamankan klien ke jalur Gateway menggunakan sertifikat yang diupload dan dikelola di tingkat Gateway. Untuk mempelajari cara mengamankan Gateway ke traffic Pod, lihat Mengamankan load balancer ke traffic aplikasi menggunakan TLS.
Manfaat
Anda dapat mengamankan aplikasi dengan berbagai cara menggunakan Gateway API, yang memberikan fleksibilitas untuk berbagai peran yang berinteraksi dengan Gateway.
Siapa yang memiliki domain dan konfigurasi TLS?
Model Gateway API memperkenalkan dua peran yang menggunakan atau men-deploy Gateway:
- Admin platform: operator cluster adalah administrator untuk seluruh cluster. Mereka mengelola kebijakan, akses jaringan, dan izin aplikasi.
- Developer aplikasi: developer aplikasi menentukan konfigurasi Layanan dan aplikasi mereka.
Diagram berikut menunjukkan kolom di resource Gateway dan HTTPRoute yang memengaruhi kepemilikan domain dan TLS untuk dua aplikasi, store-v1
dan store-v2
.
Dalam diagram, operator cluster mengontrol:
- Domain mana yang dapat digunakan developer aplikasi untuk aplikasi mereka di setiap namespace.
- Sertifikat khusus yang menghentikan domain lain.
- Sertifikat yang diberikan oleh pemilik Gateway.
- Apakah pemilik HTTPRoute dapat menentukan nama host-nya sendiri untuk pembuatan sertifikat.
Developer aplikasi mengontrol nama host yang membuat sertifikat, jika definisi Gateway mengizinkannya.
Dengan pemisahan tugas operasional ini, developer aplikasi dapat men-deploy dan mengelola HTTPRoute mereka sendiri untuk kontrol yang lebih terdistribusi, dan memungkinkan administrator platform men-deploy dan mengelola Gateway untuk kontrol TLS yang terpusat.
Pengelolaan sertifikat gateway
Anda dapat mengamankan Gateway menggunakan metode berikut:
Jika menggunakan Secret Kubernetes atau resource SslCertificate
dari Compute Engine API, Anda dapat melampirkan maksimal 15 sertifikat ke satu Gateway.
Dengan Certificate Manager, Anda dapat melampirkan hingga 10.000.000 sertifikat per load balancer, jika Anda meminta penambahan kuota.
Untuk mempelajari sertifikat SSL Google Cloud lebih lanjut, lihat Ringkasan sertifikat SSL.
Secret Kubernetes
Spesifikasi Gateway API mendukung Secret Kubernetes untuk menyimpan dan melampirkan sertifikat ke Gateway. Anda dapat mengaitkan satu atau beberapa Secret Kubernetes dengan Gateway menggunakan kolom Gateway.spec.tls.certificateRef
.
Resource gateway yang diamankan melalui Secret Kubernetes memiliki persyaratan berikut:
- Anda harus menetapkan pemroses Gateway
port
danprotocol
ke443
danHTTPS
. - Anda harus menetapkan kolom
listener.tls.mode
keTerminate
. - Anda harus merujuk kredensial TLS dalam blok
listeners.tls
.
Resource gateway yang diamankan menggunakan Secret Kubernetes memiliki batasan berikut:
- Hanya pemroses HTTPS yang menghentikan traffic menggunakan Secret yang ditentukan, meskipun Anda dapat menentukan beberapa pemroses dengan kombinasi HTTP dan HTTPS.
- Jika Anda memiliki beberapa pemroses yang menggunakan HTTPS di Gateway yang sama, setiap pemroses harus memiliki nama host yang unik.
- Anda hanya dapat menghapus satu nama host atau menetapkan
*
untuk setiap port dan pasangan protokol. - Anda hanya dapat menetapkan satu sertifikat default untuk setiap Gateway.
Untuk mempelajari cara mengamankan Gateway menggunakan Secret Kubernetes, lihat Mengamankan Gateway menggunakan Secret Kubernetes.
Sertifikat SSL
Sertifikat SSL menyimpan dan mengirimkan sertifikat ke load balancer.
Cakupan dan lokasi sertifikat SSL harus sesuai dengan cakupan dan lokasi Gateway yang menggunakannya.
Misalnya, sertifikat SSL global tidak dapat digunakan oleh Gateway regional.
Tabel berikut mencantumkan cakupan dan persyaratan lokasi sertifikat SSL untuk setiap GatewayClass:
GatewayClass | Cakupan sertifikat SSL | Lokasi sertifikat SSL |
---|---|---|
gke-l7-global-external-managed |
Sertifikat SSL global | Global |
gke-l7-global-external-managed-mc |
||
gke-l7-gxlb |
||
gke-l7-gxlb-mc |
||
gke-l7-regional-external-managed |
Sertifikat SSL regional | Harus berupa region yang sama dengan Gateway |
gke-l7-regional-external-managed-mc |
||
gke-l7-rilb |
||
gke-l7-rilb-mc |
Untuk mempelajari cara mengamankan Gateway menggunakan sertifikat SSL, lihat Mengamankan Gateway menggunakan sertifikat SSL.
Certificate Manager
Certificate Manager adalah lokasi terpusat untuk mengelola sertifikat TLS Anda.
Saat mengamankan Gateway menggunakan Certificate Manager, Anda dapat melakukan hal berikut:
- Referensikan
CertificateMap
langsung dari Gateway yang Anda buat di Certificate Manager. - Kelola sertifikat Anda sendiri.
- Memperbaiki waktu penerapan sertifikat.
- Gunakan Cloud Monitoring untuk penerapan sertifikat dan sertifikat yang telah habis masa berlakunya.
Certificate Manager mendukung sertifikat SSL yang dikelola sendiri dan dikelola Google.
Certificate Manager tidak kompatibel dengan Gateway regional.
Untuk mempelajari cara mengamankan Gateway menggunakan Certificate Manager, lihat Mengamankan Gateway menggunakan Certificate Manager.
Dukungan TLS GatewayClass
Tabel berikut menjelaskan metode TLS termination yang didukung GKE untuk setiap GatewayClass:
GatewayClass |
gke-l7-regional-external-managed gke-l7-rilb
|
---|---|
Klien ke TLS Gateway | Didukung |
Gateway ke TLS backend | Didukung |
Resource sertifikat Google Cloud | Sertifikat SSL regional |
Sertifikat yang dikelola sendiri dengan Secret Kubernetes | Didukung |
Sertifikat SSL Compute Engine yang dikelola sendiri | Didukung |
Langkah selanjutnya
- Pelajari cara Mengamankan Gateway.