Membangun Kubernetes? Sekarang Coba 5 Alat RBAC Ini untuk Mengaudit Izin
Diterbitkan: 2022-03-14Kubernetes RBAC adalah metode otorisasi berbasis peran yang efisien yang digunakan untuk menyediakan akses granular ke sumber daya di cluster Kubernetes.
Namun, jika tidak digunakan dengan benar, dapat dengan mudah menyebabkan bencana kepatuhan. Itu sebabnya kami membutuhkan alat RBAC untuk mengaudit dan menemukan izin berisiko di Kubernetes.
Dalam artikel ini, kita akan membahas apa itu Kubernetes RBAC, mengapa penting untuk mengaudit izin berisiko dan menemukan alat yang dapat membantu kita dalam mengaudit izin berisiko!
Apa itu RBAC?
Role-Based Access Control (RBAC) adalah mekanisme keamanan di mana setiap otorisasi akses didasarkan pada peran yang diberikan kepada pengguna. Dengan sistem ini, akses ke sumber daya cluster Kubernetes (namespace, pod, pekerjaan) dapat dibatasi untuk aplikasi atau pengguna.
Di Kubernetes, kebijakan RBAC dapat digunakan untuk mengelola hak akses pengguna sistem (Pengguna atau Grup) serta akun layanan (Akun Layanan).
Ada cara lain untuk mengotorisasi pengguna di Kubernetes seperti ABAC (Attribute-based access control), melalui Webhook atau Node Authorization, tetapi mekanisme otorisasi asli yang paling banyak digunakan dan tersedia dalam versi stabil adalah RBAC.
Praktis semua interaksi dengan sumber daya dilakukan melalui server API-nya, yang berarti bahwa, pada akhirnya, semuanya terbatas pada membuat permintaan HTTP ke server tersebut (komponen penting dari node master atau Control Panel ).
Kubernetes memiliki empat objek terkait RBAC yang dapat digabungkan untuk mengatur izin akses sumber daya cluster. Ini adalah Role, ClusterRole, RoleBinding, dan ClusterRoleBinding. Untuk bekerja dengan objek-objek ini, seperti semua objek Kubernetes, Kubernetes API harus digunakan.
Peran di Kubernetes
Di Kubernetes, ada dua jenis peran yang disebut Role dan ClusterRole. Perbedaan terbesar antara keduanya adalah bahwa Peran milik namespace konkret, sedangkan ClusterRole bersifat global untuk cluster. Jadi, dalam kasus ClusterRole, namanya harus unik karena termasuk dalam cluster. Dalam kasus Peran, dua ruang nama yang berbeda dapat memiliki Peran dengan nama yang sama.
Perbedaan lain yang perlu disebutkan adalah bahwa Role memungkinkan akses ke sumber daya yang berada dalam namespace yang sama, sedangkan ClusterRole, selain dapat memberikan akses ke sumber daya di namespace apa pun, juga dapat memberikan akses ke sumber daya di namespace yang sama seperti node. diantara yang lain.
Sekarang setelah kita mengetahui jenis-jenis peran, hal berikutnya adalah mengetahui kepada siapa kita dapat menetapkan peran tersebut. Dalam hal ini, kami memiliki Akun Pengguna, Akun Layanan, dan Grup. Akun pengguna adalah akun yang ditetapkan untuk pengguna tertentu, sedangkan akun layanan digunakan oleh proses. Misalnya, bayangkan aplikasi kita perlu mengakses sumber daya dari cluster secara terprogram, untuk ini kita akan menggunakan akun layanan.
Terakhir, kita membutuhkan “lem” yang mengikat peran ke akun (pengguna atau layanan) atau grup. Ada dua sumber daya di Kubernetes untuk ini: RoleBinding dan ClusterRoleBinding. RoleBinding dapat mereferensikan peran yang ada di namespace yang sama, sedangkan ClusterRoleBinding bisa mereferensikan Role apa pun di namespace mana pun dan menetapkan izin secara global.
Sebagai catatan, izin hanya mengizinkan akses ke sumber daya, karena "secara default, semuanya ditolak" dan dimungkinkan untuk menetapkan beberapa peran ke pengguna yang sama
Satu-satunya prasyarat untuk menggunakan RBAC adalah mengaktifkannya di cluster kami menggunakan opsi “ –authorization-mode=RBAC
”. Kita bisa mengeceknya dengan menggunakan perintah:
kubectl api-versions
Apa itu izin RBAC yang berisiko dan bagaimana cara memperbaikinya?
Setiap izin yang mengizinkan atau dapat mengizinkan akses tidak sah ke sumber daya pod dianggap izin berisiko. Misalnya, jika pengguna memiliki izin edit, mereka dapat mengedit Peran mereka sendiri dan dapat mengakses sumber daya yang tidak boleh mereka akses. Hal ini dapat mengakibatkan masalah kepatuhan. Demikian pula, jika izin lama dibiarkan tidak dicentang maka beberapa pengguna dapat mengakses sumber daya yang tidak lagi mereka perlukan.

