บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด
เรียนรู้ว่าบัญชีบริการมอบอัตลักษณ์เฉพาะให้พ็อดได้อย่างไร โทเค็นทำงานอย่างไร และจะมอบสิทธิ์เข้าถึงเท่าที่จำเป็นให้พ็อดได้อย่างไร
บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
ตัวตนสำหรับเวิร์กโหลด
ผู้ใช้ยืนยันตัวตนกับ Kubernetes แต่พ็อดก็ต้องมีตัวตนเช่นกัน เพื่อให้สื่อสารกับเซิร์ฟเวอร์ส่วนติดต่อโปรแกรมประยุกต์ได้อย่างปลอดภัย ตัวตนนั้นคือบัญชีบริการ
บัญชีบริการคืออะไร
ServiceAccount คือออบเจ็กต์ที่อยู่ภายในเนมสเปซและแทนตัวตนของเวิร์กโหลด พ็อดทุกตัวทำงานภายใต้บัญชีหนึ่ง โดยใช้ default หากคุณไม่ได้ระบุบัญชี
apiVersion: v1
kind: ServiceAccount
metadata:
name: report-generator
namespace: analyticsการกำหนดบัญชีบริการให้พ็อด
ตั้งค่า serviceAccountName ในข้อกำหนดของพ็อด เพื่อให้พ็อดทำงานภายใต้ตัวตนที่ระบุ
apiVersion: v1
kind: Pod
metadata:
name: reporter
spec:
serviceAccountName: report-generator
containers:
- name: app
image: reporter:1.0โทเค็นที่เมาต์
Kubernetes จะเมาต์โทเค็นเจดับเบิลยูทีอายุสั้นสำหรับบัญชีบริการไว้ในพ็อด เพื่อใช้ยืนยันตัวตนของการเรียกส่วนติดต่อโปรแกรมประยุกต์
# inside the Pod
cat /var/run/secrets/kubernetes.io/serviceaccount/tokenเหตุใดบัญชีเริ่มต้นจึงมีความเสี่ยง
ServiceAccount default ถูกใช้ร่วมกันโดยพ็อดทั้งหมดในเนมสเปซ การมอบสิทธิ์ให้บัญชีนี้จะเปิดเผยทุกสิ่งมากเกินไป ควรใช้บัญชีเฉพาะสำหรับแต่ละเวิร์กโหลด
การปิดการเมาต์โทเค็นอัตโนมัติ
หากพ็อดไม่เคยเรียกส่วนติดต่อโปรแกรมประยุกต์ ให้ปิดการเมาต์โทเค็นเพื่อลดพื้นผิวการโจมตี
apiVersion: v1
kind: Pod
metadata:
name: no-api-pod
spec:
automountServiceAccountToken: false
containers:
- name: app
image: myapp:1.0การมอบสิทธิ์ด้วย RBAC
บัญชีบริการจะยังไม่มีอำนาจจนกว่าคุณจะผูกบัญชีนั้นเข้ากับบทบาท หัวข้อของ RoleBinding คือบัญชีบริการ
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: reporter-read
namespace: analytics
subjects:
- kind: ServiceAccount
name: report-generator
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.ioการใช้สิทธิ์น้อยที่สุดในทางปฏิบัติ
- ใช้บัญชีบริการหนึ่งบัญชีต่อเวิร์กโหลดหนึ่งรายการ
- มอบเฉพาะการกระทำและทรัพยากรที่จำเป็นจริง ๆ
- จำกัดขอบเขตไว้ที่เนมสเปซด้วยบทบาทเมื่อทำได้ แทนการใช้ ClusterRole
โทเค็นแบบผูกและฉาย
โทเค็นสมัยใหม่จะถูกฉายและผูกกับอายุการใช้งานของพ็อด โดยมีวันหมดอายุสั้น โทเค็นจะหมุนเวียนโดยอัตโนมัติ ดังนั้นโทเค็นที่รั่วไหลจึงอันตรายน้อยกว่าข้อมูลลับอายุยาวแบบเก่ามาก
ตัวตนของเวิร์กโหลดบนคลาวด์
แพลตฟอร์มคลาวด์จะจับคู่ ServiceAccount ของ Kubernetes กับตัวตน IAM บนคลาวด์ (เช่น IRSA บน AWS และตัวตนของเวิร์กโหลดบน GKE) ทำให้พ็อดเข้าถึงทรัพยากรคลาวด์ได้โดยไม่ต้องจัดเก็บข้อมูลรับรองแบบคงที่
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123:role/report-roleการตรวจสอบสิทธิ์
ใช้ kubectl auth can-i โดยแอบอ้างเป็นบัญชีบริการ เพื่อยืนยันว่าบัญชีนั้นมีสิทธิ์เข้าถึงตรงตามที่คุณคาดหวังทุกประการ
kubectl auth can-i list pods \
--as=system:serviceaccount:analytics:report-generator \
-n analyticsตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจเรื่องบัญชีบริการ
สรุปทบทวน
คุณได้เรียนรู้ว่า ServiceAccount มอบตัวตนของตนเองให้พ็อด โดยมีโทเค็นแบบฉายอายุสั้นรองรับ ใช้สิทธิ์น้อยที่สุดด้วยบัญชีเฉพาะสำหรับแต่ละเวิร์กโหลด มอบสิทธิ์ผ่านการผูกแบบ RBAC ปิดการเมาต์โทเค็นเมื่อไม่ใช้งาน และจับคู่บัญชีกับ IAM บนคลาวด์เพื่อเข้าถึงโดยไม่ต้องใช้ข้อมูลรับรอง
เรียนรู้ Kubernetes Basics ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 12
- บทเรียน
- 48
คำถามที่พบบ่อย
บทเรียน “บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด”
เรียนรู้ว่าบัญชีบริการมอบอัตลักษณ์เฉพาะให้พ็อดได้อย่างไร โทเค็นทำงานอย่างไร และจะมอบสิทธิ์เข้าถึงเท่าที่จำเป็นให้พ็อดได้อย่างไร คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม
ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การควบคุมการเข้าถึงตามบทบาท (RBAC)
- นโยบายเครือข่ายสำหรับการแยกส่วน
- มาตรฐานความปลอดภัยของ Pod
- บัญชีบริการและอัตลักษณ์ของเวิร์กโหลด