Episode ini membedah IAM: autentikasi vs otorisasi, prinsip least privilege dan zero trust, komponen IAM AWS, GCP, dan Azure, anatomi policy JSON, serta praktik CLI IAM di tiga penyedia.

Di episode 2, kalian memahami shared responsibility model: "security IN the cloud" — lapisan data dan akses — adalah tanggung jawab kalian. Episode 3 membahas alat utama untuk tanggung jawab itu: Identity & Access Management (IAM).
IAM adalah sistem yang memutuskan siapa yang boleh mengakses apa di cloud. Kedengarannya sederhana, tapi ini penyebab utama kebocoran data — bukan bug aplikasi, melainkan izin yang terlalu longgar. Episode ini membedah konsep, komponen, dan praktik IAM di AWS, GCP, dan Azure secara berdampingan.
Dua kata yang sering tertukar, padahal keduanya berbeda tahap:
Autentikasi tanpa otorisasi itu seperti memiliki kunci gedung tapi bebas masuk ke semua ruangan — tidak aman. Otorisasi tanpa autentikasi itu seperti punya daftar izin tapi tidak tahu siapa yang masuk — tidak berguna. Cloud butuh keduanya.
Dua prinsip yang menggerakkan semua desain IAM modern:
Gunakan analogi: di bandara, teknisi bagasi punya izin masuk area bagasi, tidak otomatis ke ruang pilot. Kalau satu izin bocor, kerusakan yang bisa dilakukan terbatas pada area izin itu. Ini konsep blast radius — semakin kecil izin, semakin kecil area yang bisa diledakkan bila kredensial bocor.
AWS membangun IAM dari lima komponen:
developers.Model AWS: izin melekat pada user, group, atau role melalui policy; evaluasi akhirnya adalah gabungan semua policy yang berlaku.
GCP memakai pendekatan berbeda: service account dan policy binding.
roles/storage.objectViewer).GCP tidak menganut model deny-explicit di level policy dasar: siapa pun tanpa binding tidak punya akses — akses hanya ada karena ada binding.
Azure memisahkan dua hal yang sering dianggap satu:
Di Azure, login lewat Entra ID, lalu akses diperiksa RBAC. Managed identity adalah identitas otomatis untuk aplikasi Azure yang tidak perlu menyimpan secret sama sekali — analog dengan service account GCP.
Di AWS, izin ditulis sebagai policy JSON. Pahami struktur dasarnya karena semua penyedia memakai pola yang mirip:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadOnlyBucket",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::assets",
"arn:aws:s3:::assets/*"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": "203.0.113.0/24"
}
}
}
]
}Empat elemen kunci:
Allow atau Deny. Deny selalu menang atas Allow.service:Operation.Tip
Perhatikan pola di atas: kalian tidak perlu menulis policy untuk "menolak semua" — deny adalah default. Policy hanya menambahkan izin secara eksplisit. Selalu mulai dari kosong, lalu tambahkan izin sesedikit mungkin (least privilege).
Mari lihat bentuk praktisnya di CLI. Di AWS, kelola user dan attach policy:
aws iam list-users
aws iam create-user --user-name dev
aws iam attach-user-policy \
--user-name dev \
--policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
aws iam list-attached-user-policies --user-name devPerintah aws iam list-users menampilkan semua user di akun — cara cepat memverifikasi siapa yang punya akses. Di GCP dan Azure, pola otorisasinya berbasis assignment:
gcloud projects get-iam-policy my-project \
--flatten="bindings[].members" \
--format="table(bindings.role, bindings.members)"Pola di atas menekankan perbedaan filosofi: AWS berorientasi policy yang melekat pada identitas; GCP dan Azure berorientasi binding antara siapa dan role pada suatu scope. Hasil akhirnya sama — kontrol akses granular — tapi kosakatanya berbeda.
| Aspek | AWS IAM | GCP IAM | Azure Entra ID + RBAC |
|---|---|---|---|
| Identitas utama | User, group, role | Service account, user, group | User, service principal, managed identity |
| Mekanisme izin | Policy JSON (identity-based) | Roles + policy binding | Role assignment |
| Definisi role | Policy kustom bebas | Role terkurasi + kustom | Role terkurasi + kustom |
| Kredensial sementara | STS AssumeRole | Service account impersonation | Managed identity / workload identity |
| Scope izin | Akun AWS | Project / organization | Subscription / resource group |
Yang perlu dibawa pulang: apapun nama komponennya, alur berpikirnya sama — siapa (principal) + izin apa (role/policy) + di mana (scope). Kuasai tiga pertanyaan ini, dan IAM di penyedia mana pun mudah dipahami.
Episode 3 memberi kalian bahasa untuk mengontrol akses cloud:
Di episode 4, kalian belajar mempraktikkan semuanya dengan aman: mengapa akun root tidak boleh dipakai sehari-hari, bahaya API key yang hidup selamanya, serta penggunaan temporary credentials dan audit logging untuk meminimalkan risiko.