Sulit dan memakan waktu untuk menemukan izin berisiko seperti itu secara manual ketika Anda memiliki banyak Peran. Untuk melakukan proses ini, ada sejumlah alat audit izin RBAC yang membantu memindai seluruh Cluster Anda untuk menemukan izin berisiko apa pun. Penting juga untuk dipahami bahwa efektivitas RBAC bergantung pada kebijakan RBAC terkini yang pada gilirannya memerlukan audit izin secara teratur.
Berikut adalah beberapa alat RBAC terbaik untuk mengaudit izin berdasarkan bahasa dan antarmuka pengguna yang berbeda.
KubiScan
KubiScan adalah alat RBAC berbasis Python untuk memindai izin berisiko di cluster Kubernetes. Alat harus dijalankan di dalam node Master dan kemudian dapat dijalankan langsung dari terminal untuk memberikan daftar izin berisiko. Kubiscan dapat digunakan untuk menemukan Roles, ClusterRoles, RoleBindings, ClusterBindings, Subyek, Pod, dan bahkan Container yang berisiko.
Krane
Krane by Appvia adalah alat analisis dan visualisasi statis Kubernetes RBAC berbasis Ruby. Ini dapat dijalankan baik secara lokal sebagai CLI atau dalam pipa CI/CD. Selain itu, ini juga dapat berfungsi sebagai layanan mandiri dalam wadah Kubernetes. Krane memberikan fitur untuk menganalisis izin RBAC melalui tampilan jaringan pohon dan grafik segi. Itu juga memberikan peringatan untuk setiap izin berisiko melalui integrasi Slack-nya.

Alat RBAC
Alat RBAC oleh InsightCloudSec adalah alat audit izin mandiri yang dibuat dengan Go. Itu tidak hanya memungkinkan Anda untuk memindai dan menyorot izin RBAC yang berisiko tetapi juga memungkinkan Anda menghasilkan kebijakan RBAC dari audit izin melalui fitur Auditgen-nya. Alat RBAC juga menawarkan fitur visualisasi RBAC.
angin kencang
Fairwinds Insight adalah alat mandiri yang menyediakan sejumlah fitur keamanan dan kepatuhan Kubernetes. Fitur penegakan kebijakannya memungkinkan Anda untuk mengaudit izin RBAC dan memindainya terhadap kebijakan standar dan yang disesuaikan. Fairwinds menawarkan demo sesuai permintaan.

Manajer Izin
Manajer Izin oleh Sighup adalah alat manajemen izin Kubernetes berbasis Javascript. Ini menawarkan cara mudah dan inisiatif untuk mengelola izin pengguna dalam cluster Kubernetes. Manajer Izin juga menawarkan alat edisi perusahaan yang memungkinkan Anda melakukan audit izin RBAC dasar.
Kesimpulan
Kubernetes RBAC adalah cara yang efisien untuk mengelola akses ke sumber daya di cluster Kubernetes. Namun, jika tidak diterapkan dengan benar dapat menyebabkan masalah keamanan dan kepatuhan. Namun, ini dapat dihindari dengan terus mengaudit izin melalui alat audit RBAC.
Anda mungkin juga tertarik dengan Praktik Terbaik Kubernetes.