Cloud IAM roles, policies, resource-based access, dan workload identity di AWS, GCP, dan Azure menjadi fondasi keamanan cloud modern

Setelah di episode 12 kita membahas application integration, pada episode ini kita masuk ke Cloud IAM — model akses di tiga cloud provider utama: AWS, GCP, dan Azure. Cloud IAM berbeda dari IAM tradisional karena bersifat programmable, granular, dan resource-centric.
Mengapa Cloud IAM penting? Karena cloud computing menjadi standar, dan cloud IAM adalah garis pertahanan pertama. Salah konfigurasi cloud IAM bisa membuka akses ke seluruh infrastruktur cloud.
| Komponen | Fungsi |
|---|---|
| User | Entity yang bisa login ke console/CLI |
| Group | Kumpulan users dengan permissions sama |
| Role | Temporary credentials untuk assumption |
| Policy | JSON document yang menentukan akses |
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::company-docs/*"
},
{
"Effect": "Deny",
"Action": "s3:DeleteBucket",
"Resource": "*"
}
]
}Roles digunakan oleh AWS services (EC2, Lambda) untuk mengakses resource lain tanpa hardcoding credentials:
aws ec2 associate-iam-instance-profile \
--instance-id i-1234567890abcdef0 \
--iam-instance-profile Name=EC2-S3-ReadOnlyAzure menggunakan model RBAC terintegrasi:
| Komponen | Fungsi |
|---|---|
| Subscription | Unit billing dan management |
| Resource Group | Wadah untuk resources |
| Scope | Level penerapan role |
| Role Definition | Kumpulan permissions |
| Role | Permissions |
|---|---|
| Owner | Full access + assign roles |
| Contributor | Full access tanpa assign roles |
| Reader | Read-only |
| User Access Administrator | Manage user access |
az role assignment create \
--assignee $USER_ID \
--role "Reader" \
--scope /subscriptions/$SUB_ID/resourceGroups/$RG| Komponen | Fungsi |
|---|---|
| Organization | Root node untuk semua resources |
| Project | Wadah untuk resources |
| Roles | Kumpulan permissions |
| Bindings | Menghubungkan role ke member |
{
"bindings": [
{
"role": "roles/viewer",
"members": [
"user:alice@company.com",
"serviceAccount:app@project.iam.gserviceaccount.com"
]
}
]
}| Aspek | AWS IAM | Azure RBAC | GCP IAM |
|---|---|---|---|
| Model | Policy-based | Role-based | Role-based |
| Granularity | Sangat granular | Granular | Granular |
| Service accounts | IAM roles | Managed identities | Service accounts |
| Cross-account | Assume role | Azure AD B2B | Org policy |
| Audit | CloudTrail | Activity Log | Audit Log |
Workload identity memungkinkan aplikasi mengakses cloud resources tanpa credentials statis:
| Cloud | Mekanisme |
|---|---|
| AWS | IAM Roles for Service Accounts (IRSA) |
| Azure | Managed Identities |
| GCP | Workload Identity Federation |
# 1. Buat IAM role untuk service account
# 2. Attach policy ke role
# 3. Annotate Kubernetes service account
kubectl annotate serviceaccount my-pod \
eks.amazonaws.com/role-arn=arn:aws:iam::123456789:role/my-roleWarning
Cloud IAM misconfiguration adalah penyebab #1 data breach di cloud. Selalu gunakan least privilege, audit berkala, dan infrastructure-as-code untuk mengelola cloud IAM secara konsisten.
Inti yang harus dibawa pulang:
Di episode 14 selanjutnya kita akan membahas Kubernetes & workload identity — service accounts, K8s RBAC, dan OIDC untuk workload. Siapkan Kubernetes cluster kalian!