Praktik Terbaik untuk Keamanan

Dokumen ini berisi panduan dan rekomendasi untuk menggunakan Terraform for Google Cloud dengan aman. Terraform memerlukan akses sensitif ke infrastruktur cloud agar dapat 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