Keamanan

Halaman ini menjelaskan fitur keamanan yang disertakan dalam Google Distributed Cloud, termasuk setiap lapisan infrastrukturnya, dan cara mengonfigurasi fitur keamanan ini agar sesuai dengan kebutuhan Anda.

Ringkasan

Google Distributed Cloud menawarkan sejumlah fitur untuk membantu mengamankan beban kerja 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 workload Anda. Anda mungkin perlu melakukan beberapa penyesuaian untuk mendapatkan tingkat fleksibilitas dan keamanan yang tepat.

Autentikasi dan Otorisasi

Anda melakukan autentikasi ke cluster Google Distributed Cloud menggunakan OpenID Connect (OIDC) atau token Akun Layanan Kubernetes melalui Cloud Console.

Untuk mengonfigurasi akses yang lebih terperinci ke resource Kubernetes di tingkat cluster atau dalam namespace Kubernetes, gunakan Role-Based Access Control (RBAC) Kubernetes. RBAC memungkinkan Anda membuat kebijakan mendetail yang menentukan operasi dan resource mana 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 Anda untuk Kubernetes Engine, Google Distributed Cloud menonaktifkan Kontrol Akses Berbasis Atribut (ABAC) lama.

Keamanan bidang kontrol

Komponen bidang kontrol meliputi server Kubernetes API, penjadwal, pengontrol, dan database dll. tempat konfigurasi Kubernetes Anda dipertahankan. Sedangkan di Kubernetes Engine, komponen bidang kontrol Kubernetes dikelola dan dipelihara oleh Google, administrator lokal mengelola komponen bidang kontrol di Google Distributed Cloud.

Di Google Distributed Cloud, komponen bidang kontrol berjalan dalam jaringan perusahaan Anda. Anda dapat melindungi server API Google Distributed Cloud menggunakan firewall dan kebijakan jaringan perusahaan yang sudah ada. Anda juga dapat menetapkan alamat IP pribadi ke server API dan membatasi akses ke alamat pribadi.

Semua komunikasi di Google Distributed Cloud dilakukan melalui saluran TLS, yang diatur oleh tiga certificate authority (CA): dll., cluster, dan org:

  • CA etcd mengamankan komunikasi dari server API ke replika etcd dan juga traffic antara replika etcd. CA ini ditandatangani sendiri.
  • CA cluster mengamankan komunikasi antara server API dan semua klien Kubernetes API internal (kubelets, pengontrol, penjadwal). CA ini ditandatangani sendiri.
  • CA org adalah CA eksternal yang digunakan untuk menyajikan Kubernetes API kepada pengguna eksternal. Anda mengelola CA ini.

Untuk bidang kontrol admin, kunci disimpan di node bidang kontrol. Untuk cluster pengguna, kunci disimpan sebagai Secret Kubernetes di bidang kontrol admin. Server API dikonfigurasi dengan sertifikat yang disediakan pengguna yang ditandatangani oleh CA organisasi. Server API menggunakan Server Name Indication (SNI) untuk menentukan apakah akan menggunakan kunci yang ditandatangani oleh CA cluster atau kunci yang ditandatangani oleh CA organisasi.

Autentikasi cluster di Google Distributed Cloud ditangani oleh sertifikat dan token pemilik akun layanan. Sebagai administrator, Anda melakukan autentikasi ke bidang kontrol menggunakan OIDC, atau dengan sertifikat administratif (yang Anda gunakan untuk pembuatan binding peran awal, atau untuk tujuan darurat).

Rotasi sertifikat ditangani dengan cara berikut:

  • Untuk server API, bidang kontrol, dan node, sertifikat dibuat atau diputar pada setiap upgrade.
  • CA dapat dirotasi jarang atau sesuai permintaan.

Keamanan node

Google Distributed Cloud men-deploy workload Anda di instance VMware, yang terlampir ke cluster Anda sebagai node. Bagian berikut menunjukkan cara memanfaatkan fitur keamanan tingkat node yang tersedia untuk Anda di Google Distributed Cloud.

Ubuntu

