Akun Layanan dan Identitas Beban Kerja
Pelajari cara Service Accounts memberikan identitas tersendiri kepada Pod, cara kerja tokennya, dan cara memberikan akses dengan hak paling minimal.
Akun Layanan dan Identitas Beban Kerja adalah pelajaran Kubernetes Basics gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kubernetes Basics, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kubernetes Basics mencakup 4 pelajaran total.
Identitas untuk Beban Kerja
Pengguna melakukan autentikasi ke Kubernetes, tetapi Pod juga memerlukan identitas agar dapat berkomunikasi dengan server API secara aman. Identitas tersebut adalah Akun Layanan.
Apa Itu ServiceAccount
ServiceAccount adalah objek dengan cakupan ruang nama yang mewakili identitas suatu beban kerja. Setiap Pod berjalan menggunakan satu ServiceAccount, dengan default sebagai nilai bawaan jika Anda tidak menentukannya.
apiVersion: v1
kind: ServiceAccount
metadata:
name: report-generator
namespace: analyticsMenetapkan Akun Layanan pada Pod
Tetapkan serviceAccountName dalam spesifikasi Pod agar Pod berjalan menggunakan identitas tertentu.
apiVersion: v1
kind: Pod
metadata:
name: reporter
spec:
serviceAccountName: report-generator
containers:
- name: app
image: reporter:1.0Token yang Dipasang
Kubernetes memasang token JWT berumur pendek untuk Akun Layanan ke dalam Pod. Token ini digunakan untuk mengautentikasi panggilan API.
# inside the Pod
cat /var/run/secrets/kubernetes.io/serviceaccount/tokenMengapa Akun Bawaan Berisiko
ServiceAccount default digunakan bersama oleh semua Pod dalam suatu ruang nama. Memberinya izin akan mengekspos semuanya secara berlebihan. Sebaiknya gunakan satu akun khusus untuk setiap beban kerja.
Menonaktifkan Pemasangan Token Otomatis
Jika suatu Pod tidak pernah memanggil API, nonaktifkan pemasangan token untuk memperkecil permukaan serangan.
apiVersion: v1
kind: Pod
metadata:
name: no-api-pod
spec:
automountServiceAccountToken: false
containers:
- name: app
image: myapp:1.0Memberikan Izin dengan RBAC
Akun Layanan tidak memiliki wewenang sampai Anda mengikatnya ke sebuah Peran. Subjek RoleBinding tersebut adalah Akun Layanan.
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.ioHak Akses Minimum dalam Praktik
- Satu Akun Layanan untuk setiap beban kerja
- Berikan hanya kata kerja operasi dan sumber daya yang benar-benar diperlukan
- Batasi cakupannya ke ruang nama dengan Role jika memungkinkan, bukan ClusterRole
Token Terikat dan Terproyeksi
Token modern terproyeksi dan terikat pada masa hidup Pod, dengan masa kedaluwarsa yang singkat. Token tersebut diperbarui otomatis, sehingga token yang bocor jauh lebih tidak berbahaya daripada rahasia lama yang berumur panjang.
Identitas Beban Kerja di Awan
Platform awan memetakan ServiceAccount Kubernetes ke identitas IAM awan, misalnya IRSA di AWS dan Workload Identity di GKE, sehingga Pod dapat mengakses sumber daya awan tanpa menyimpan kredensial statis.
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123:role/report-roleMemverifikasi Izin
Gunakan kubectl auth can-i dengan menyamar sebagai Akun Layanan untuk memastikan akun tersebut memiliki tepat akses yang Anda harapkan.
kubectl auth can-i list pods \
--as=system:serviceaccount:analytics:report-generator \
-n analyticsPemeriksaan Singkat
Uji pemahaman Anda tentang Akun Layanan.
Ringkasan
Anda telah mempelajari bahwa ServiceAccount memberi Pod identitasnya sendiri, yang didukung oleh token terproyeksi berumur pendek. Terapkan hak akses minimum dengan akun khusus untuk setiap beban kerja, berikan akses melalui pengikatan RBAC, nonaktifkan pemasangan token saat tidak digunakan, dan petakan akun ke IAM awan untuk akses tanpa kredensial.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Akun Layanan dan Identitas Beban Kerja” gratis?
Ya — teks lengkap “Akun Layanan dan Identitas Beban Kerja” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kubernetes Basics, upgrade ke CoddyKit PRO. Kursus Kubernetes Basics mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Akun Layanan dan Identitas Beban Kerja”?
Pelajari cara Service Accounts memberikan identitas tersendiri kepada Pod, cara kerja tokennya, dan cara memberikan akses dengan hak paling minimal. Kamu berlatih Kubernetes Basics dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Kubernetes Basics?
Tidak diperlukan pengalaman sebelumnya. Kubernetes Basics di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Akun Layanan dan Identitas Beban Kerja” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Kubernetes Basics ini?
Ya. Setiap pelajaran Kubernetes Basics menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kontrol Akses Berbasis Peran (RBAC)
- Kebijakan Jaringan untuk Isolasi
- Standar Keamanan Pod
- Akun Layanan dan Identitas Beban Kerja