Memahami Security Context Constraints di OpenShift: Panduan Lengkap

Memahami Security Context Constraints (SCC) di OpenShift

Platform OpenShift menghadirkan lapisan keamanan yang lebih ketat secara default dibandingkan Kubernetes murni. Salah satu mekanisme utama yang memastikan keamanan ini adalah melalui penggunaan Security Context Constraints (SCC). SCC adalah objek API OpenShift yang mengatur kondisi dan privileges apa saja yang diizinkan untuk dijalankan oleh sebuah pod. SCC bertindak sebagai gerbang keamanan yang memvalidasi permintaan pembuatan pod, memastikan bahwa pod tersebut tidak meminta privileges yang berpotensi membahayakan cluster atau melanggar kebijakan keamanan.

Kontrol Keamanan Utama dalam SCC

SCC memiliki kemampuan untuk mengontrol berbagai aspek keamanan untuk setiap pod. Beberapa kontrol penting yang dapat diatur oleh SCC meliputi:

  • Akses ke Host Network, Host PID, dan Host IPC.
  • Kemampuan untuk menjalankan privileged containers.
  • Penggunaan capabilities Linux tambahan atau pembatasan capabilities.
  • Akses ke volume tertentu, termasuk volume yang peka terhadap keamanan seperti hostPath.
  • Pengaturan SELinux context dan seccomp profiles.
  • Definisi user ID (UID) dan group ID (GID) yang diizinkan untuk proses dalam container (runAsUser, fsGroup, supplementalGroups).
  • Pembatasan atau izin penggunaan HostPort.
  • Status readOnlyRootFilesystem.

Jenis SCC Bawaan di OpenShift

OpenShift menyediakan beberapa SCC bawaan yang mencakup berbagai tingkat keamanan. Memahami jenis-jenis ini sangat penting untuk mengelola kebijakan keamanan:

  • restricted: Ini adalah SCC yang paling ketat dan merupakan default untuk sebagian besar pengguna non-administratif. SCC ini melarang akses ke host namespaces, mencegah privileges, dan biasanya memerlukan user ID yang ditentukan (non-root).
  • nonroot: Memastikan bahwa pod berjalan sebagai user ID non-root.
  • anyuid: Mengizinkan pod untuk berjalan dengan user ID dan group ID apa pun, termasuk root, tetapi tetap membatasi akses host lainnya.
  • hostaccess: Memberikan akses ke host namespaces (network, PID, IPC) serta volume tipe hostPath dan privileged containers. Ini sangat tidak disarankan kecuali benar-benar diperlukan.
  • privileged: SCC yang paling longgar. Mirip dengan perilaku default Kubernetes, ini mengizinkan pod untuk memiliki semua privileges yang tersedia, termasuk akses penuh ke sumber daya host. Hanya boleh diberikan kepada pengguna atau ServiceAccount tepercaya untuk tugas-tugas administratif.
BACA JUGA:  Para CISO Diminta Segera Bereskan Risiko API Sebelum Diwajibkan Regulasi

Bagaimana SCC Diterapkan dan Dievaluasi

SCC tidak secara otomatis diterapkan pada pod mana pun. Penerapannya bergantung pada izin pengguna atau ServiceAccount yang membuat pod tersebut. Administrator cluster secara eksplisit memberikan izin kepada pengguna, grup, atau ServiceAccount untuk menggunakan SCC tertentu.

Saat sebuah pod dibuat, OpenShift akan mengevaluasi daftar SCC yang diizinkan untuk pengguna atau ServiceAccount yang membuat pod. OpenShift kemudian mencari SCC paling ketat yang valid untuk pod tersebut (berdasarkan konfigurasi keamanan pod dan aturan SCC) dan diizinkan untuk pengguna atau ServiceAccount yang relevan. Jika tidak ada SCC yang memenuhi kriteria ini, pembuatan pod akan ditolak. Proses evaluasi ini biasanya mengikuti urutan prioritas SCC yang ditentukan.

Pengelolaan dan Pemecahan Masalah SCC

Administrator dapat mengelola SCC menggunakan command-line interface (CLI) oc. Perintah seperti oc get scc, oc describe scc <nama-scc>, oc adm policy add-scc-to-user, oc adm policy add-scc-to-group, dan oc adm policy add-scc-to-serviceaccount adalah alat penting untuk melihat, memahami, dan memberikan izin SCC.

Jika sebuah pod gagal diluncurkan karena alasan keamanan, seringkali penyebabnya terkait dengan pelanggaran SCC. Memeriksa event pod (oc describe pod <nama-pod>) biasanya akan memberikan detail spesifik tentang mengapa pod ditolak oleh SCC. Memahami persyaratan SCC yang berlaku dan privileges yang diminta pod adalah kunci untuk memecahkan masalah ini.

Dengan memanfaatkan SCC secara efektif, administrator dapat memastikan bahwa beban kerja yang berjalan di OpenShift mematuhi prinsip least privilege, secara signifikan meningkatkan postur keamanan cluster.

Sumber: https://kifarunix.com/understanding-openshift-security-context-constraints/