Google Distributed Cloud menggunakan versi Ubuntu yang dioptimalkan sebagai sistem operasi untuk menjalankan bidang kontrol dan node Kubernetes. Ubuntu mencakup rangkaian lengkap fitur keamanan modern, dan Google Distributed Cloud mengimplementasikan sejumlah fitur peningkat keamanan untuk cluster, termasuk:

  • Gambar telah dikonfigurasi sebelumnya untuk memenuhi standar PCI DSS, NIST Baseline High, dan DoD Cloud Computing SRG Impact Level 2.
  • Kumpulan package yang dioptimalkan.
  • Kernel Linux yang disesuaikan Google Cloud.
  • Update keamanan OS otomatis opsional.
  • 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 dalam runtime container, Kubernetes itu sendiri, atau sistem operasi node mungkin mengharuskan Anda untuk mengupgrade node dengan lebih mendesak. Saat Anda mengupgrade cluster, software setiap node akan diupgrade ke versi terbarunya.

Mengamankan workload Anda

Dengan Kubernetes, pengguna dapat menyediakan, menskalakan, dan memperbarui beban kerja berbasis container dengan cepat. Bagian ini menjelaskan taktik yang dapat digunakan oleh administrator dan pengguna untuk membatasi kemampuan container yang sedang berjalan guna memengaruhi container lain di cluster, host tempat container tersebut dijalankan, dan layanan Google Cloud yang diaktifkan di project mereka.

Membatasi hak istimewa proses container Pod

Membatasi hak istimewa pada proses dalam container sangat penting untuk keamanan cluster Anda secara keseluruhan. Kubernetes Engine dapat Anda gunakan untuk menetapkan opsi terkait keamanan melalui Security Context di Pod dan container. Setelan ini memungkinkan Anda mengubah setelan keamanan proses, seperti:

  • Pengguna dan grup yang akan dijalankan sebagai.
  • Kemampuan Linux yang tersedia.
  • Eskalasi hak istimewa.

Sistem operasi node Google Distributed Cloud default, Ubuntu, menerapkan kebijakan keamanan Docker AppArmor default ke semua container yang dimulai oleh Kubernetes. Anda dapat melihat template profil di GitHub. Antara lain, profil tersebut menolak kemampuan berikut untuk container:

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

Logging audit

Logging Audit Kubernetes menyediakan cara bagi administrator untuk menyimpan, menjalankan kueri, memproses, dan memberikan pemberitahuan terkait peristiwa yang terjadi di lingkungan Google Distributed Cloud Anda. Administrator dapat menggunakan informasi yang dicatat ke dalam log untuk melakukan analisis forensik, pemberitahuan real-time, atau untuk membuat katalog bagaimana fleet cluster Kubernetes Engine digunakan dan oleh siapa.

Secara default, Google Distributed Cloud mencatat aktivitas admin. Secara opsional, Anda juga dapat membuat log peristiwa akses data, bergantung pada jenis operasi yang ingin diperiksa.

Agen Connect hanya berkomunikasi dengan server API lokal yang berjalan secara lokal, dan setiap cluster harus memiliki kumpulan log auditnya sendiri. Semua tindakan yang dilakukan pengguna dari UI melalui Connect akan dicatat dalam log oleh cluster tersebut.

Enkripsi

Jika cluster dan workload Cloud Terdistribusi Google Anda terhubung dengan aman ke layanan Google Cloud melalui Cloud VPN, Anda dapat menggunakan Cloud Key Management Service (Cloud KMS) untuk pengelolaan kunci. Cloud KMS adalah key management service yang dihosting di cloud dan dapat digunakan untuk mengelola kunci kriptografis untuk layanan Anda. Anda dapat membuat, menggunakan, merotasi, dan menghancurkan kunci kriptografis AES256, RSA 2048, RSA 3072, RSA 4096, EC P256, dan EC P384. Cloud KMS terintegrasi dengan Identity and Access Management (IAM) dan Cloud Audit Logging sehingga Anda dapat mengelola izin pada setiap kunci dan memantau penggunaannya. Gunakan Cloud KMS untuk melindungi Secret dan data sensitif lainnya yang perlu Anda simpan. Jika tidak, Anda dapat memilih untuk menggunakan salah satu alternatif berikut:

  • Secret Kubernetes
  • Hashicorp Vault
  • jaringan Thales Luna HSM
  • Modul Keamanan Hardware (HSM) Google Cloud

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 ConfigMaps teks biasa atau dalam spesifikasi Pod. Penggunaan Secret memberi Anda kontrol atas cara data sensitif digunakan, dan mengurangi risiko pengungkapan data kepada pengguna yang tidak sah.

Hashicorp Vault

Modul Keamanan Hardware