0Pricing
DevOps Bootcamp · Pelajaran

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 DevOps Bootcamp 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 DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp 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: analytics

Menetapkan 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.0

Token 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/token

Mengapa 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.0

Memberikan 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.io

Hak 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-role

Memverifikasi 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 analytics

Pemeriksaan 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 DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp 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 DevOps Bootcamp 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 DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp 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 DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp 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

  1. Kontrol Akses Berbasis Peran (RBAC)
  2. Kebijakan Jaringan untuk Isolasi
  3. Standar Keamanan Pod
  4. Akun Layanan dan Identitas Beban Kerja
← Kembali ke DevOps Bootcamp