Enkripsi data dan manajemen kunci secara efisien melindungi data sensitif selama penyimpanan, transmisi, dan pemrosesan. Selain itu, pemantauan waktu nyata, pembaruan algoritma enkripsi, serta kebijakan manajemen kunci membantu Anda beradaptasi dengan ancaman keamanan siber yang terus berkembang dan memenuhi tantangan teknologi.
Enkripsi data
Saran untuk enkripsi disk
Aktifkan Enkripsi Disk
Gunakan enkripsi statis sebagai praktik keamanan terbaik. Untuk informasi lebih lanjut, lihat Enkripsi Volume Disk.
Rotasikan CMK Secara Berkala
Anda dapat merotasikan kunci secara berkala dan mengonfigurasi versi kunci untuk meningkatkan keamanan Customer Master Key (CMK). Untuk informasi lebih lanjut, lihat Rotasi Kunci Otomatis.
Gunakan kunci yang disimpan di KMS untuk mengenkripsi volume disk
Cluster Container Service for Kubernetes (ACK) cocok untuk skenario yang memerlukan keamanan tinggi atau memiliki persyaratan kepatuhan. ACK memungkinkan Anda menggunakan enkripsi penyimpanan untuk memastikan privasi dan otonomi data yang disimpan di Instance ECS tanpa perlu mengembangkan dan memelihara sistem manajemen kunci tingkat bawah. Untuk informasi lebih lanjut, lihat Enkripsi Volume Disk.
Contoh dalam bagian ini menjelaskan cara menggunakan kunci yang disimpan di Key Management Service (KMS) untuk mengenkripsi volume disk saat membuat volume tersebut.
Buat StorageClass.
Buat file bernama sc-kms.yaml dan salin konten berikut ke dalam file:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-disk provisioner: diskplugin.csi.alibabacloud.com parameters: fsType: ext4 type: cloud_ssd encrypted: "true" kmsKeyId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx reclaimPolicy: DeleteJalankan perintah berikut untuk membuat StorageClass:
kubectl create -f sc-kms.yaml
Buat Klaim Volume Persisten (PVC).
Buat file bernama sc-pvc.yaml dan tambahkan konten berikut ke dalam file:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: disk-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: csi-diskJalankan perintah berikut untuk membuat PVC:
kubectl create -f sc-pvc.yaml
Manajemen kunci
Kubernetes memungkinkan pengembang aplikasi menyimpan informasi sensitif seperti kata sandi basis data, sertifikat aplikasi, dan token dalam Secrets yang dapat digunakan oleh pod. Daftar poin berikut menggambarkan istilah terkait Secrets:
Secrets dibatasi pada namespace. Anda dapat menggunakan Secrets bersama dengan kontrol akses berbasis peran Kubernetes (RBAC) untuk mengisolasi pembacaan dan penulisan berdasarkan namespace.
Anda dapat memasang Secrets sebagai file atau variabel lingkungan ke kontainer dalam pod.
Informasi sensitif dalam Secrets disimpan dalam sistem file sementara (tmpfs) dari node.
Server API menyimpan Secrets sebagai teks biasa yang dikodekan Base64 di etcd dari cluster Kubernetes.
Ukuran Secret kurang dari 1 MB.
Sebagai wadah yang menyimpan informasi sensitif aplikasi di Kubernetes, Secrets tidak menjamin keamanan informasi sensitif tersebut. Pengembang dan insinyur keamanan mungkin menghadapi masalah berikut saat menggunakan Secrets:
Pengembang dan insinyur keamanan perlu memutuskan solusi keamanan untuk mengelola informasi kunci dan menyimpan kunci sebelum aplikasi diterapkan.
Bagaimana pengembang dan insinyur keamanan menjaga pembacaan, penulisan, dan transmisi kunci tetap aman tanpa mengorbankan pemuatan dan penggunaan kunci?
Solusi keamanan apa yang ditawarkan penyedia layanan cloud untuk memastikan keamanan kunci?
Pendekatan keamanan apa yang harus saya pilih untuk mengelola dan melindungi kunci di Kubernetes?
Untuk menyelesaikan masalah di atas, kami merekomendasikan agar Anda memilih solusi keamanan manajemen kunci yang disediakan oleh penyedia layanan cloud dan praktik terbaik keamanan manajemen kunci yang ditujukan untuk pengembang.
Solusi keamanan
Berdasarkan model tanggung jawab bersama untuk keamanan cloud, penyedia layanan cloud bertanggung jawab untuk memastikan keamanan konfigurasi dan informasi sensitif di sisi bidang kontrol serta menyediakan solusi keamanan manajemen kunci. Ini membantu Anda meningkatkan keamanan kunci. Solusi keamanan berikut direkomendasikan:
Gunakan Layanan Manajemen Kunci yang Disediakan oleh Penyedia Layanan Cloud
Penyedia layanan cloud biasanya menyediakan layanan manajemen kunci. Misalnya, Alibaba Cloud KMS menyediakan layanan manajemen siklus hidup kunci profesional dan layanan enkripsi/deskripsi data untuk membantu Anda menyederhanakan prosedur integrasi sistem aplikasi. Untuk informasi lebih lanjut tentang KMS, lihat Apa itu KMS?
Pelanggaran data dapat terjadi selama pengkodean keras informasi sensitif di seluruh pipa pengembangan dan penerapan sistem aplikasi. Untuk menghindari pengkodean keras, Anda dapat menggunakan layanan manajemen kunci di cloud untuk membaca dan menulis kunci di seluruh pipa pengembangan, pengujian, dan pembuatan aplikasi. Layanan manajemen kunci juga mendukung rotasi kunci otomatis, yang mengurangi risiko pelanggaran data sensitif dan membantu perusahaan memenuhi persyaratan kepatuhan keamanan.
Gunakan Driver CSI Secret Store
Dalam banyak kasus, aplikasi perlu mengambil kunci dari jalur sistem file yang ditentukan atau variabel lingkungan. Driver CSI Secret Store membantu Anda mengimpor kunci yang disimpan dalam layanan manajemen kunci ke jalur sistem file yang ditentukan dari sebuah kontainer.
Driver CSI Secret Store secrets-store-csi-driver dikembangkan oleh komunitas Kubernetes berdasarkan standar CSI. secrets-store-csi-driver memungkinkan Anda memasang kunci yang disimpan dalam layanan manajemen kunci eksternal ke pod menggunakan volume. Setelah Anda memasang kunci menggunakan volume, kunci tersebut dapat digunakan dalam kontainer melalui sistem file. Anda tidak perlu membuat Secret di Kubernetes. Ini menghindari penyimpanan Secret teks biasa di etcd atau memelihara sejumlah besar Secret di cluster Kubernetes besar. Selain itu, aplikasi dapat mengambil kunci dari jalur file asli alih-alih memanggil layanan manajemen kunci. Ini menghindari biaya tambahan.
Dengan bantuan secrets-store-csi-driver, penyedia layanan cloud dapat berinteraksi dengan berbagai layanan manajemen kunci di backend. Misalnya, Anda dapat menerapkan Alibaba Cloud secrets-store-csi-driver-provider-alibabacloud di cluster Anda untuk menyinkronkan kunci yang disimpan di KMS sebagai file atau Kubernetes Secrets ke kontainer. Selain itu, perubahan dalam kunci dapat disinkronkan secara otomatis dari KMS ke kontainer secara real-time untuk memastikan validitas kunci. Untuk menyelesaikan masalah The Last Key, Anda dapat menggunakan solusi RAM Roles for Service Accounts (RRSA) karena secrets-store-csi-driver memerlukan izin untuk mengakses kunci di KMS. Solusi RRSA memungkinkan Anda memberi otorisasi akun layanan driver CSI Secret Store untuk mengakses kunci di KMS alih-alih memberikan izin kepada pod.
Aktifkan Enkripsi etcd
Etcd adalah sistem penyimpanan default yang digunakan oleh cluster Kubernetes. Secrets disimpan sebagai teks biasa yang dikodekan Base64 di etcd. Ini menimbulkan risiko keamanan. Di cluster yang dikelola yang disediakan oleh penyedia layanan cloud, etcd dipelihara oleh penyedia layanan cloud. Karena prinsip percaya nol dan persyaratan kepatuhan keamanan dalam berbagai skenario, kami merekomendasikan agar Anda menggunakan enkripsi etcd yang disediakan oleh Kubernetes. Kemudian, Anda dapat menggunakan enkripsi amplop untuk secara otomatis mengenkripsi kunci saat menyinkronkannya dari KMS ke Secrets dan mendekripsi kunci saat mengambilnya dari Secrets. Enkripsi etcd dapat digunakan bersama dengan rotasi kunci otomatis untuk lebih meningkatkan keamanan data.
Gunakan Kontainer Rahasia
Dalam skenario yang memerlukan peningkatan keamanan data, seperti pembayaran keuangan, autentikasi privasi, dan komputasi data terkait perlindungan kekayaan intelektual, Anda perlu menjaga pembacaan, penulisan, dan transmisi informasi sensitif tetap rahasia, dan lebih melindungi komputasi dan penyimpanan dalam memori dari informasi sensitif tersebut di cloud. Dalam skenario di atas, kami merekomendasikan agar Anda menggunakan cluster ACK untuk komputasi rahasia berbasis Lingkungan Eksekusi Tepercaya (TEE). ACK untuk komputasi rahasia berbasis TEE menyediakan lingkungan eksekusi tepercaya, terenkripsi berdasarkan teknologi enkripsi perangkat keras tingkat bawah. Ini memastikan integritas informasi sensitif yang digunakan di seluruh potongan kode di cloud dan menjamin perlindungan dan kerahasiaan data sepanjang siklus hidupnya. Selain itu, kunci yang digunakan oleh sistem aplikasi dapat disimpan di lingkungan tepercaya, terisolasi yang disebut enklaf untuk mengurangi transmisi kunci. Enklaf mirip dengan modul keamanan perangkat keras (HSM) dari KMS.
Praktik terbaik keamanan
Berdasarkan solusi keamanan manajemen kunci yang disediakan oleh penyedia layanan cloud, pengembang dan insinyur O&M perlu menjamin keamanan kunci di pihak mereka. Bagian berikut menggambarkan praktik terbaik keamanan manajemen kunci yang direkomendasikan di sisi bisnis.
RBAC
Secret adalah model dasar Kubernetes. RBAC pada Secrets adalah fundamental namun esensial untuk keamanan data. Anda perlu mengikuti prinsip hak istimewa minimal selama pengembangan dan pemeliharaan cluster sehari-hari untuk menghindari penerbitan kredensial yang memberikan izin baca dan tulis pada Secrets global. Anda juga perlu mencabut kredensial cluster yang mungkin terungkap.
Penguatan Keamanan Pod
Eskalasi kontainer adalah serangan umum yang menargetkan cluster Kubernetes. Untuk penyerang yang telah melarikan diri dari kontainer ke host bawah, mereka dapat dengan mudah memperoleh data teks biasa yang disimpan dalam Secrets di node, dan kemudian menaikkan hak istimewa mereka untuk mengakses seluruh cluster dan mencuri data sensitif dalam cluster.
Kubernetes menyediakan beberapa konfigurasi keamanan untuk membantu pengembang memperkuat keamanan kontainer. Pengembang perlu meminimalkan penerimaan pod dengan kemampuan berdasarkan kebutuhan bisnis untuk menghindari penggunaan konfigurasi istimewa, jaringan host bersama, atau sistem file bersama. Pengembang dapat menggunakan kebijakan keamanan untuk menolak penugasan hak istimewa yang tidak sesuai dengan kebijakan keamanan selama penyebaran aplikasi. Selain itu, kebijakan jaringan dapat digunakan untuk mengatur akses timur-barat di antara pod dan lebih mengurangi risiko serangan pergerakan lateral.
Penguatan Keamanan Node
Keamanan infrastruktur cluster adalah fondasi keamanan aplikasi. Anda perlu memilih jaringan pribadi jika memungkinkan dan menambahkan aturan daftar kontrol akses (ACL) ke grup keamanan untuk mengontrol lalu lintas masuk dan keluar. Untuk memastikan keamanan node cluster, kami merekomendasikan agar Anda menetapkan standar kepatuhan keamanan berdasarkan Skema Perlindungan Multi-Tingkat (MLPS) atau Penguatan Keamanan Alibaba Cloud Linux. Ini meningkatkan keamanan infrastruktur dalam hal verifikasi identitas, kontrol akses, audit keamanan, dan pencegahan intrusi dan mengurangi kemungkinan pelanggaran data sensitif di sisi host. Untuk informasi lebih lanjut tentang MPLS Security Hardening, lihat Penguatan keamanan ACK berdasarkan MLPS.
Konfigurasi komponen dalam cluster Kubernetes memainkan peran penting dalam keamanan aplikasi. Pemeriksaan dasar dapat membantu Anda mengidentifikasi konfigurasi berisiko tinggi dan menambal kerentanan pada kesempatan pertama.
Penguatan Keamanan Rantai Pasokan
Kunci diambil dan digunakan sepanjang siklus hidup artefak aplikasi. Oleh karena itu, perusahaan harus meningkatkan kesadaran mereka tentang keamanan kunci dan lebih mengatur penggunaan kunci. Pengkodean keras informasi sensitif harus dilarang dalam template aplikasi, repositori kode, dan file konfigurasi. Layanan manajemen kunci diperlukan untuk mengelola kunci secara terpusat di seluruh rantai pasokan artefak. Selain itu, tim manajemen keamanan internal dan tim O&M perusahaan perlu mengembangkan mekanisme pemeriksaan keamanan otomatis untuk mencegah pelanggaran data di setiap komponen rantai pasokan.
Audit dan Pemantauan
Dalam sistem aplikasi perusahaan, semua operasi terkait pembacaan, penulisan, penggunaan, dan manajemen siklus hidup kunci harus diaudit dan dicatat untuk memastikan bahwa operasi pada data sensitif dapat dilacak. Selain itu, mekanisme pemantauan waktu proses diperlukan, seperti aturan peringatan untuk operasi baca dan tulis mencurigakan pada data sensitif dan aturan peringatan untuk pelanggaran pasangan AccessKey akun Alibaba Cloud. Dengan cara ini, log dan peringatan dapat dihasilkan untuk membantu insinyur O&M dengan cepat menangani pelanggaran kunci, menilai dampak, dan meminimalkan kerugian finansial.
Gunakan Token Sementara, Rotasikan Kunci Secara Berkala, atau Konfigurasikan Rotasi Kunci Otomatis
Jangan gunakan kunci statis seperti pasangan AccessKey dalam sistem aplikasi. Kami merekomendasikan agar Anda menggunakan token sementara. Ketika penyerang melanggar token sementara, penyerang hanya dapat mengeksploitasi token tersebut dalam waktu yang terbatas. Ini meminimalkan peluang penyerang untuk memperluas serangan mereka dan memberikan kesempatan bagi insinyur O&M sistem untuk menambal kerentanan sistem. Pekerjaan penambalan kerentanan akan lebih rumit jika kunci jangka panjang terungkap. Kami merekomendasikan agar Anda merotasikan kunci secara berkala atau mengaktifkan fitur rotasi kunci otomatis saat mengelola kunci yang disimpan di KMS untuk meningkatkan keamanan aplikasi.
Gunakan Enkripsi Amplop untuk Melindungi Kunci Terakhir
Berbeda dengan langsung mengenkripsi teks biasa menggunakan kunci yang disimpan dalam layanan manajemen kunci di cloud, enkripsi amplop memungkinkan Anda menggunakan kunci terpisah dan kemudian melewati kunci terenkripsi melalui amplop. Dengan bantuan enkripsi amplop, data sensitif dapat dienkripsi dan didekripsi secara offline di sisi bisnis. Ini menghindari pengunggahan kunci Anda ke cloud dan menyelesaikan masalah kepercayaan yang timbul dari komputasi cloud. Dalam skenario komputasi offline di mana sejumlah besar data perlu dienkripsi dan didekripsi, enkripsi amplop juga membantu menghemat pengeluaran TI pada transmisi data ke cloud dan komputasi cloud, serta meningkatkan kinerja keseluruhan. Untuk informasi lebih lanjut tentang enkripsi amplop, lihat Gunakan Enkripsi Amplop untuk Mengenkripsi dan Mendekripsi Data Lokal.
The Last Key adalah masalah umum dalam skenario enkripsi dan dekripsi berbasis layanan manajemen kunci. Enkripsi amplop mengharuskan Anda menyimpan Key Encryption Key (KEK) di cloud untuk mengenkripsi dan mendekripsi Content Encryption Key (CEK). Untuk melindungi KEK berdasarkan hak istimewa minimal dalam sebagian besar skenario, Anda dapat menggunakan layanan kontrol akses seperti Alibaba Cloud Resource Access Management (RAM). Di sisi aplikasi, Anda perlu membatasi akses ke kredensial RAM yang digunakan untuk mengambil KEK dari cloud. Anda mungkin juga perlu menggunakan token sementara yang dirotasi secara otomatis untuk melindungi kredensial RAM. Kami merekomendasikan agar Anda menggunakan mekanisme isolasi yang mirip dengan RRSA untuk membatasi aplikasi dari mengakses kredensial RAM. Untuk informasi lebih lanjut, lihat RRSA.