Cloud, Container & IaC Security #05: Tutorial Cloudsplaining + Semgrep untuk AWS IAM dan Application Security
Episode 05/5: tutorial lengkap Cloudsplaining + Semgrep dengan practical workflow, command dan security assessment.
Cloud, Container & IaC Security
Episode 05/5 — Cloudsplaining + Semgrep
Tool versions: Cloudsplaining 0.9.1 + Semgrep 1.177.0
Pendahuluan
Episode terakhir menyatukan dua layer yang sering diperiksa secara terpisah: application code dan cloud identity.
Semgrep membantu menemukan security pattern pada source code. Cloudsplaining membantu menilai AWS IAM policy dan least privilege.
1. Cloudsplaining
Install:
python3 -m venv .venv-cloudsplaining
source .venv-cloudsplaining/bin/activate
pip install cloudsplaining==0.9.1
cloudsplaining --help
2. Scan policy lokal
Workflow paling sederhana:
cloudsplaining scan-policy-file --input-file policy.json
Dengan policy lokal, kita dapat belajar tanpa memberikan akses langsung ke AWS account.
3. Assessment AWS account
Cloudsplaining menyediakan workflow download authorization data:
cloudsplaining download
Gunakan profile assessment bila diperlukan:
cloudsplaining download --profile security-audit
Kemudian:
cloudsplaining scan --input-file default.json
Verifikasi identity dan account sebelum assessment.
4. Least privilege
Misalnya:
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "*"
}
Jangan mengubah wildcard secara buta.
Tentukan kebutuhan aplikasi sebenarnya: bucket, prefix, action dan service yang menggunakan role.
Least privilege berarti permission yang sesuai kebutuhan, bukan sekadar permission paling sedikit.
5. Semgrep
Semgrep adalah static analysis tool untuk source code.
Versi tutorial: 1.177.0.
Verifikasi:
semgrep --version
Scan lokal:
semgrep scan --config auto
6. Custom security rule
Contoh:
rules:
- id: insecure-example
languages: [python]
message: "Review this dangerous pattern"
severity: WARNING
pattern: dangerous_function(...)
Run:
semgrep scan --config rule.yml .
Custom rule dapat mendeteksi insecure API, hard-coded credential pattern, dangerous function, TLS verification yang dimatikan dan security invariant internal.
7. Menghubungkan source code dengan IAM
Contoh:
Application
↓
AWS SDK
↓
IAM Role
↓
S3
Semgrep membantu menjawab:
API AWS apa yang digunakan application?
Cloudsplaining membantu menjawab:
Apa yang sebenarnya boleh dilakukan IAM role?
Jika code hanya membutuhkan GetObject tetapi role memberikan s3:* maka ada kandidat least-privilege improvement.
8. Security rule sebagai asset
Semgrep rule dan IAM policy harus diperlakukan seperti code:
- version controlled;
- peer reviewed;
- tested;
- documented;
- memiliki owner.
Rule security yang tidak dipelihara dapat menjadi sumber false positive maupun false negative.
9. CI/CD
Semgrep:
semgrep scan --config auto
Kemudian integrasikan hasil ke workflow CI sesuai platform.
Untuk IAM, Cloudsplaining dapat dijalankan terhadap policy artifact dalam security review.
Contoh:
Pull Request
↓
Semgrep
↓
IaC/IAM assessment
↓
Build
↓
Security Review
↓
Deploy
10. False positive
Static analysis berbasis pattern dapat menghasilkan false positive.
Review source context, data flow, framework behavior dan reachability sebelum mengubah severity atau men-disable rule.
Rule yang bagus bukan rule yang menghasilkan banyak finding, tetapi rule yang menghasilkan signal yang berguna.
11. Exception IAM
Exception IAM juga harus memiliki alasan, owner, scope dan review period.
Jangan membiarkan wildcard permission permanen hanya karena service akan rusak jika permission dipersempit tanpa testing.
12. Menggabungkan seluruh seri
Setelah lima episode:
Source Code → Semgrep
↓
IaC → Checkov / KICS
↓
Container → Trivy / Grype / Dive
↓
Kubernetes → kube-bench / kube-hunter
↓
Cloud → Prowler
↓
AWS IAM → Cloudsplaining
Tidak ada satu tool yang melakukan semuanya.
13. Final security checklist
Sebelum production:
- source code scanned;
- IaC scanned;
- secrets checked;
- image vulnerability scanned;
- SBOM generated;
- image layers reviewed;
- Kubernetes baseline assessed;
- cloud posture assessed;
- IAM least privilege reviewed;
- findings memiliki owner;
- exception terdokumentasi;
- critical findings memiliki remediation plan.
Kesimpulan seri
Security assessment bukan aktivitas menjalankan sepuluh command lalu selesai.
Tujuannya adalah membuat security menjadi bagian dari lifecycle:
Code → IaC → Build → Container → Kubernetes → Cloud → Identity → Runtime.
Tools memberi visibility dan automation. Security engineering tetap membutuhkan architecture review, least privilege, secure defaults, continuous assessment, remediation, monitoring dan accountability.
Referensi resmi
- https://github.com/salesforce/cloudsplaining
- https://cloudsplaining.readthedocs.io/
- https://github.com/semgrep/semgrep
- https://semgrep.dev/docs/
Seri: Cloud, Container & IaC Security
Episode: 05/5
Tools: Cloudsplaining + Semgrep
Post Terkait
Cloud, Container & IaC Security #04: Tutorial KICS + Prowler untuk IaC dan Cloud Security Assessment
Episode 04/5: tutorial lengkap KICS + Prowler dengan practical workflow, command dan security assessment.
Cloud, Container & IaC Security #03: Tutorial kube-hunter + Checkov untuk Kubernetes dan IaC Security
Episode 03/5: tutorial lengkap kube-hunter + Checkov dengan practical workflow, command dan security assessment.
Cloud, Container & IaC Security #02: Tutorial Dive + kube-bench untuk Container dan Kubernetes Hardening
Episode 02/5: tutorial lengkap Dive + kube-bench dengan practical workflow, command dan security assessment.