Cara Menggunakan Vault yang Memungkinkan Untuk Melindungi Data Playbook Sensitif

Dalam artikel ini, kita akan mempelajari apa itu Ansible Vault dan bagaimana menggunakan Ansible Vault untuk melindungi data sensitif playbook dengan mengenkripsi data di Linux.
Contents
Apa Itu Ansible Vault?Bekerja Dengan Ansible Vault CommandMengenkripsi File Dengan Ansible VaultCara Mengganti Kata Sandi Vault yang MungkinBagaimana Untuk Mendekripsi File TerenkripsiModifikasi Konten Dalam File TerenkripsiKonten Terenkripsi Dengan Playbook yang Dimungkinkan, Kata Sandi Store Vault Dalam File Konfigurasi yang DimungkinkanKesimpulanApa Itu Vault yang Dimungkinkan?

Ansible Vault adalah fitur dari ansible yang memungkinkan Anda menyimpan data sensitif seperti kata sandi atau kunci dalam file terenkripsi, daripada meninggalkannya data terlihat sebagai teks biasa dalam buku pedoman atau peran.

Otentikasi dan otorisasi adalah dua lapisan penting yang mengontrol bagian akses aplikasi perangkat lunak. Saat Anda bekerja di lingkungan kolaboratif, tidak semua data akan tetap terlihat oleh Anda.

Demikian pula, saat Anda membuat proyek menggunakan Ansible, Anda mungkin ingin menyimpan beberapa informasi sensitif seperti kunci api, kata sandi basis data, dan token akses dengan aman.

Menjaga ini informasi yang terlihat oleh semua orang tidak baik untuk keamanan, terutama ketika Anda menyimpannya di repositori publik.

Di bagian mendatang dari tutorial Ansible vault ini, kita akan belajar bagaimana menggunakan ansible vault untuk mengenkripsi file atau string untuk mengamankan rahasia Anda dengan aman dan cara menggunakan Ansible Vault di buku pedoman untuk melindungi data sensitif dengan perintah contoh.
Bekerja Dengan Ansible Vault Command

Secara default, ansible-vault dilengkapi dengan instalasi yang memungkinkan. Luncurkan terminal Anda dan jalankan perintah berikut yang akan memberi Anda daftar opsi yang dapat Anda gunakan dengan ansible vault command.

$ ansible-vault --help

Encrypting Files With Ansible Vault

Jika Anda ingin membuat file baru, tulis beberapa data ke dalamnya , dan enkripsi, lalu jalankan perintah berikut. Di sini “kunci rahasia” adalah nama file.

$ ansible-vault create secretkey

Mari kita pahami apa yang terjadi ketika Anda menjalankan perintah ini.
Karena file ini tidak tersedia, file akan dibuat dan dibuka untuk ditulis. Anda akan diminta untuk memberikan kata sandi untuk file ini yang harus disimpan dengan aman. Harap diingat tanpa kata sandi, Anda tidak akan dapat mendekripsi file lagi.
Setelah file ditutup, konten akan dienkripsi. jika Anda mencoba membuka file yang Anda enkripsi dengan aplikasi editor/penampil teks, Anda akan melihat beberapa data acak seperti yang ditunjukkan pada gambar di bawah ini.

Pada baris pertama, ada beberapa metadata yang mungkin akan digunakan secara internal untuk enkripsi dan dekripsi. Seperti yang Anda lihat dari baris pertama, algoritma AES256 digunakan untuk mengenkripsi file.

Anda juga dapat mengenkripsi file yang ada.

Untuk mengenkripsi file yang ada, jalankan perintah berikut. Sekali lagi Anda akan diminta untuk memberikan kata sandi vault yang nantinya akan digunakan untuk mendekripsi file.

$ echo "api_key: 'XUITZ89776XX'" > secretkey2 # Menulis data acak ke file
$ ansible-vault encrypt secretkey2

Cara Mengubah Ansible Vault Password

Anda dapat atur kata sandi vault baru untuk file terenkripsi yang ada dengan menjalankan perintah berikut. Di sini Anda harus mengingat kata sandi lama Anda yang akan diminta terlebih dahulu diikuti dengan kata sandi vault baru.

$ ansible-vault rekey secretkey2

Cara Mendekripsi File Terenkripsi

Jika Anda ingin melihat konten asli file, ada beberapa cara untuk melakukannya . Metode pertama adalah menjalankan perintah decrypt yang akan menempatkan file dalam bentuk tidak terenkripsi.

