Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konteks Keamanan Pod
Kebijakan Keamanan Pod (PSP) dan Standar Keamanan Pod (PSS) adalah dua cara utama untuk menegakkan keamanan di Kubernetes. Perhatikan bahwa tidak PodSecurityPolicy digunakan lagi sejak Kubernetes v1.21, dan akan dihapus di v1.25 dan Pod Security Standard (PSS) adalah pendekatan yang direkomendasikan Kubernetes untuk menegakkan keamanan di masa mendatang.
Kebijakan Keamanan Pod (PSP) adalah solusi asli di Kubernetes untuk menerapkan kebijakan keamanan. PSP adalah sumber daya tingkat cluster yang mengontrol aspek sensitif keamanan dari spesifikasi Pod. Menggunakan Kebijakan Keamanan Pod, Anda dapat menentukan serangkaian kondisi yang harus dipenuhi oleh Pod agar dapat diterima oleh cluster. Fitur PSP telah tersedia sejak hari-hari awal Kubernetes dan dirancang untuk memblokir pod yang salah konfigurasi agar tidak dibuat pada cluster tertentu.
Untuk informasi lebih lanjut tentang Kebijakan Keamanan Pod, silakan merujuk dokumentasi Kubernetes.
Di sisi lain, Standar Keamanan Pod (PSS) yang merupakan pendekatan keamanan yang direkomendasikan dan biasanya diimplementasikan menggunakan Konteks Keamanan didefinisikan sebagai bagian dari spesifikasi Pod dan wadah dalam manifes Pod. PSS adalah standar resmi yang telah ditetapkan oleh tim proyek Kubernetes untuk mengatasi praktik terbaik terkait keamanan untuk Pod. Ini mendefinisikan kebijakan seperti baseline (minimal membatasi, default), istimewa (tidak membatasi) dan terbatas (paling membatasi).
Sebaiknya mulai dengan profil dasar. Profil dasar PSS memberikan keseimbangan yang solid antara keamanan dan potensi gesekan, membutuhkan daftar pengecualian minimal, ini berfungsi sebagai titik awal yang baik untuk keamanan beban kerja. Jika saat ini Anda menggunakan PSP, kami sarankan beralih ke PSS. Rincian lebih lanjut tentang kebijakan PSS dapat ditemukan di dokumentasi Kubernetes.
Pengaturan konteks keamanan memungkinkan seseorang untuk memberikan hak istimewa untuk memilih proses, menggunakan profil program untuk membatasi kemampuan untuk program individual, mengizinkan eskalasi hak istimewa, memfilter panggilan sistem, antara lain.
Pod Windows di Kubernetes memiliki beberapa keterbatasan dan pembeda dari Linux-based beban kerja standar dalam hal konteks keamanan.
Windows menggunakan objek Job per container dengan filter namespace sistem untuk memuat semua proses dalam wadah dan memberikan isolasi logis dari host. Tidak ada cara untuk menjalankan wadah Windows tanpa pemfilteran namespace di tempatnya. Ini berarti bahwa hak istimewa sistem tidak dapat ditegaskan dalam konteks host, dan dengan demikian wadah istimewa tidak tersedia di Windows.
Berikut ini windowsOptions adalah satu-satunya opsi Konteks Keamanan Windows yang didokumentasikan
Untuk daftar atribut konteks keamanan yang didukung di Windows vs linux, silakan merujuk ke dokumentasi resmi di sini
Pengaturan khusus Pod diterapkan ke semua wadah. Jika tidak ditentukan, opsi dari PodSecurityContext akan digunakan. Jika disetel di kedua SecurityContext dan PodSecurityContext, nilai yang ditentukan diut SecurityContext amakan.
Misalnya, jalankan AsUserName pengaturan untuk Pod dan wadah yang merupakan opsi Windows setara dengan AsUser pengaturan Linux-specific run dan dalam manifes berikut, konteks keamanan khusus pod diterapkan ke semua wadah
apiVersion: v1 kind: Pod metadata: name: run-as-username-pod-demo spec: securityContext: windowsOptions: runAsUserName: "ContainerUser" containers: - name: run-as-username-demo nodeSelector: kubernetes.io/os: windows
Sedangkan di bawah ini, konteks keamanan tingkat kontainer menggantikan konteks keamanan tingkat pod.
apiVersion: v1 kind: Pod metadata: name: run-as-username-container-demo spec: securityContext: windowsOptions: runAsUserName: "ContainerUser" containers: - name: run-as-username-demo .. securityContext: windowsOptions: runAsUserName: "ContainerAdministrator" nodeSelector: kubernetes.io/os: windows
Contoh nilai yang dapat diterima untuk AsUserName bidang run: ContainerAdministrator, ContainerUser, NT AUTHORITY\ NETWORK SERVICE, NT AUTHORITY\ LOCAL SERVICE
Umumnya merupakan ide yang baik untuk menjalankan wadah Anda dengan ContainerUser pod Windows. Pengguna tidak dibagi antara wadah dan host tetapi memiliki hak istimewa tambahan di dalam wadah. ContainerAdministrator Perhatikan bahwa, ada batasan nama pengguna yang
Contoh yang baik kapan harus digunakan ContainerAdministrator adalah mengatur PATH. Anda dapat menggunakan direktif USER untuk melakukan itu, seperti:
USER ContainerAdministrator RUN setx /M PATH "%PATH%;C:/your/path" USER ContainerUser
Perhatikan juga bahwa, rahasia ditulis dalam teks yang jelas pada volume node (dibandingkan dengan tmpfs/in -memory di linux). Ini berarti Anda harus melakukan dua hal
-
Gunakan ACL file untuk mengamankan lokasi file rahasia
-
Gunakan enkripsi tingkat volume menggunakan BitLocker