Amankan Rahasia Anda Dengan Ansible Vault

Blog Ansible vault ini menjelaskan bagaimana data sensitif (kata sandi / kunci rahasia / file sertifikat) disimpan dalam file terenkripsi & disematkan ke dalam Ansible Playbooks.

Semakin tinggi penggunaan teknologi, semakin besar kemungkinan ancaman terhadap keamanan. Penyiapan Ansible yang khas mengharuskan Anda memasukkan 'Rahasia'. Rahasia ini dapat berupa apa saja, sandi, token API, kunci publik atau pribadi SSH, sertifikat SSL, dll. Bagaimana kami menjaga keamanan rahasia ini? Ansible menyediakan fitur yang disebut Ansible Vault.

Di blog ini, saya akan mendemonstrasikan cara menggunakan Ansible Vault dan mempelajari beberapa praktik terbaik untuk menjaga keamanan data.





Topik yang dibahas dalam blog ini:

Jika Anda ingin menguasai DevOps, ' kursus akan menjadi pilihan masuk Anda.



Apa itu Ansible Vault?

Memiliki infrastruktur sebagai kode dapat menimbulkan ancaman mengekspos data sensitif Anda ke dunia, yang mengarah ke masalah keamanan yang tidak diinginkan. Ansible Vault adalah fitur yang memungkinkan Anda menyimpan semua rahasia Anda dengan aman. Itu dapat mengenkripsi seluruh file, seluruh playbook YAML atau bahkan beberapa variabel. Ini menyediakan fasilitas di mana Anda tidak hanya dapat mengenkripsi data sensitif tetapi juga mengintegrasikannya ke dalam buku pedoman Anda.

Vault diimplementasikan dengan perincian tingkat file yang mana file tersebut sepenuhnya dienkripsi atau seluruhnya tidak dienkripsi. Ini menggunakan kata sandi yang sama untuk mengenkripsi serta untuk mendekripsi file yang membuat penggunaan Ansible Vault sangat ramah pengguna.

Mengapa menggunakan Ansible Vault?

Karena Ansible digunakan untuk otomatisasi, ada kemungkinan besar bahwa playbook berisi kredensial tertentu, sertifikat SSL, atau data sensitif lainnya. Menyimpan data sensitif seperti teks biasa adalah ide yang buruk. Salah melakukan kesalahan pada GitHub atau pencurian laptop dapat menyebabkan kerugian besar bagi organisasi. Di sinilah Ansible vault masuk ke dalam gambar. Ini adalah cara yang bagus untuk memiliki infrastruktur sebagai kode, tanpa mengorbankan keamanan.



Misalkan, kami memiliki pedoman yang menyediakan instans EC2 Anda di AWS. Anda perlu memberikan id kunci akses AWS dan kunci rahasia AWS Anda di buku pedoman. Anda tidak membagikan kunci ini dengan orang lain untuk alasan yang jelas. Bagaimana Anda membuatnya tidak terpapar? Ada dua cara - mengenkripsi kedua variabel ini dan menyematkannya ke dalam pedoman atau mengenkripsi seluruh pedoman.

Ini hanyalah salah satu skenario di mana lemari besi yang memungkinkan dapat digunakan. Kami dapat mengenkripsi seluruh file atau hanya mengenkripsi beberapa variabel yang mungkin menyimpan data sensitif dan kemudian Ansible secara otomatis mendekripsi mereka selama runtime. Sekarang kita dapat dengan aman memasukkan nilai-nilai ini ke GitHub.

Membuat File Terenkripsi

Untuk membuat file terenkripsi, gunakan ansible-vault create perintah dan berikan nama file.

$ ansible-vault buat nama file.yaml

Anda akan diminta untuk membuat kata sandi dan kemudian mengonfirmasinya dengan mengetik ulang.

membuat lemari besi yang memungkinkan - Vault yang memungkinkan - Edureka

Setelah kata sandi Anda dikonfirmasi, file baru akan dibuat dan akan membuka jendela pengeditan. Secara default, editor untuk Ansible Vault adalah vi. Anda dapat menambahkan data, menyimpan dan keluar.

Dan file Anda dienkripsi.

Mengedit File Terenkripsi

Jika Anda ingin mengedit file terenkripsi, Anda dapat mengeditnya menggunakan edit ansible-vault perintah.

$ ansible-vault edit secret.txt

Di mana secret.txt adalah file terenkripsi yang sudah dibuat.

Anda akan diminta untuk memasukkan kata sandi vault. File (versi yang didekripsi) akan terbuka di editor vi dan kemudian Anda dapat membuat perubahan yang diperlukan.

Jika Anda memeriksa keluaran, Anda akan melihat teks Anda akan dienkripsi secara otomatis saat Anda menyimpan dan menutup.

Melihat File Terenkripsi

Jika Anda hanya ingin melihat file yang dienkripsi, Anda dapat menggunakan tampilan ansible-vault perintah.

$ ansible-vault lihat nama file.yml

Sekali lagi Anda akan dimintai kata sandi.

