CDK — bootstrapping
Bootstrap menyiapkan bucket, repository, dan role yang dipakai CDK untuk menyimpan artefak dan melakukan deploy. Sekali per pasangan akun+region.
Intisari
- Bootstrap membuat satu stack bernama
CDKToolkitberisi bucket S3, repo ECR, dan beberapa IAM role. - Dibutuhkan sekali per akun per region — bukan sekali per proyek.
- Aset (kode Lambda, image Docker) diunggah ke bucket/repo itu, lalu template menunjuk ke sana.
- Deploy dari CI/CD memakai role hasil bootstrap — sehingga pipeline tidak perlu izin admin.
- Gejala lupa bootstrap: "This stack uses assets, so the toolkit stack must be deployed".
Apa yang dibuat
cdk bootstrap aws://123456789012/us-east-1
| Yang dibuat | Gunanya |
|---|---|
| Bucket S3 (staging) | Menampung berkas template besar dan aset kode Lambda |
| Repository ECR | Menampung image Docker untuk Lambda container |
Role deploy | Yang benar-benar memanggil CloudFormation |
Role file-publishing / image-publishing | Mengunggah aset |
Role cfn-exec | Dipakai CloudFormation untuk membuat resource-mu |
Kenapa perlu bucket sama sekali
Template CloudFormation punya batas ukuran, dan ia tidak bisa membawa kode Lambda di dalam dirinya. Jadi CDK
mengunggah kodemu sebagai aset, lalu template hanya menunjuk lokasi S3-nya. Itu juga alasan
cdk deploy terasa mengunggah sesuatu setiap kali kodemu berubah — karena memang begitu.
Nama aset diturunkan dari hash isi. Kalau kodemu tidak berubah, hash-nya sama, dan tidak ada pengunggahan baru. Ini pola yang sama dengan aset ber-hash di situs statis mana pun.
Model kepercayaan untuk CI/CD
Ini bagian yang penting untuk Domain 2 ujian. Karena bootstrap membuat role tersendiri, pipeline CI/CD-mu
tidak perlu izin administrator. Yang dibutuhkan hanya izin untuk mengambil role
deploy hasil bootstrap; role itulah yang punya izin membuat resource.
# Membatasi siapa yang boleh memakai role hasil bootstrap
cdk bootstrap aws://123456789012/us-east-1 \
--trust 999999999999 \
--cloudformation-execution-policies arn:aws:iam::aws:policy/PowerUserAccess
Jangan asal --trust. Akun yang kamu percayai bisa men-deploy apa pun ke akun ini,
dengan izin yang kamu berikan lewat --cloudformation-execution-policies. Untuk akun production,
sempitkan policy itu dari AdministratorAccess ke sesuatu yang benar-benar dibutuhkan.
Error yang berkaitan
| Pesan | Artinya |
|---|---|
| "the toolkit stack must be deployed" | Belum bootstrap di region ini |
| "bootstrap stack version 6 required" | Bootstrap-nya usang — jalankan ulang cdk bootstrap |
AccessDenied saat mengunggah aset | Identitasmu tidak boleh mengambil role publishing |
Bootstrap perlu diperbarui sesekali saat kamu menaikkan versi CDK. Menjalankan ulang perintah yang sama
aman — ia memperbarui stack CDKToolkit yang sudah ada.
Latihan: jalankan cdk bootstrap, lalu buka konsol CloudFormation dan telusuri isi stack
CDKToolkit. Cari role cfn-exec dan baca permissions policy-nya — itulah izin yang
sesungguhnya dipakai saat stack-mu dibuat.
Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.