IAM dan Manajemen Akses
Identity and Access Management di AWS
Apa itu IAM
- Layanan untuk mengelola akses ke resource AWS
- Gratis dan global (tidak terikat region)
- Prinsip least privilege: beri izin seminimal mungkin
Komponen IAM
User
- Akun individual untuk manusia atau aplikasi
- Memiliki Access Key ID dan Secret Access Key
- Dapat diberikan password untuk console access
Group
- Kumpulan user dengan permission sama
- Contoh: Developers, Admins, DevOps
- User dapat masuk ke multiple group
Role
- Identitas sementara yang dapat diasumsikan
- Digunakan oleh service (EC2, Lambda) atau user lain
- Tidak memiliki password atau long-term credentials
Policy
- Dokumen JSON yang mendefinisikan izin
- Attach ke user, group, atau role
- Berisi effect (allow/deny), action, resource, dan condition
Contoh Policy JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::nama-bucket/*"
}
]
}IAM Role untuk EC2
- Instance EC2 perlu akses ke S3, RDS, dll
- Gunakan IAM Role daripada hardcode credentials
- Credentials otomatis rotate
Best Practice IAM
- Jangan gunakan root account untuk operasional
- Aktifkan MFA untuk semua user
- Rotate access key secara berkala
- Gunakan IAM Role untuk aplikasi
- Audit dengan IAM Credential Report
- Gunakan AWS IAM Access Analyzer