Keamanan runtime - Amazon EKS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Keamanan runtime

Keamanan runtime memberikan perlindungan aktif untuk kontainer Anda saat sedang berjalan. Idenya adalah untuk mendeteksi and/or mencegah aktivitas jahat terjadi di dalam wadah. Hal ini dapat dicapai dengan sejumlah mekanisme dalam kernel Linux atau ekstensi kernel yang terintegrasi dengan Kubernetes, seperti kemampuan Linux, komputasi aman (seccomp), atau. AppArmor SELinux Ada juga opsi seperti Amazon GuardDuty dan alat pihak ketiga yang dapat membantu menetapkan garis dasar dan mendeteksi aktivitas anomali dengan konfigurasi mekanisme kernel Linux yang lebih sedikit secara manual.

penting

Kubernetes saat ini tidak menyediakan mekanisme asli untuk memuat seccomp, AppArmor, atau profil ke Nodes. SELinux Mereka harus dimuat secara manual atau diinstal ke Node ketika mereka di-bootstrap. Ini harus dilakukan sebelum mereferensikannya di Pod Anda karena scheduler tidak mengetahui node mana yang memiliki profil. Lihat di bawah ini bagaimana alat seperti Operator Profil Keamanan dapat membantu mengotomatiskan penyediaan profil ke node.

Konteks keamanan dan kontrol Kubernetes bawaan

Banyak mekanisme keamanan runtime Linux terintegrasi erat dengan Kubernetes dan dapat dikonfigurasi melalui konteks keamanan Kubernetes. Salah satu opsi tersebut adalah privileged bendera, yang secara false default dan jika diaktifkan pada dasarnya setara dengan root pada host. Hampir selalu tidak tepat untuk mengaktifkan mode istimewa dalam beban kerja produksi, tetapi ada lebih banyak kontrol yang dapat memberikan hak istimewa yang lebih terperinci ke wadah yang sesuai.

Kemampuan Linux

Kemampuan Linux memungkinkan Anda untuk memberikan kemampuan tertentu ke Pod atau wadah tanpa menyediakan semua kemampuan pengguna root. Contohnya termasukCAP_NET_ADMIN, yang memungkinkan konfigurasi antarmuka jaringan atau firewall, atauCAP_SYS_TIME, yang memungkinkan manipulasi jam sistem.

Seccomp

Dengan komputasi aman (seccomp) Anda dapat mencegah aplikasi kontainer membuat syscall tertentu ke kernel sistem operasi host yang mendasarinya. Sementara sistem operasi Linux memiliki beberapa ratus panggilan sistem, bagian terbesar dari mereka tidak diperlukan untuk menjalankan kontainer. Dengan membatasi syscall apa yang dapat dibuat oleh wadah, Anda dapat secara efektif mengurangi permukaan serangan aplikasi Anda.

Seccomp bekerja dengan mencegat syscalls dan hanya mengizinkan mereka yang telah diizinkan untuk melewatinya. Docker memiliki profil seccomp default yang cocok untuk sebagian besar beban kerja tujuan umum, dan runtime kontainer lainnya seperti containerd menyediakan default yang sebanding. Anda dapat mengonfigurasi container atau Pod untuk menggunakan profil seccomp default container runtime dengan menambahkan hal berikut ke securityContext bagian spesifikasi Pod:

securityContext: seccompProfile: type: RuntimeDefault

Pada 1.22 (dalam alpha, stable pada 1.27), di atas RuntimeDefault dapat digunakan untuk semua Pod pada Node menggunakan flag kubelet tunggal,. --seccomp-default Maka profil yang ditentukan hanya securityContext diperlukan untuk profil lain.

Anda juga dapat membuat profil Anda sendiri untuk hal-hal yang memerlukan hak istimewa tambahan. Ini bisa sangat membosankan untuk dilakukan secara manual, tetapi ada alat seperti Inspektor Gadget (juga direkomendasikan di bagian keamanan jaringan untuk menghasilkan kebijakan jaringan) dan Operator Profil Keamanan yang mendukung penggunaan alat seperti eBPF atau log untuk merekam persyaratan hak istimewa dasar sebagai profil seccomp. Security Profiles Operator selanjutnya memungkinkan otomatisasi penyebaran profil yang direkam ke node untuk digunakan oleh Pod dan container.

AppArmor dan SELinux

AppArmor dan SELinux dikenal sebagai kontrol akses wajib atau sistem MAC. Mereka mirip dalam konsep untuk seccomp tetapi dengan kemampuan yang berbeda APIs , memungkinkan kontrol akses untuk misalnya jalur sistem file tertentu atau port jaringan. Support untuk alat-alat ini tergantung pada distribusi Linux, dengan Debian/Ubuntu dukungan AppArmor dan dukungan RHEL/CentOS/Bottlerocket/Amazon Linux 2023. SELinux Lihat juga bagian keamanan infrastruktur untuk pembahasan lebih lanjut SELinux.

Keduanya AppArmor dan SELinux terintegrasi dengan Kubernetes, tetapi pada AppArmor profil Kubernetes 1.28 harus ditentukan melalui anotasi sementara SELinux label dapat diatur melalui bidang Opsi pada SELinux konteks keamanan secara langsung.

