Hassas Verileri Korumak İçin Başucu Kitaplarında Ansible Vault Nasıl Kullanılır - Bölüm 10


Ansible'ı kullanmaya devam ederken, bazı gizli veya gizli bilgileri başucu kitaplarına girmeniz gerekebilir. Buna SSH özel ve genel anahtarları, şifreleri ve SSL sertifikaları dahildir. Zaten bildiğimiz gibi, bu hassas bilgileri açık nedenlerden dolayı düz metin olarak kaydetmek kötü bir uygulamadır. Bu bilgilerin kilit altında tutulması gerekir çünkü bilgisayar korsanları veya yetkisiz kullanıcılar bu bilgileri ele geçirirse ne olacağını ancak hayal edebiliriz.

Neyse ki Ansible bize Ansible Vault olarak bilinen kullanışlı bir özellik sunuyor. Adından da anlaşılacağı gibi Ansible Vault, daha önce de tartıştığımız gibi hayati önem taşıyan gizli bilgilerin güvenliğinin sağlanmasına yardımcı olur. Ansible Vault değişkenleri, hatta daha sonra göstereceğimiz gibi tüm dosyaları ve YAML oyun kitaplarını şifreleyebilir. Dosyaları şifrelerken ve şifrelerini çözerken aynı şifreyi gerektiren çok kullanışlı ve kullanıcı dostu bir araçtır.

Şimdi konuyu derinlemesine inceleyelim ve Ansible Vault kullanılarak gerçekleştirilebilecek çeşitli işlemlere genel bir bakış sunalım.

Ansible'da Şifreli Dosya Nasıl Oluşturulur

Şifrelenmiş bir Playbook dosyası oluşturmak istiyorsanız, ansible-vault create komutunu kullanmanız ve gösterildiği gibi dosya adını vermeniz yeterlidir.

ansible-vault create filename

Örneğin, şifrelenmiş bir dosya oluşturmak için mysecrets.yml komutunu çalıştırın.

ansible-vault create mysecrets.yml

Daha sonra sizden bir şifre istenecek ve bunu onayladıktan sonra vi düzenleyiciyi kullanarak oyunlarınızı yazmaya başlayabileceğiniz yeni bir pencere açılacaktır.

Aşağıda bazı bilgilerin bir örneği verilmiştir. İşiniz bittiğinde oyun kitabını kaydedip çıkmanız yeterlidir. Ve şifrelenmiş bir dosya oluştururken bu kadar.

Dosya şifrelemesini doğrulamak için gösterildiği gibi cat komutunu kullanın.

cat mysecrets.yml

Ansible'da Şifrelenmiş Bir Dosya Nasıl Görüntülenir

Şifrelenmiş bir dosyayı görüntülemek istiyorsanız aşağıda gösterildiği gibi ansible-vault view komutunu iletmeniz yeterlidir.

ansible-vault view mysecrets.yml

Bir kez daha sizden bir şifre istenecektir. Bir kez daha bilgilerinize erişebileceksiniz.

Ansible'da Şifrelenmiş Bir Dosya Nasıl Düzenlenir

Şifrelenmiş bir dosyada değişiklik yapmak için gösterildiği gibi ansible-vault edit komutunu kullanın.

ansible-vault edit mysecrets.yml

Her zaman olduğu gibi şifreyi girin ve ardından dosyayı düzenlemeye devam edin.

Düzenlemeyi tamamladıktan sonra kaydedin ve vim düzenleyicisinden çıkın.

Ansible Vault Şifresi Nasıl Değiştirilir?

Ansible kasa şifresini değiştirme ihtiyacı hissetmeniz durumunda, bunu aşağıda gösterildiği gibi ansible-vault rekey komutunu kullanarak kolayca yapabilirsiniz.

ansible-vault rekey mysecrets.yml

Bu, sizden kasa parolasını girmenizi ister ve daha sonra yeni parolayı girmenizi ve daha sonra onaylamanızı ister.

Ansible'da Şifrelenmemiş Bir Dosya Nasıl Şifrelenir?

Şifrelenmemiş bir dosyayı şifrelemek istediğinizi varsayalım; bunu gösterildiği gibi ansible-vault encrypt komutunu çalıştırarak yapabilirsiniz.

ansible-vault encrypt classified.txt

Daha sonra aşağıda belirtildiği gibi cat komutunu kullanarak dosyayı görüntüleyebilirsiniz.

Şifrelenmiş Bir Dosyanın Şifresi Nasıl Çözülür?

Şifrelenmiş bir dosyanın içeriğini görüntülemek için aşağıdaki örnekte gösterildiği gibi ansible-vault encrypt'i kullanarak dosyanın şifresini çözmeniz yeterlidir.

ansible-vault decrypt classified.txt

Ansible'da Belirli Değişkenler Nasıl Şifrelenir?

Ek olarak Ansible kasası size belirli değişkenleri şifreleme yeteneği verir. Bu, gösterildiği gibi ansible-vault encrypt_string komutu kullanılarak yapılır.

ansible-vault encrypt_string 

Ansible Vault sizden şifreyi isteyecek ve daha sonra onaylamanızı isteyecektir. Daha sonra şifrelemek istediğiniz dize değerini yazın. Son olarak ctrl+d tuşlarına basın. Daha sonra şifrelenmiş değeri bir oyun kitabına atamaya başlayabilirsiniz.

Bu, aşağıda gösterildiği gibi tek bir satırda gerçekleştirilebilir.

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

Çalışma Zamanı Sırasında Bir Playbook Dosyasının Şifresi Nasıl Çözülür

Bir playbook dosyanız varsa ve çalışma zamanı sırasında şifresini çözmek istiyorsanız, gösterildiği gibi --ask-vault-pass seçeneğini kullanın.

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

Bu, aynı parola kullanılarak şifrelenmiş olmaları koşuluyla, başucu kitabında kullanılan tüm dosyaların şifresini çözer.

Şifre istemleri bazen can sıkıcı olabiliyor. Bu istemler, özellikle otomasyon önemli olduğunda otomasyonu savunulamaz hale getirir. Çalışma zamanı sırasında oyun kitaplarının şifresini çözme sürecini kolaylaştırmak için Ansible kasa şifresini içeren ayrı bir şifre dosyasının olması önerilir. Bu dosya daha sonra gösterildiği gibi çalışma zamanı sırasında aktarılabilir.

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

Bu bizi bu konunun ve Ansible otomasyon serisinin sonucuna getiriyor. Eğitimlerin, tek bir merkezi sistemden birden fazla sunucudaki görevleri nasıl otomatikleştirebileceğiniz konusunda bazı yararlı bilgiler sağladığını umuyoruz.