Keamanan

Halaman ini menjelaskan fitur keamanan yang termasuk dalam GKE di AWS, termasuk setiap lapisan infrastrukturnya, dan cara mengonfigurasi fitur keamanan sesuai kebutuhan Anda.

Ringkasan

GKE di AWS menawarkan beberapa fitur untuk membantu mengamankan workload Anda, termasuk konten image container, runtime container, jaringan cluster, dan akses ke server API cluster.

Sebaiknya ambil pendekatan berlapis untuk melindungi cluster dan workload. Anda dapat menerapkan prinsip hak istimewa terendah ke tingkat akses yang Anda berikan ke pengguna dan workload Anda. Anda mungkin perlu melakukan kompromi untuk memungkinkan tingkat fleksibilitas dan keamanan yang tepat.

Tanggung jawab bersama

Saat menggunakan GKE di AWS, Anda setuju untuk memikul tanggung jawab tertentu untuk cluster Anda. Untuk mengetahui informasi selengkapnya, lihat tanggung jawab bersama cluster GKE.

Autentikasi dan otorisasi

Anda melakukan autentikasi ke GKE pada cluster pengguna AWS melalui salah satu metode berikut:

Untuk mengonfigurasi akses yang lebih terperinci ke resource Kubernetes di level cluster atau dalam namespace Kubernetes, gunakan Role-based access control (RBAC) Kubernetes. RBAC memungkinkan Anda membuat kebijakan mendetail untuk menentukan operasi dan resource yang Anda izinkan untuk diakses oleh pengguna dan akun layanan. Dengan RBAC, Anda dapat mengontrol akses untuk setiap identitas tervalidasi yang diberikan.

Untuk lebih menyederhanakan dan menyederhanakan strategi autentikasi dan otorisasi Kubernetes Engine, GKE di AWS akan menonaktifkan Kontrol akses berbasis atribut (ABAC) lama.

Enkripsi

Secara default, GKE di AWS mengenkripsi data dalam etcd dalam penyimpanan, volume EBS, Secret Kubernetes, dan komponen bidang kontrol dengan AWS Key Management Service (KMS).

Untuk mengenkripsi data sensitif di cluster pengguna, Anda dapat menggunakan salah satu cara berikut:

Secret Kubernetes

Resource Secret Kubernetes menyimpan data sensitif, seperti sandi, token OAuth, dan kunci SSH, di cluster Anda. Menyimpan data sensitif di Secrets lebih aman daripada menyimpannya dalam teks biasa ConfigMaps atau di spesifikasi Pod. Dengan menggunakan Secret, Anda dapat mengontrol penggunaan data sensitif, dan mengurangi risiko eksposur data kepada pengguna yang tidak sah.

Hashicorp Vault

GKE di AWS dapat menggunakan Hashicorp Vault untuk mengamankan Secret pada cluster pengguna Anda. Lihat Menggunakan HashiCorp Vault di GKE pada AWS untuk mengetahui informasi selengkapnya.

Keamanan bidang kontrol

Komponen bidang kontrol meliputi layanan pengelolaan serta server Kubernetes API cluster pengguna, penjadwal, pengontrol, dan database etcd. Di GKE di AWS, administrator lokal mengelola komponen bidang kontrol.

Di GKE di AWS, komponen bidang kontrol berjalan di AWS. Anda dapat melindungi GKE pada server API AWS menggunakan grup keamanan AWS dan ACL jaringan.

Semua komunikasi di GKE pada AWS dilakukan melalui saluran Transport Layer Security (TLS) yang diatur oleh certificate authority (CA) berikut:

  • CA etcd mengamankan komunikasi dari server API ke replika etcd dan juga traffic antara replika etcd. CA ini ditandatangani sendiri.
  • CA cluster pengguna mengamankan komunikasi antara server API dan semua klien Kubernetes API internal (kubelets, pengontrol, penjadwal). CA ini dienkripsi KMS.
  • CA layanan pengelolaan dienkripsi AWS KMS. Library ini dibuat saat Anda menjalankan anthos-gke init dan disimpan di ruang kerja Terraform Anda. Saat Anda menggunakan terraform apply untuk membuat layanan pengelolaan, kunci CA diteruskan sebagai data pengguna AWS EC2 dan didekripsi oleh AWS KMS saat cluster dimulai.