Seperti profil seccomp, Operator Profil Keamanan yang disebutkan di atas dapat membantu menyebarkan profil ke node di cluster. (Di masa depan, proyek ini juga bertujuan untuk menghasilkan profil untuk AppArmor dan SELinux seperti halnya untuk seccomp.)

Rekomendasi

Gunakan Amazon GuardDuty untuk memantau runtime dan mendeteksi ancaman ke lingkungan EKS Anda

Jika saat ini Anda tidak memiliki solusi untuk terus memantau runtime EKS dan menganalisis log audit EKS, dan memindai malware dan aktivitas mencurigakan lainnya, Amazon sangat merekomendasikan penggunaan Amazon GuardDuty untuk pelanggan yang menginginkan cara satu-klik yang sederhana, cepat, aman, terukur, dan hemat biaya untuk melindungi lingkungan AWS mereka. Amazon GuardDuty adalah layanan pemantauan keamanan yang menganalisis dan memproses sumber data dasar, seperti peristiwa CloudTrail manajemen AWS, log CloudTrail peristiwa AWS, log aliran VPC (dari instans Amazon EC2), log audit Kubernetes, dan log DNS. Ini juga termasuk pemantauan runtime EKS. Ini menggunakan umpan intelijen ancaman yang terus diperbarui, seperti daftar alamat IP dan domain berbahaya, dan pembelajaran mesin untuk mengidentifikasi aktivitas yang tidak terduga, berpotensi tidak sah, dan berbahaya dalam lingkungan AWS Anda. Hal ini dapat mencakup masalah seperti peningkatan hak istimewa, penggunaan kredensyal yang terbuka, atau komunikasi dengan alamat IP berbahaya, domain, keberadaan malware di instans Amazon EC2 dan beban kerja kontainer EKS, atau penemuan aktivitas API yang mencurigakan. GuardDuty memberi tahu Anda tentang status lingkungan AWS Anda dengan menghasilkan temuan keamanan yang dapat Anda lihat di GuardDuty konsol atau melalui Amazon EventBridge. GuardDuty juga memberikan dukungan bagi Anda untuk mengekspor temuan Anda ke bucket Amazon Simple Storage Service (S3), dan berintegrasi dengan layanan lain seperti AWS Security Hub dan Detective.

Tonton AWS Online Tech Talk ini “Deteksi ancaman yang ditingkatkan untuk Amazon EKS dengan Amazon GuardDuty - AWS Online Tech Talks” untuk melihat cara mengaktifkan fitur keamanan EKS tambahan ini step-by-step dalam hitungan menit.

Opsional: Gunakan solusi pihak ke-3 untuk pemantauan runtime

Membuat dan mengelola profil seccomp dan Apparmor bisa jadi sulit jika Anda tidak terbiasa dengan keamanan Linux. Jika Anda tidak punya waktu untuk menjadi mahir, pertimbangkan untuk menggunakan solusi komersial pihak ketiga. Banyak dari mereka telah bergerak melampaui profil statis seperti Apparmor dan seccomp dan telah mulai menggunakan pembelajaran mesin untuk memblokir atau memperingatkan aktivitas yang mencurigakan. Beberapa solusi ini dapat ditemukan di bawah di bagian alat. Opsi tambahan dapat ditemukan di AWS Marketplace for Container.

Pertimbangkan kemampuan add/dropping Linux sebelum menulis kebijakan seccomp

Kemampuan melibatkan berbagai pemeriksaan dalam fungsi kernel yang dapat dijangkau oleh syscalls. Jika pemeriksaan gagal, syscall biasanya mengembalikan kesalahan. Pemeriksaan dapat dilakukan tepat di awal syscall tertentu, atau lebih dalam di kernel di area yang mungkin dapat dijangkau melalui beberapa syscall yang berbeda (seperti menulis ke file istimewa tertentu). Seccomp, di sisi lain, adalah filter syscall yang diterapkan ke semua syscalls sebelum dijalankan. Sebuah proses dapat mengatur filter yang memungkinkan mereka untuk mencabut hak mereka untuk menjalankan syscalls tertentu, atau argumen khusus untuk syscall tertentu.

Sebelum menggunakan seccomp, pertimbangkan apakah kemampuan adding/removing Linux memberi Anda kontrol yang Anda butuhkan. Lihat Menyetel kemampuan untuk- kontainer untuk informasi lebih lanjut.

Lihat apakah Anda dapat mencapai tujuan Anda dengan menggunakan Kebijakan Keamanan Pod () PSPs

Kebijakan Keamanan Pod menawarkan banyak cara berbeda untuk meningkatkan postur keamanan Anda tanpa menimbulkan kerumitan yang tidak semestinya. Jelajahi opsi yang tersedia PSPs sebelum menjelajah ke dalam membangun profil seccomp dan Apparmor.

Awas

Pada Kubernetes 1.25, PSPs telah dihapus dan diganti dengan Pod Security Admission controller. Alternatif pihak ketiga yang ada termasuk OPA/Gatekeeper dan Kyverno. Kumpulan batasan Gatekeeper dan template kendala untuk menerapkan kebijakan yang biasa ditemukan di PSPs dapat ditarik dari repositori perpustakaan Gatekeeper pada. GitHub Dan banyak pengganti PSPs dapat ditemukan di pustaka kebijakan Kyverno termasuk koleksi lengkap Standar Keamanan Pod.

Alat dan Sumber Daya