Ansible Vault Nedir?

Ansible Vault, parolaları, API anahtarlarını ve sertifikaları şifreleyen Ansible'ın yerleşik bir özelliğidir; böylece bunlar playbook'lar ve roller ile birlikte sürüm kontrolünde güvenli bir şekilde depolanabilir. AES-256 simetrik şifreleme ve PBKDF2 anahtar türetmesi kullanır; bu, şifreleme ve şifre çözme için tek bir parolanın kullanıldığı anlamına gelir. Vault ile şifrelenmiş içerik, $ANSIBLE_VAULT;1.1;AES256 başlığı ve ardından onaltılık kodlanmış şifreli metinle tanımlanır.

Ansible Vault, temel bir DevOps sorununu çözer: sırları altyapı kodu ile aynı depoda tutarken bunları açığa çıkarmamak. Ayrı gizli depoları yönetmek veya ortam değişkenlerine güvenmek yerine, takımlar şifrelenmiş dosyaları doğrudan Git'e kaydedebilir ve playbook yürütülürken çalışma zamanında bunların şifresini çözebilir.

Araç açıklaması

Bu araç, Ansible Vault içeriğini doğrudan tarayıcıda şifreler ve şifresini çözer. Bir vault parolası ve düz metni girerek tam uyumlu bir şifrelenmiş vault blobu oluşturun veya orijinal sırrı ortaya çıkarmak için mevcut bir vault blobunu yapıştırın. Hiçbir veri tarayıcıdan çıkmaz — tüm şifreleme işlemleri istemci tarafında çalışır.

Örnekler

Düz metni şifreleme:

Giriş (düz metin):

db_password: s3cur3P@ss!

Çıkış (şifrelenmiş vault):

$ANSIBLE_VAULT;1.1;AES256
33383239333036363833303565653032383832663162356533343630623030613133623032636566
6536303436646561356461623866386133623462383832620a646363626137626635353462386430
34333937313366383038346135656563316236313139333933383139376333353266666436316536
6335376265313432610a313537363637383264646261303637646631346137393964386432313633
3666

Vault içeriğinin şifresini çözme:

Orijinal db_password: s3cur3P@ss! değerini kurtarmak için yukarıdaki şifrelenmiş bloğu doğru parola ile yapıştırın.

Özellikler

  • AES-256 şifreleme, Ansible Vault 1.1 formatı ile tam uyumlu
  • Yalnızca istemci tarafı — hiçbir veri sunucuya gönderilmez
  • Tek bir parola alanı ile hem şifreleme hem de şifre çözmeyi destekler
  • Yazarken anlık dönüştürme ve canlı önizleme
  • Çok satırlı sırlar, YAML parçaları ve rastgele metinle çalışır

Kullanım durumları

  • Ansible playbook'larını içeren bir Git deposuna kaydetmeden önce yeni bir sırrı hızlı bir şekilde şifreleme
  • Ansible'ın yerel olarak yüklü olmasına gerek kalmadan hata ayıklama sırasında vault içeriğinin şifresini çözme ve inceleme
  • Şifrelenmiş sırları, paylaşılan vault parolasını kullanarak tarayıcıda şifresini çözebilen takım arkadaşları ile paylaşma

Nasıl çalışır?

Ansible Vault 1.1 aşağıdaki işlemi kullanır:

  1. Anahtar türetmesi — PBKDF2-HMAC-SHA256, paroladan ve rastgele bir tuzdan 80 baytlık bir anahtar türetir (10.000 yineleme). Anahtar, 32 baytlık bir şifreleme anahtarı, 32 baytlık bir HMAC anahtarı ve 16 baytlık bir IV'ye bölünür.
  2. Şifreleme — Düz metin, türetilen anahtar ve IV kullanılarak AES-256-CTR ile şifrelenir.
  3. Kimlik doğrulama — Bütünlüğü sağlamak için şifreli metin üzerinde HMAC-SHA256 hesaplanır.
  4. Kodlama — Tuz, HMAC özeti ve şifreli metin onaltılık kodlanır ve $ANSIBLE_VAULT;1.1;AES256 başlığı altında birleştirilir.

Şifre çözme işlemi tersine çevrilir: parola aynı anahtarları yeniden türetir, HMAC'ı doğrular ve şifreli metni çözer.

Sınırlamalar

  • Yalnızca AES-256 şifreleme ile Ansible Vault 1.1 formatını destekler
  • Çok parolalı kurulumlar için vault ID etiketlerini desteklemez
  • Büyük dosyalar, CPU yoğun anahtar türetme adımı nedeniyle kısa UI gecikmelerine neden olabilir