การควบคุมการเข้าถึงตามบทบาท (RBAC)
จัดการสิทธิ์ของผู้ใช้และบัญชีบริการภายในคลัสเตอร์โดยใช้บทบาท RBAC และการผูกบทบาท
การควบคุมการเข้าถึงตามบทบาท (RBAC) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
RBAC ในคูเบอร์เนทีสคืออะไร
ยินดีต้อนรับครับ/ค่ะ! ในบทเรียนนี้ เราจะเจาะลึกเรื่อง การควบคุมการเข้าถึงตามบทบาท (RBAC) ซึ่งเป็นคุณลักษณะด้านความปลอดภัยที่สำคัญของคูเบอร์เนทีส
RBAC ช่วยให้คุณจัดการได้ว่าใครสามารถทำอะไรภายในคลัสเตอร์ของคุณ เปรียบเสมือนเจ้าหน้าที่รักษาความปลอดภัยสำหรับทรัพยากรคูเบอร์เนทีส เพื่อให้มั่นใจว่าเฉพาะผู้ใช้และแอปพลิเคชันที่ได้รับอนุญาตเท่านั้นที่จะดำเนินการบางอย่างได้
เหตุผลที่ RBAC จำเป็น
หากไม่มี RBAC ผู้ที่เข้าถึงคลัสเตอร์ได้อาจดำเนินการใด ๆ ก็ได้ ซึ่งนำไปสู่ความเสี่ยงด้านความปลอดภัยหรือความเสียหายจากการทำงานผิดพลาด
- ความปลอดภัย: ป้องกันการเข้าถึงและการดำเนินการโดยไม่ได้รับอนุญาต
- การปฏิบัติตามข้อกำหนด: ช่วยให้เป็นไปตามข้อกำหนดด้านกฎระเบียบสำหรับการควบคุมการเข้าถึง
- สิทธิ์เท่าที่จำเป็น: ช่วยให้ผู้ใช้และแอปพลิเคชันมีเฉพาะสิทธิ์ที่จำเป็นอย่างแท้จริง
แนวคิดสำคัญของ RBAC
RBAC ในคูเบอร์เนทีสอาศัยองค์ประกอบหลักไม่กี่อย่าง:
- หัวข้อ: “ใคร” (ผู้ใช้ บัญชีบริการ และกลุ่ม)
- บทบาท: “อะไร” (ชุดสิทธิ์)
- RoleBindings: “อย่างไร” (เชื่อมบทบาทเข้ากับหัวข้อ)
- ClusterRoles และ ClusterRoleBindings: บทบาทและการเชื่อมโยงบทบาทในระดับทั้งคลัสเตอร์
หัวข้อ: ผู้ใช้และบัญชีบริการ
คูเบอร์เนทีสจำเป็นต้องทราบว่าใครเป็นผู้ขอให้ดำเนินการ สิ่งเหล่านี้เรียกว่าหัวข้อ:
- ผู้ใช้: โดยทั่วไปคือผู้ดูแลระบบหรือนักพัฒนา คูเบอร์เนทีสไม่ได้จัดการผู้ใช้โดยตรง แต่ใช้การยืนยันตัวตนจากภายนอก
- บัญชีบริการ: อ็อบเจ็กต์ของคูเบอร์เนทีสที่แอปพลิเคชันหรือกระบวนการภายในพ็อดใช้ บัญชีเหล่านี้มีความสำคัญต่อการสื่อสารระหว่างพ็อดกับเซิร์ฟเวอร์ API
กำหนดสิทธิ์ด้วยบทบาท
บทบาทจะกำหนดชุดสิทธิ์ภายในเนมสเปซที่ระบุ โดยระบุว่าการดำเนินการใด (กริยา) สามารถทำกับทรัพยากรใดได้บ้าง
ตัวอย่างเช่น บทบาทหนึ่งอาจอนุญาตให้ “เรียกดู” และ “แสดงรายการ” พ็อดในเนมสเปซ “default” ได้
ตัวอย่างบทบาท: ผู้อ่านพ็อด
ต่อไปนี้คือนิยาม YAML สำหรับบทบาทชื่อ pod-reader บทบาทนี้ให้สิทธิ์ “เรียกดู” “แสดงรายการ” และ “เฝ้าดู” (ตรวจสอบ) พ็อด
สังเกต apiGroups: [""] ซึ่งอ้างถึงกลุ่ม API หลักของคูเบอร์เนทีส
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
namespace: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]มอบสิทธิ์ด้วย RoleBindings
RoleBindingจะเชื่อมบทบาทที่ระบุเข้ากับหัวข้ออย่างน้อยหนึ่งรายการ (ผู้ใช้ บัญชีบริการ หรือกลุ่ม) ภายในเนมสเปซที่ระบุ
นี่คือการเชื่อมโยงที่ระบุว่า “ผู้ใช้หรือแอปนี้สามารถทำสิ่งใดได้บ้างตามที่บทบาทนี้อนุญาตในเนมสเปซนี้”
ตัวอย่าง RoleBinding: การมอบสิทธิ์เข้าถึง
RoleBinding นี้เชื่อมบทบาท pod-reader เข้ากับบัญชีบริการชื่อ my-app-sa ในเนมสเปซ default ตอนนี้ my-app-sa จึงสามารถอ่านพ็อดได้
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods-binding
namespace: default
subjects:
- kind: ServiceAccount
name: my-app-sa # The service account getting permissions
namespace: default
roleRef:
kind: Role
name: pod-reader # The Role being granted
apiGroup: rbac.authorization.k8s.ioClusterRoles และ ClusterRoleBindings
บางครั้งคุณจำเป็นต้องมีสิทธิ์ที่ใช้ได้ทั่วทั้งคลัสเตอร์ ไม่ใช่แค่เนมสเปซเดียว ในกรณีนี้จะใช้ ClusterRoles และ ClusterRoleBindings
- ClusterRole: กำหนดสิทธิ์สำหรับทรัพยากรที่มีขอบเขตระดับคลัสเตอร์ (เช่น โหนดและโวลุ่มถาวร) หรือสำหรับการดำเนินการในทุกเนมสเปซ (เช่น “แสดงรายการพ็อดทั้งหมด”)
- ClusterRoleBinding: เชื่อม ClusterRole เข้ากับหัวข้อ เพื่อมอบสิทธิ์ทั่วทั้งคลัสเตอร์
ตรวจสอบ RBAC อย่างรวดเร็ว
นักพัฒนาคนหนึ่งจำเป็นต้องปรับใช้แอปพลิเคชันใหม่เฉพาะในเนมสเปซ dev คุณควรใช้ทรัพยากร RBAC ของคูเบอร์เนทีสสองรายการใดเป็นหลักเพื่อมอบสิทธิ์เฉพาะนี้
ทบทวน: พื้นฐาน RBAC
ทำได้ดีมาก! คุณได้เรียนรู้แก่นสำคัญของ RBAC ในคูเบอร์เนทีสแล้ว:
- RBAC ควบคุมว่าใครสามารถโต้ตอบกับทรัพยากรในคลัสเตอร์ของคุณได้
- บทบาทกำหนดสิทธิ์ภายในเนมสเปซ
- RoleBindingsเชื่อมบทบาทเข้ากับหัวข้อ (ผู้ใช้และบัญชีบริการ)
- ClusterRoles และ ClusterRoleBindingsจัดการสิทธิ์ทั่วทั้งคลัสเตอร์
การเชี่ยวชาญ RBAC เป็นกุญแจสำคัญในการรักษาความปลอดภัยสภาพแวดล้อมคูเบอร์เนทีสของคุณ
คำถามที่พบบ่อย
บทเรียน “การควบคุมการเข้าถึงตามบทบาท (RBAC)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การควบคุมการเข้าถึงตามบทบาท (RBAC)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การควบคุมการเข้าถึงตามบทบาท (RBAC)”
จัดการสิทธิ์ของผู้ใช้และบัญชีบริการภายในคลัสเตอร์โดยใช้บทบาท RBAC และการผูกบทบาท คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การควบคุมการเข้าถึงตามบทบาท (RBAC)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การควบคุมการเข้าถึงตามบทบาท (RBAC)
- นโยบายเครือข่ายสำหรับการแยกส่วน
- มาตรฐานความปลอดภัยของ Pod
- บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด