Peta dunia

 

EN: Read in English

Dunia K6: Pengawal

securityContext: kunci bekas

Anda akan belajar: empat kunci yang tahap restricted mahu, dan di mana setiap satu diletak.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Kubernetes 1.37 pada 31 Okt 2026

Masalahnya

Seorang pencuri pecah masuk satu bekas: container kedai anda. Ia berjalan sebagai root, dengan semua kuasa hidup. Sejauh mana pencuri boleh pergi?

Pilih satu jawapan.

Tengok

Kunci 1 dipasang pada seluruh dulang. securityContext: Kunci pada bekas: bukan root, tiada kuasa tambahan, penapis seccomp, fail baca sahaja. simpan kunci-kunci itu. Tekan dua baris yang halang root.

Tekan setiap baris yang halang tukang masak jadi root.

0 daripada 2 dijumpai

Tengok

Anda di sini: kluster kind-dev namespace default
half.yaml hanya ada kunci dulang. Ia ditolak: container mesti tetapkan allowPrivilegeEscalation=false dan buang SEMUA capabilities. Output terminal: $ kubectl apply -f half.yaml Error from server (Forbidden): error when creating "half.yaml": pods "half" is forbidden: violates PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "box" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "box" must set securityContext.capabilities.drop=["ALL"])

Kunci dulang belum cukup. Setiap container perlu dua lagi. capabilities: Cebisan kecil kuasa root, contohnya ubah rangkaian. Buang SEMUA kecuali yang perlu. ialah cebisan kuasa root. Buang semuanya:

securityContext:
  allowPrivilegeEscalation: false
  capabilities:
    drop: ["ALL"]

Cuba

Mei letak kunci container pada dulang. API server tak kenal kunci itu di situ. Pindahkan ke dalam container.

Baiki manifest ini, kemudian tekan Apply.

tray.yaml13 baris

Cuba

Dua dulang menunggu dalam folder anda. cat kedua-duanya, kemudian apply yang pengawal terima.

Anda di sini: kluster kind-dev namespace default
Gerai: 3. Dulang: 0 (0 sedia). Menunggu gerai: 0.
dev-control-planeBukaPengurus

Tiada dulang di sini.

dev-workerBuka

Tiada dulang di sini.

dev-worker2Buka

Tiada dulang di sini.

Masa: +0s (dipercepat)

Teka

Anda tambah readOnlyRootFilesystem: true. Aplikasi tulis fail sementara ke /tmp. Apa jadi?

Pilih satu jawapan.

Semak

Di mana setiap kunci boleh diletak? Asingkan.

Seret kad ke dalam kotak. Atau ketik kad, kemudian ketik kotak.

      Anda berjaya!

      Kini anda boleh kunci bekas dengan securityContext.

      Nak tahu lebih (pilihan)

      Restricted benarkan satu kuasa kembali: NET_BIND_SERVICE, untuk port bawah 1024. Banyak image berjalan sebagai root secara lalai. Dengan runAsNonRoot: true dan image root, kubelet enggan memulakannya: CreateContainerConfigError. Pilih image bukan root, atau tetapkan runAsUser.

      Misi sebenar

      1. kubectl create namespace locks && kubectl label ns locks pod-security.kubernetes.io/enforce=restricted
      2. kubectl apply -n locks -f locked.yaml
      3. kubectl exec -n locks locked -- id

      0 daripada 4 langkah siap · Tanda anda disimpan.