$ ansible-vault decrypt secretkey2

Anda juga dapat melihat konten file terenkripsi tanpa mendekripsi dengan menjalankan perintah berikut dengan “view” alih-alih “decrypt” .

$ ansible-vault view secretkey2

Perbedaan antara decrypt dan view adalah bahwa yang pertama akan menghapus enkripsi untuk melihat konten asli tetapi yang terakhir hanya akan mendekripsi dan mencetak konten sambil menjaga file asli dienkripsi.
Modify The Contents In Encrypted File

Katakanlah Anda ingin mengedit konten file terenkripsi. Dalam hal ini, Anda dapat mendekripsi file, mengedit konten, atau mengenkripsi file lagi. Atau, Anda dapat menggunakan perintah “edit” untuk mengedit konten.

$ ansible-vault edit secretkey2

Keuntungan dengan perintah “edit” adalah Anda tidak perlu mendekripsi file dan mengenkripsinya lagi. Ini akan membuka file untuk diedit, dan setelah Anda menutup file itu akan dienkripsi secara otomatis.
Konten Terenkripsi Dengan Playbook yang Dimungkinkan

Sampai sekarang kita telah melihat cara mengenkripsi dan mendekripsi data pada tingkat file. Anda juga dapat mengenkripsi string. Mari kita ambil contoh.

Saya memiliki beberapa variabel yang digunakan untuk koneksi jarak jauh dan juga berisi kata sandi koneksi. Untuk mengenkripsi kata sandi, jalankan perintah berikut. Di sini saya menggunakan kata sandi sebagai “kata sandi”.

Ingat kata sandi vault yang akan diperlukan untuk mendekripsi string.

$ ansible-vault encrypt_string "password"

Dalam buku pedoman di bawah ini, saya telah membuat beberapa var yang mensimulasikan detail koneksi dan “connect_pwd ” akan menyimpan data terenkripsi. Saya mencetak variabel “connection_pwd” menggunakan modul debug di task.

-name: "Test playbook for ansible vault" gathering_facts: False hosts: local vars: remote_user: produser default_role: prodrole connect_pwd: > tasks: - name: print debug kata sandi: msg: "{{ connect_pwd }}"

Saat menjalankan buku pedoman, Anda harus menggunakan tanda –ask-vault-password atau –ask-vault-pass yang akan meminta Anda memasukkan kata sandi vault untuk mendekripsi string.

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

Jika Anda mencoba menjalankan playbook tanpa tanda –ask-vault-password atau –ask-vault-pass, tugas akan gagal dengan kesalahan berikut.

fatal: [master.anslab.com]: GAGAL! => {"msg": "Mencoba mendekripsi tetapi tidak ada rahasia vault yang ditemukan"}

Anda juga dapat menyimpan kata sandi vault dalam sebuah file dan meneruskannya sebagai argumen ke –vault-password-file atau –vault-pass-file argument.

Saat menyimpan kata sandi vault dalam sebuah file, pastikan izin yang tepat telah diatur sehingga hanya pemilik file yang dapat membaca konten file.

$ echo "password" > .secretkey
$ chmod 600 .secretkey

Saya membuat file bernama . secretkey dan atur izin ke 600. Sekarang, file ini dapat digunakan untuk mendekripsi string di playbook saya.

$ ansible-playbook --vault-password-file .secretkey playbook.yml

Store Vault Password Dalam File Konfigurasi yang Dimungkinkan

Anda juga dapat menyimpan kata sandi vault di file ansible.cfg. Dalam hal ini, Anda dapat menjalankan perintah playbook tanpa memerlukan flag vault tambahan.

vault_password_file = .secretkey

Anda juga dapat menyetel variabel lingkungan berikut yang akan digunakan untuk semua decryption.

export ANSIBLE_VAULT_PASSWORD_FILE="./.secretkey"thisypreConbskey" kali, Anda harus memiliki pemahaman yang adil tentang cara mengamankan rahasia Anda dengan brankas Ansible. Mengenkripsi konten dengan Ansible Vault cukup mudah dan tidak memerlukan alat eksternal apa pun.

Latih semua contoh yang diberikan dalam artikel yang akan membantu Anda memahami lebih lanjut tentang bagaimana Ansible vault membantu melindungi data Playbook yang sensitif.

Resource:
Mengenkripsi Konten Dengan Ansible Vault
Gambar unggulan oleh Jagrit Parajuli dari Pixabay.