Dokumen ini memberikan panduan dan rekomendasi untuk penggunaan dengan aman Terraform untuk Google Cloud. Terraform memerlukan akses sensitif ke infrastruktur cloud untuk beroperasi. Mengikuti praktik terbaik keamanan dapat membantu meminimalkan risiko terkait dan meningkatkan keamanan cloud Anda secara keseluruhan.
Panduan ini bukan merupakan pengantar untuk Terraform. Untuk pengantar penggunaan Terraform dengan Google Cloud, baca Mulai menggunakan Terraform.
Menggunakan status jarak jauh
Untuk pelanggan Google Cloud, sebaiknya gunakan backend status Cloud Storage. Pendekatan ini mengunci status untuk memungkinkan kolaborasi sebagai tim. Tindakan ini juga memisahkan status dan semua informasi yang mungkin bersifat sensitif dari kontrol versi.
Pastikan hanya sistem build dan administrator dengan hak istimewa tinggi yang dapat mengakses bucket yang digunakan untuk status jarak jauh.
Untuk mencegah pengiriman status pengembangan secara tidak sengaja ke kontrol sumber, gunakan gitignore untuk file status Terraform.
Mengenkripsi status
Meskipun bucket Google Cloud dienkripsi saat nonaktif, Anda dapat menggunakan
kunci enkripsi yang disediakan pelanggan
untuk memberikan lapisan perlindungan tambahan. Lakukan hal ini dengan menggunakan
variabel lingkungan GOOGLE_ENCRYPTION_KEY
. Meskipun tidak boleh ada secret
dalam file status, selalu enkripsi status sebagai langkah pertahanan tambahan.
Jangan menyimpan secret dalam status
Ada banyak resource dan penyedia data di Terraform yang menyimpan nilai secret dalam teks biasa pada file status. Jika memungkinkan, hindari menyimpan secret dalam status. Berikut adalah beberapa contoh penyedia yang menyimpan secret dalam teks biasa:
Menandai output yang sensitif
Dibandingkan mencoba mengenkripsi nilai sensitif secara manual, Anda dapat mengandalkan dukungan bawaan Terraform untuk pengelolaan status sensitif. Saat mengekspor nilai sensitif ke output, pastikan nilai tersebut ditandai sebagai sensitif.
Memastikan pemisahan tugas
Jika Anda tidak dapat menjalankan Terraform dari sistem otomatis yang tidak dapat diakses pengguna, terapkan pemisahan tugas dengan memisahkan izin dan direktori. Misalnya, project jaringan akan sesuai dengan akun layanan Terraform jaringan atau pengguna yang aksesnya dibatasi ke project ini.
Menjalankan audit berkelanjutan
Setelah perintah terraform apply
dijalankan, jalankan pemeriksaan keamanan otomatis.
Pemeriksaan ini dapat membantu memastikan bahwa infrastruktur tidak berubah ke
status yang tidak aman. Alat berikut adalah pilihan yang valid untuk jenis pemeriksaan ini:
Langkah selanjutnya
- Pelajari praktik terbaik gaya dan struktur umum untuk Terraform di Google Cloud.
- Pelajari praktik terbaik saat menggunakan modul root Terraform.