Untuk layanan pengelolaan, kunci bidang kontrol disimpan di bidang kontrol [node]{:.external}. Untuk cluster pengguna, kunci disimpan sebagai Secret Kubernetes di bidang kontrol layanan pengelolaan.

Autentikasi cluster di GKE di AWS ditangani oleh token pemilik sertifikat dan akun layanan. Sebagai administrator, Anda perlu melakukan autentikasi ke bidang kontrol menggunakan sertifikat administratif untuk layanan pengelolaan (yang digunakan untuk pembuatan binding peran awal, atau untuk tujuan darurat).

Rotasi sertifikat ditangani dengan cara berikut:

  • Untuk server API, bidang kontrol, dan node, GKE di AWS merotasi sertifikat TLS pada setiap upgrade.
  • Anda juga dapat Merotasi kredensial keamanan secara manual.

Keamanan node

GKE di AWS men-deploy workload Anda ke node pool instance AWS EC2. Bagian berikut menjelaskan cara menggunakan fitur keamanan level node di GKE di AWS.

Ubuntu

GKE di AWS menggunakan versi Ubuntu yang dioptimalkan sebagai sistem operasi yang akan digunakan untuk menjalankan bidang kontrol dan node Kubernetes. Ubuntu menyertakan serangkaian fitur keamanan modern, dan GKE di AWS menerapkan beberapa fitur peningkatan keamanan untuk cluster, yang meliputi:

  • Kumpulan paket yang dioptimalkan.
  • Kernel Linux yang disesuaikan dengan Google Cloud.
  • Akun pengguna terbatas dan login root dinonaktifkan.

Panduan keamanan tambahan tersedia untuk Ubuntu, seperti:

Upgrade node

Anda harus mengupgrade node secara rutin. Dari waktu ke waktu, masalah keamanan pada runtime container, Kubernetes sendiri, atau sistem operasi node mungkin mengharuskan Anda untuk segera mengupgrade node. Saat Anda mengupgrade cluster pengguna, software setiap node akan diupgrade ke versi terbaru. Selain itu, mengupgrade node akan merotasi kredensial enkripsi.

Mengamankan workload Anda

Dengan Kubernetes, pengguna dapat menyediakan, menskalakan, dan memperbarui beban kerja berbasis container dengan cepat. Bagian ini menjelaskan taktik yang dapat Anda gunakan untuk membatasi efek samping dari menjalankan container pada cluster dan layanan Google Cloud.

Membatasi hak istimewa proses container Pod

Membatasi hak istimewa pada proses dalam container penting untuk keamanan cluster Anda. Anda dapat menetapkan opsi terkait keamanan dengan Konteks Keamanan Pod dan container. Setelan ini memungkinkan Anda mengubah setelan keamanan proses seperti:

  • Pengguna dan grup yang menjalankan proses.
  • Kemampuan Linux yang tersedia.
  • Eskalasi akses.

GKE default pada sistem operasi node AWS, Ubuntu, menerapkan kebijakan keamanan AppArmor Docker default ke semua container yang dimulai oleh Kubernetes. Anda dapat melihat template profil di GitHub. Di antara hal lainnya, profil menolak kemampuan berikut untuk container:

  • Menulis ke file secara langsung dalam direktori ID proses (/proc/).
  • Menulis ke file yang tidak ada di /proc/.
  • Menulis ke file dalam /proc/sys selain /proc/sys/kernel/shm*.
  • Memasang sistem file.

Langkah selanjutnya