Pengurusan Rahsia & RBAC
Pelajari strategi lanjutan untuk mengurus data sensitif dan melaksanakan Kawalan Akses Berasaskan Peranan (RBAC) dalam persekitaran kontena.
Pengurusan Rahsia & RBAC ialah pelajaran Asas Docker dan DevOps percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Asas Docker dan DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Docker dan DevOps merangkumi sejumlah 4 pelajaran.
Lindungi Persekitaran Bekas Anda
Selamat datang! Dalam pelajaran ini, kita akan mendalami amalan keselamatan penting untuk aplikasi berbekas: Pengurusan Rahsia dan Kawalan Akses Berasaskan Peranan (RBAC).
Konsep ini penting untuk melindungi data sensitif dan memastikan hanya entiti yang diberi kuasa boleh melakukan tindakan tertentu dalam persekitaran bekas anda.

Bahaya Menetapkan Rahsia Secara Tegar
Menetapkan maklumat sensitif seperti kunci API, kata laluan pangkalan data atau sijil peribadi secara terus dalam kod aplikasi atau Dockerfile ialah risiko keselamatan yang besar.
- Pendedahan: Sesiapa yang mempunyai akses kepada repositori kod atau imej binaan anda boleh melihatnya dengan mudah.
- Kurang Kawalan: Menukar rahsia memerlukan anda membina semula dan menggunakan semula keseluruhan aplikasi.
- Isu Pematuhan: Melanggar banyak amalan terbaik keselamatan dan keperluan kawal selia.
Pemboleh Ubah Persekitaran (dengan Berhati-hati)
Kaedah biasa, tetapi tidak semestinya selamat, untuk menghantar rahsia adalah melalui pemboleh ubah persekitaran. Docker membolehkan anda menghantarnya dengan bendera -e, dan aplikasi boleh membacanya.
Walau bagaimanapun, pemboleh ubah persekitaran boleh diperiksa dengan mudah (contohnya, docker inspect) dan mungkin kekal dalam sejarah shell atau log. Untuk data yang benar-benar sensitif, terdapat penyelesaian yang lebih baik.
Rahsia Docker dalam Tindakan
Rahsia Docker membolehkan anda menyimpan dan menghantar data sensitif kepada bekas dengan selamat. Apabila sesuatu rahsia dilampirkan pada bekas, ia dipasang sebagai fail sementara dalam /run/secrets/.
Mula-mula, anda perlu mencipta rahsia (contohnya, echo "my_secure_pass" | docker secret create app_secret -). Kemudian, aplikasi anda boleh membacanya:
import os
def main():
secret_path = "/run/secrets/app_secret"
try:
with open(secret_path, 'r') as f:
secret_value = f.read().strip()
print(f"Secret read: {secret_value}")
except FileNotFoundError:
print("Secret file not found. Make sure it's mounted.")
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
main()Gambaran Keseluruhan Rahsia Kubernetes
Sama seperti Rahsia Docker, Kubernetes mempunyai objeknya sendiri yang dipanggil "Secrets" untuk menyimpan dan mengurus maklumat sensitif. Rahsia ini boleh dipasang sebagai fail ke dalam Pod atau didedahkan sebagai pemboleh ubah persekitaran.
Penting: Rahsia Kubernetes dikodkan dalam base64, bukan disulitkan secara lalai. Ini bermakna rahsia tersebut mudah dinyahkod. Untuk penyulitan sebenar ketika tidak digunakan, anda memerlukan konfigurasi tambahan (contohnya, penyepaduan KMS).
Penggunaan dengan Rahsia K8s
Mari lihat contoh cara Rahsia Kubernetes ditakrifkan dan kemudiannya digunakan dalam Pod. Anda boleh mentakrifkan rahsia dalam YAML atau menciptanya melalui perintah kubectl.
Selepas dicipta, Pod boleh merujuk rahsia tersebut untuk memasangnya sebagai volum atau menyuntik nilainya sebagai pemboleh ubah persekitaran.
apiVersion: v1
kind: Pod
metadata:
name: my-secret-pod
spec:
containers:
- name: my-app-container
image: busybox
command: ["sh", "-c", "echo Username: $(cat /etc/secrets/username) Password: $(cat /etc/secrets/password)"]
volumeMounts:
- name: secret-volume
mountPath: "/etc/secrets"
readOnly: true
volumes:
- name: secret-volume
secret:
secretName: my-k8s-secretPeti Besi Rahsia Luaran
Untuk data yang sangat sensitif, atau apabila mengurus rahsia merentasi berbilang kluster dan persekitaran, alat pengurusan rahsia luaran menawarkan ciri lanjutan seperti:
- Storan Berpusat: Satu sumber rujukan utama untuk semua rahsia.
- Penyulitan Semasa Disimpan dan Dihantar: Jaminan keselamatan yang lebih kukuh.
- Rahsia Dinamik: Bukti kelayakan berjangka pendek yang dijana secara automatik.
- Pengauditan dan Kawalan Akses: Keizinan terperinci serta pengelogan menyeluruh.
Pilihan popular termasuk HashiCorp Vault, AWS Secrets Manager dan Azure Key Vault.
Apakah RBAC?
Kawalan Akses Berasaskan Peranan (RBAC) ialah kaedah untuk mengehadkan akses sistem kepada pengguna yang diberi kuasa. Daripada memberikan keizinan secara terus kepada setiap pengguna, keizinan dikumpulkan ke dalam "peranan", kemudian pengguna diberikan peranan tersebut.
Dalam orkestrasi bekas, RBAC memastikan pengguna, aplikasi atau perkhidmatan hanya mempunyai keizinan yang diperlukan untuk berinteraksi dengan sumber seperti Pod, Deployment dan Secrets.
Blok Binaan RBAC K8s
RBAC Kubernetes menggunakan beberapa jenis sumber utama:
- Peranan: Menentukan keizinan dalam ruang nama tertentu (contohnya, "boleh melihat pod" dalam ruang nama "dev").
- ClusterRole: Menentukan keizinan merentasi keseluruhan kluster (contohnya, "boleh melihat semua pod" atau "boleh mengurus nod").
- RoleBinding: Memberikan keizinan yang ditakrifkan dalam Peranan kepada pengguna, kumpulan atau akaun perkhidmatan dalam ruang nama.
- ClusterRoleBinding: Memberikan keizinan yang ditakrifkan dalam ClusterRole kepada pengguna, kumpulan atau akaun perkhidmatan merentasi keseluruhan kluster.
Contoh RBAC: Mengehadkan Akses
Mari lihat contoh pemberian keizinan kepada akaun perkhidmatan tertentu untuk hanya menyenaraikan dan mendapatkan pod dalam ruang nama tertentu. Ini menguatkuasakan prinsip keistimewaan minimum.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods-binding
namespace: default
subjects:
- kind: ServiceAccount
name: pod-viewer-sa # Name of the ServiceAccount to bind to
namespace: default
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.ioUji Pemahaman Anda
Anda telah mempelajari cara melindungi data sensitif dan mengawal akses. Tiba masanya untuk pemeriksaan pantas!
Imbas Kembali: Lindungi Aplikasi Anda
Syabas! Dalam pelajaran ini, anda telah mempelajari dua tunjang penting keselamatan bekas:
- Pengurusan Rahsia: Melindungi data sensitif menggunakan Rahsia Docker dan Rahsia Kubernetes serta memahami kekuatan dan batasannya.
- Kawalan Akses Berasaskan Peranan (RBAC): Melaksanakan keizinan terperinci dalam Kubernetes untuk memastikan prinsip keistimewaan minimum.
Dengan menguasai perkara ini, anda sedang membina aplikasi berbekas yang lebih kukuh dan selamat!
Pelajari Asas Docker dan DevOps dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Pengurusan Rahsia & RBAC” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Docker dan DevOps, termasuk “Pengurusan Rahsia & RBAC”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Asas Docker dan DevOps merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pengurusan Rahsia & RBAC”?
Pelajari strategi lanjutan untuk mengurus data sensitif dan melaksanakan Kawalan Akses Berasaskan Peranan (RBAC) dalam persekitaran kontena. Anda berlatih Asas Docker dan DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Asas Docker dan DevOps?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Docker dan DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Pengurusan Rahsia & RBAC” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Asas Docker dan DevOps ini?
Ya. Setiap pelajaran Asas Docker dan DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pengimbasan Keselamatan Imej Kontena
- Keselamatan Kontena Semasa Pelaksanaan
- Pengurusan Rahsia & RBAC
- Dasar Rangkaian dan Rangkaian Keistimewaan Minimum