Keamanan

Halaman ini menjelaskan fitur keamanan yang disertakan dalam GKE di AWS, termasuk setiap lapisan infrastturnya, dan cara mengonfigurasi fitur keamanan agar sesuai dengan 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 kepada pengguna dan beban kerja. 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 atas cluster Anda. Untuk mengetahui informasi selengkapnya, lihat Tanggung jawab bersama cluster GKE.

Autentikasi dan otorisasi

Anda melakukan autentikasi ke cluster pengguna GKE di 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. Dengan RBAC, Anda dapat membuat kebijakan mendetail untuk menentukan operasi dan resource yang boleh diakses oleh pengguna dan akun layanan. Dengan RBAC, Anda dapat mengontrol akses untuk identitas tervalidasi yang diberikan.

Untuk lebih menyederhanakan dan menyederhanakan strategi autentikasi dan otorisasi Anda untuk Kubernetes Engine, GKE di AWS 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 opsi berikut:

Secret Kubernetes

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

Hashicorp Vault

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

Keamanan bidang kontrol

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

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

Semua komunikasi di GKE di 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 antar-replika etcd. CA ini ditandatangani sendiri.
  • CA cluster pengguna mengamankan komunikasi antara server API dan semua klien API Kubernetes internal (kubelet, pengontrol, scheduler). CA ini dienkripsi KMS.
  • CA layanan pengelolaan dienkripsi dengan AWS KMS. File 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 akan diteruskan sebagai data pengguna AWS EC2 dan didekripsi oleh AWS KMS saat cluster dimulai.

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

Autentikasi cluster di GKE di AWS ditangani oleh sertifikat dan token pemilik akun layanan. Sebagai administrator, Anda melakukan autentikasi ke bidang kontrol menggunakan sertifikat administratif ke layanan pengelolaan (yang Anda gunakan untuk pembuatan pengikatan 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 di 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 tingkat 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 mencakup serangkaian fitur keamanan modern yang lengkap, dan GKE di AWS menerapkan beberapa fitur yang meningkatkan keamanan untuk cluster, termasuk:

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

Panduan keamanan tambahan tersedia untuk Ubuntu, seperti:

Upgrade node

Anda harus mengupgrade node secara berkala. Dari waktu ke waktu, masalah keamanan dalam runtime container, Kubernetes itu sendiri, atau sistem operasi node mungkin mengharuskan Anda untuk mengupgrade node dengan lebih cepat. Saat Anda mengupgrade cluster pengguna, software setiap node akan diupgrade ke versi terbarunya. 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 di cluster dan Google Cloud layanan.

Membatasi hak istimewa proses container Pod

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

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

Sistem operasi node GKE on AWS default, Ubuntu, menerapkan kebijakan keamanan Docker AppArmor 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 di direktori ID proses (/proc/).
  • Menulis ke file yang tidak ada di /proc/.
  • Menulis ke file di /proc/sys selain /proc/sys/kernel/shm*.
  • Memasang sistem file.

Langkah berikutnya