dan Anda akan melihat hasil yang serupa.

Memasukkan Kembali Kata Sandi Vault

Tentu saja, ada kalanya Anda ingin mengubah sandi vault. Anda bisa menggunakan rekey kubah mungkin perintah.

$ ansible-vault rekey secret.txt

Anda akan diminta dengan kata sandi vault saat ini dan kemudian kata sandi baru dan akhirnya selesai dengan mengonfirmasi kata sandi baru.

Mengenkripsi File yang Tidak Terenkripsi

Misalkan Anda memiliki file yang ingin Anda enkripsi, Anda dapat menggunakan ansible-vault encrypt perintah.

$ ansible-vault mengenkripsi filename.txt

Anda akan diminta untuk memasukkan dan mengonfirmasi kata sandi dan file Anda dienkripsi.

Sekarang Anda melihat konten file, semuanya terenkripsi.

Mendekripsi File Terenkripsi

Jika Anda ingin mendekripsi file terenkripsi, Anda dapat menggunakan ansible-vault decrypt perintah.

$ ansible-vault mendekripsi namafile.txt

Seperti biasa, Anda akan diminta memasukkan dan mengonfirmasi kata sandi vault.

Mengenkripsi variabel tertentu

Praktik terbaik saat menggunakan Ansible Vault adalah mengenkripsi hanya data sensitif. Dalam contoh yang dijelaskan di atas, tim pengembangan tidak ingin membagikan kata sandi mereka dengan produksi dan tim pementasan, tetapi mereka mungkin memerlukan akses ke data tertentu untuk menjalankan tugas mereka sendiri. Dalam kasus seperti itu, Anda hanya boleh mengenkripsi data yang tidak ingin Anda bagikan dengan orang lain, biarkan sisanya apa adanya.

Ansible Vault memungkinkan Anda untuk mengenkripsi hanya variabel tertentu. Anda bisa menggunakan ansible-vault encrypt_string perintah untuk ini.

$ ansible-vault encrypt_string

Anda akan diminta untuk memasukkan dan kemudian mengkonfirmasi kata sandi vault. Anda kemudian dapat mulai memasukkan nilai string yang ingin Anda enkripsi. Tekan ctrl-d untuk mengakhiri masukan. Sekarang Anda dapat menetapkan ini terenkripsinilaike string di pedoman.

menggabungkan implementasi sort c ++

Anda juga bisa mencapai hal yang sama dalam satu baris.

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

Mendekripsi File Terenkripsi Selama Runtime

Jika Anda ingin mendekripsi file selama runtime, Anda dapat menggunakan –Ask-vault-pass bendera.

$ ansible-playbook launch.yml --ask-vault-pass

Ini akan mendekripsi semua file terenkripsi yang digunakan untuk menjalankan playbook launch.yml ini. Selain itu, ini hanya mungkin jika semua file dienkripsi dengan kata sandi yang sama.

Permintaan kata sandi bisa mengganggu. Tujuan otomatisasi menjadi tidak berguna. Bagaimana kita membuatnya lebih baik? Ansible memiliki fitur yang disebut 'file kata sandi' yang merujuk ke file yang berisi kata sandi. Anda kemudian dapat meneruskan file kata sandi ini selama runtime untuk mengotomatiskannya.

$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.txt

Memiliki skrip terpisah yang menentukan kata sandi juga dimungkinkan. Anda perlu memastikan file skrip dapat dieksekusi dan kata sandi dicetak ke output standar agar berfungsi tanpa kesalahan yang mengganggu.

$ ansible-playbook launch.yml --vault-password-file ~ / .vault_pass.py

Menggunakan Vault Id

Vault Id adalah cara untuk memberikan pengenal ke sandi vault tertentu. Vault ID membantu mengenkripsi file yang berbeda dengan kata sandi berbeda untuk dirujuk di dalam pedoman. Fitur Ansible ini keluar dengan rilis Ansible 2.4. Sebelum rilis ini, hanya satu kata sandi vault yang dapat digunakan di setiap eksekusi buku pedoman yang memungkinkan.

Jadi sekarang jika Anda ingin menjalankan buku pedoman yang mungkin yang menggunakan banyak file yang dienkripsi dengan kata sandi berbeda, Anda dapat menggunakan Vault Id.

$ ansible-playbook --vault-id vault-pass1 --vault-id vault-pass2 namafile.yml

Dengan ini, kita sampai di bagian akhir blog Ansible Vault ini. Sungguh menakjubkan bisa mengejar ketinggalan dengan teknologi dan memanfaatkannya semaksimal mungkin tetapi tidak dengan mengorbankan keamanan. Ini adalah salah satu cara terbaik untuk memiliki Infrastruktur sebagai kode (IaC).

Jika menurut Anda artikel ini bermanfaat, lihat ' ditawarkan oleh Edureka. Ini mencakup semua alat yang membuat industri TI lebih pintar.

Ada pertanyaan untuk kami? Silakan posting di dan kami akan menghubungi Anda kembali.