Keamanan gateway


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 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 lebih lanjut sertifikat SSL Google Cloud, 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 port dan protocol pemroses Gateway ke 443 dan HTTPS.
  • Anda harus menetapkan kolom listener.tls.mode ke Terminate.
  • 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.

Sertifikat SSL dapat dikelola sendiri atau dikelola Google.

Untuk mempelajari lebih lanjut perbedaan antara kedua jenis sertifikat ini, lihat Ringkasan sertifikat SSL.

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 persyaratan cakupan dan 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
Sertifikat SSL yang dikelola Google tidak kompatibel dengan Gateway regional.

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.

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-global-external-managed
gke-l7-global-external-managed-mc
gke-l7-gxlb
gke-l7-gxlb-mc
gke-l7-regional-external-managed
gke-l7-regional-external-managed-mc
gke-l7-rilb
gke-l7-rilb-mc
Klien ke TLS Gateway Didukung Didukung
Gateway ke TLS backend Didukung Didukung
Resource sertifikat Google Cloud Sertifikat SSL global
CertificateMap
Sertifikat SSL regional
Sertifikat yang dikelola sendiri dengan Secret Kubernetes Didukung Didukung
Sertifikat SSL Compute Engine yang dikelola sendiri Didukung Didukung
Sertifikat SSL Compute Engine yang dikelola Google Didukung Tidak didukung
Sertifikat SSL yang dikelola sendiri dengan Certificate Manager Didukung Didukung
Sertifikat SSL yang dikelola Google dengan Certificate Manager Didukung Didukung

Langkah selanjutnya