Masalah
Automation sering dimulai dengan menaruh token langsung di script. Praktik ini berisiko ketika file dikirim, di-backup, atau di-commit ke repository.
Gunakan API token melalui environment variable, panggil API v4 dengan curl, dan validasi respons tanpa menaruh secret di source code.
Membuat pola dasar API call Cloudflare yang aman untuk dikembangkan menjadi automation.
PersiapanAPI token Cloudflare dengan permission minimum yang sesuai dan curl. jq opsional. Jangan gunakan Global API Key untuk latihan bila API token dapat memenuhi kebutuhan.
Automation sering dimulai dengan menaruh token langsung di script. Praktik ini berisiko ketika file dikirim, di-backup, atau di-commit ke repository.
Buat API token dengan permission sesempit mungkin. Simpan token di secret manager atau environment variable dan hindari mencetaknya ke terminal/log CI.
read -s mencegah token ditampilkan saat diketik pada Bash session.
read -rsp 'Cloudflare API token: ' CLOUDFLARE_API_TOKEN; echo\nexport CLOUDFLARE_API_TOKENCloudflare API menggunakan Authorization: Bearer untuk API token. Contoh berikut membaca satu zone berdasarkan ZONE_ID.
export ZONE_ID='your-zone-id'\ncurl --fail --silent --show-error \
"https://api.cloudflare.com/client/v4/zones/$ZONE_ID" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Jika jq tersedia, pipe output agar field lebih mudah dibaca. Untuk automation, periksa juga nilai success dan errors, bukan hanya exit code curl.
curl --fail --silent --show-error \
"https://api.cloudflare.com/client/v4/zones/$ZONE_ID" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" | jq .Endpoint list dapat memiliki page dan per_page. Jangan mengasumsikan satu response selalu memuat semua object; baca result_info dari endpoint yang digunakan.
Setelah selesai, hapus variable dari shell jika tidak diperlukan lagi.
unset CLOUDFLARE_API_TOKENPastikan token yang permission-nya read-only tidak dapat melakukan write. Pada CI, gunakan secret store platform dan hindari set -x pada step yang menangani secret.
Uji token pada endpoint yang aman/read-only dan pastikan permission sesuai kebutuhan. Jika API mengembalikan error authorization, jangan memperluas token secara global; identifikasi permission resource/account/zone yang benar.
--fail membantu membuat curl gagal pada HTTP error, tetapi automation tetap perlu menyimpan pesan error yang aman untuk diagnosis. Jangan mencetak Authorization header. Untuk script produksi, capture status code, success, errors, dan pagination metadata secara eksplisit.
Selain source code, token dapat bocor melalui shell history, process arguments, set -x, debug log, artifact, atau screenshot. Gunakan secret store CI dan masking; pada workstation, pertimbangkan input interaktif atau file permission ketat sesuai kebutuhan.
Jangan memakai Global API Key jika API Token scoped sudah cukup. Jangan memberikan Edit saat Read cukup. Jangan menganggap satu halaman API memuat semua data. Jangan commit response yang mengandung identifier/sensitive metadata ke repository publik.
Pastikan token scope minimum, endpoint benar, Zone/Account ID cocok, status HTTP ditangani, field success/errors diperiksa, pagination diproses, secret tidak tercetak, dan variable dihapus setelah sesi. Uji failure path sebelum menjadikan script bagian dari automation.
API automation yang aman dimulai dari least privilege dan secret handling. Menyembunyikan token dari source code lebih penting daripada membuat script cepat selesai.