Peta dunia

 

EN: Read in English

Dunia K6: Pengawal

RBAC: role dan binding

Anda akan belajar: cara beri orang atau bot satu kad tugas untuk satu zon, tidak lebih.

Teks BM belum disemak oleh penutur asli.

Disemak dengan Kubernetes 1.37 pada 31 Okt 2026

Masalahnya

Bot CI anda cuma kemas kini satu benda: Deployment shop. Hari ini ia pegang kunci induk seluruh kluster. Kunci apa patut ia bawa?

Pilih satu jawapan.

Tepat apa yang perlu, tidak lebih. Itulah least privilege: Beri setiap pekerja kunci untuk stesennya sahaja. Tiada lebih. (hak paling sedikit).

Tengok

Kubernetes kenal dua jenis “siapa”. Orang bawa ID sendiri. Robot dapat lencana staf: ServiceAccount: Lencana staf untuk robot: identiti yang pod atau bot CI guna dengan API.. Asingkan mereka.

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

      Tengok

      Anda di sini: kluster kind-dev namespace default
      cat tunjuk Role bernama deployer: dalam kumpulan API apps, pada deployments, kata kerja get, list dan patch. kubectl apply ciptanya. Output terminal: $ cat deployer.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: deployer rules: - apiGroups: ["apps"] resources: ["deployments"] verbs: ["get", "list", "patch"] $ kubectl apply -f deployer.yaml role.rbac.authorization.k8s.io/deployer created

      Role: Kad tugas: kata kerja apa pada benda apa, dalam satu zon. ClusterRole berfungsi di semua zon. ialah kad tugas. Ia senaraikan kata kerja, seperti patch, pada benda, seperti deployments. Ia hanya berfungsi dalam satu zon.

      Cuba

      Kad sahaja tak buat apa-apa. RoleBinding: Pin kad tugas pada orang atau bot, dalam satu zon. ClusterRoleBinding pin di semua tempat. pin kad pada lencana, dalam satu zon. Sambungkan bot CI pada deployer, dalam shop sahaja.

      Sambung wayar sehingga setiap jawapan sepadan. Beri yang perlu sahaja.

      Siapa (palam)

      • ci-bot (ServiceAccount · ci)
      • mei (pengguna)

      Role (soket)

      • Role deployer · shop
        • get, list, patch · deployments
      • ClusterRole cluster-admin · seluruh kluster
        • * · *

      Wayar (binding)

      Belum ada wayar. Tiada siapa boleh buat apa-apa.

      Boleh atau tidak? (kubectl auth can-i)

      1. kubectl auth can-i patch deployments -n shop --as=system:serviceaccount:ci:ci-botnosepatutnya yes belum lagiTiada wayar yang beri hak ini.
      2. kubectl auth can-i patch deployments -n default --as=system:serviceaccount:ci:ci-botnosepatutnya no sepadanTiada wayar yang beri hak ini.
      3. kubectl auth can-i get secrets -n shop --as=system:serviceaccount:ci:ci-botnosepatutnya no sepadanTiada wayar yang beri hak ini.
      Tanya soalan anda sendiri
      kubectl auth can-i get pods -n shop --as=system:serviceaccount:ci:ci-botno

      Tengok

      Role berfungsi dalam satu zon. ClusterRole berfungsi di semua zon, dan untuk benda tanpa zon, seperti node. Asingkan ini.

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

          Cuba

          Sekarang di terminal. Apply kad tugas. Kemudian pin pada ci-bot dengan RoleBinding.

          Anda di sini: kluster kind-dev namespace default
          Masa: +0s (dipercepat)

          Teka

          RBAC tiada peraturan “tolak”. Bot ada dua RoleBinding. Satu benarkan padam pod. Satu lagi tidak. Bolehkah ia padam pod?

          Pilih satu jawapan.

          Anda berjaya!

          Kini anda boleh beri bot satu kad tugas untuk satu zon.

          Nak tahu lebih (pilihan)

          RoleBinding boleh tunjuk pada ClusterRole. Kad itu hanya berfungsi dalam zon binding tersebut. ClusterRole terbina: view, edit, admin, cluster-admin. Pod dapat token ServiceAccount yang cepat tamat. Tetapkan automountServiceAccountToken: false bila aplikasi tak pernah panggil API.

          Misi sebenar

          1. kubectl create serviceaccount ci-bot
          2. kubectl create role deployer --verb=get,list,patch --resource=deployments
          3. kubectl create rolebinding ci-bot-deployer --role=deployer --serviceaccount=default:ci-bot
          4. kubectl describe rolebinding ci-bot-deployer

          0 daripada 4 langkah siap · Tanda anda disimpan.