Cara Menggunakan Ansible Vault di Playbook untuk Melindungi Data Sensitif - Bagian 10


Saat Anda menggunakan Ansible, Anda mungkin diminta untuk memasukkan beberapa informasi rahasia atau rahasia di buku pedoman. Ini termasuk kunci pribadi dan publik SSH, kata sandi, dan sertifikat SSL, dan masih banyak lagi. Seperti yang telah kita ketahui, menyimpan informasi sensitif ini dalam teks biasa karena alasan yang jelas adalah praktik yang buruk. Informasi ini harus dijaga kerahasiaannya karena kita hanya bisa membayangkan apa yang akan terjadi jika peretas atau pengguna tidak sah berhasil menguasainya.

Untungnya, Ansible memberi kami fitur praktis yang dikenal sebagai Ansible Vault. Seperti namanya, Ansible Vault membantu mengamankan informasi rahasia penting seperti yang telah kita bahas sebelumnya. Ansible Vault dapat mengenkripsi variabel, atau bahkan seluruh file dan playbook YAML seperti yang akan kami tunjukkan nanti. Ini adalah alat yang sangat berguna dan mudah digunakan yang memerlukan kata sandi yang sama saat mengenkripsi dan mendekripsi file.

Sekarang mari selami dan lihat ikhtisar berbagai operasi yang dapat dilakukan menggunakan Ansible vault.

Cara Membuat File Terenkripsi di Ansible

Jika Anda ingin membuat file Playbook terenkripsi cukup gunakan perintah ansible-vault create dan berikan nama file seperti yang ditunjukkan.

ansible-vault create filename

Misalnya, untuk membuat file terenkripsi mysecrets.yml jalankan perintah.

ansible-vault create mysecrets.yml

Anda kemudian akan dimintai kata sandi, dan setelah mengonfirmasinya, jendela baru akan terbuka menggunakan editor vi tempat Anda dapat mulai menulis drama Anda.

Di bawah ini adalah contoh beberapa informasi. Setelah Anda selesai cukup simpan dan keluar dari buku pedoman. Dan itu saja saat membuat file terenkripsi.

Untuk memverifikasi enkripsi file, gunakan perintah cat seperti yang ditunjukkan.

cat mysecrets.yml

Cara Melihat File Terenkripsi di Ansible

Jika Anda ingin melihat file terenkripsi, cukup berikan perintah ansible-vault view seperti yang ditunjukkan di bawah ini.

ansible-vault view mysecrets.yml

Sekali lagi, Anda akan dimintai kata sandi. Sekali lagi, Anda akan memiliki akses ke informasi Anda.

Cara Mengedit File Terenkripsi di Ansible

Untuk membuat perubahan pada file terenkripsi gunakan perintah ansible-vault edit seperti yang ditunjukkan.

ansible-vault edit mysecrets.yml

Seperti biasa, berikan kata sandi dan kemudian lanjutkan mengedit file.

Setelah Anda selesai mengedit, simpan dan keluar dari editor vim.

Cara Mengubah Kata Sandi Vault yang Mungkin

Jika Anda merasa perlu mengubah kata sandi Ansible vault, Anda dapat melakukannya dengan mudah menggunakan perintah ansible-vault rekey seperti yang ditunjukkan di bawah ini.

ansible-vault rekey mysecrets.yml

Ini meminta Anda memasukkan kata sandi brankas dan kemudian meminta Anda memasukkan kata sandi baru dan kemudian mengonfirmasinya.

Cara Mengenkripsi File yang Tidak Terenkripsi dengan Mungkin

Misalkan Anda ingin mengenkripsi file yang tidak terenkripsi, Anda dapat melakukannya dengan menjalankan perintah ansible-vault encrypt seperti yang ditunjukkan.

ansible-vault encrypt classified.txt

Anda nanti dapat melihat file tersebut menggunakan perintah cat seperti yang ditunjukkan di bawah ini.

Cara Mendekripsi File Terenkripsi

Untuk melihat konten file terenkripsi, cukup dekripsi file menggunakan ansible-vault encrypt seperti yang diilustrasikan pada contoh di bawah.

ansible-vault decrypt classified.txt

Cara Mengenkripsi Variabel Tertentu di Ansible

Selain itu, Ansible vault memberi Anda kemampuan untuk mengenkripsi variabel tertentu. Hal ini dilakukan dengan menggunakan perintah ansible-vault encrypt_string seperti yang ditunjukkan.

ansible-vault encrypt_string 

Vault yang mungkin akan meminta Anda memasukkan kata sandi dan kemudian meminta Anda untuk mengonfirmasinya. Selanjutnya, ketikkan nilai string yang ingin Anda enkripsi. Terakhir, tekan ctrl+d. Setelah itu, Anda dapat mulai menetapkan nilai terenkripsi dalam buku pedoman.

Hal ini dapat dicapai dalam satu baris seperti yang ditunjukkan di bawah ini.

ansible-vault encrypt_string 'string' --name 'variable_name'

Cara Mendekripsi File Playbook Selama Runtime

Jika Anda memiliki file playbook dan ingin mendekripsinya saat runtime, gunakan opsi --ask-vault-pass seperti yang diilustrasikan.

ansible-playbook deploy.yml --ask-vault-pass

Ini mendekripsi semua file yang digunakan dalam playbook asalkan dienkripsi menggunakan kata sandi yang sama.

Permintaan kata sandi terkadang dapat mengganggu. Perintah-perintah ini membuat otomatisasi tidak dapat dipertahankan, terutama ketika otomatisasi adalah kuncinya. Untuk menyederhanakan proses mendekripsi playbook selama runtime, disarankan untuk memiliki file kata sandi terpisah yang berisi kata sandi brankas Ansible. File ini kemudian dapat diteruskan saat runtime seperti yang ditunjukkan.

ansible-playbook deploy.yml --vault-password-file  /home/tecmint/vault_pass.txt

Hal ini membawa kita pada kesimpulan dari topik ini dan seri otomatisasi yang Mungkin. Kami berharap tutorial ini dapat memberikan beberapa pengetahuan berguna tentang bagaimana Anda dapat mengotomatisasi tugas di beberapa server dari satu sistem pusat.