HashiCorp Vault PKI Secrets Engine ile Dahili Sertifika Otoritesi (CA) Kurulumu ve Yönetimi

 · 

HashiCorp Vault PKI Secrets Engine ile Dahili Sertifika Otoritesi (CA) Kurulumu ve Yönetimi

HashiCorp Vault PKI Secrets Engine ile Dahili Sertifika Otoritesi (CA) Kurulumu ve Yönetimi

Modern dağıtık sistemlerde, servisler arası güvenli iletişim (mTLS) ve dahili kaynaklara erişimin kimlik doğrulaması kritik bir gereksinimdir. Geleneksel olarak, bu sertifikaların manuel yönetimi, son kullanma tarihleri takibi ve yenileme süreçleri operasyonel yükü artırır ve insan hatasına açıktır. HashiCorp Vault'un PKI Secrets Engine'ı, bu karmaşıklığı ortadan kaldırarak dahili bir Sertifika Otoritesi (CA) kurma ve dinamik sertifika yaşam döngüsü yönetimi için merkezi, otomatik ve güvenli bir çözüm sunar.

Vault PKI Secrets Engine'ın Temel Mimarisi

Vault PKI Secrets Engine, bir Root CA ve bir veya daha fazla Intermediate CA hiyerarşisi oluşturmanıza olanak tanır. Root CA, tüm güven zincirinin köküdür ve çevrimdışı tutularak güvenliği maksimize edilir. Intermediate CA'lar ise operasyonel sertifika oluşturma, imzalama ve yönetimi görevlerini üstlenir. Bu ayrım, Root CA'nın tehlikeye girmesi durumunda sistemin genel güvenliğini korumak için hayati öneme sahiptir.

Adım 1: Root CA Kurulumu

İlk adım, birincil PKI secrets engine'ı etkinleştirmek ve kendi kendini imzalamış (self-signed) bir Root CA oluşturmaktır. Bu Root CA, tüm güven zincirinizin temelini oluşturacaktır.

# PKI secrets engine'ı 'pki' yolu üzerinde etkinleştirin.vault secrets enable pki# Root CA'yı oluşturun. Ortak ad (common name) ve TTL (Time To Live) belirleyin.vault write pki/root/generate/internal common_name="my-organization-root-ca" ttl="87600h"# CA sertifikasını indirin (isteğe bağlı, ancak iyi bir uygulamadır)vault read pki/ca/crt

Root CA oluşturulduktan sonra, sertifika iptal listesi (CRL) ve OCSP (Online Certificate Status Protocol) URL'lerini yapılandırmak önemlidir. Bu, istemcilerin sertifika durumunu hızlıca kontrol etmesini sağlar.

vault write pki/config/urls issuing_certificates="http://127.0.0.1:8200/v1/pki/ca" crl_distribution_points="http://127.0.0.1:8200/v1/pki/crl"

Adım 2: Intermediate CA Kurulumu

Root CA'yı doğrudan servis sertifikaları için kullanmak yerine, bir Intermediate CA oluşturmak en iyi güvenlik uygulamasıdır. Bu, Root CA'nın gizliliğini ve güvenliğini artırır.

# Yeni bir PKI secrets engine'ı 'pki_int' yolu üzerinde etkinleştirin.vault secrets enable pki_int# Intermediate CA için bir CSR (Certificate Signing Request) oluşturun.vault write pki_int/intermediate/generate/internal common_name="my-organization-intermediate-ca" ttl="43800h" csr_format="pem" > intermediate_csr.json# Root CA kullanarak bu CSR'ı imzalayın. Oluşan sertifikanın rolünü ve TTL'ini belirtin.vault write pki/root/sign-intermediate csr="$(cat intermediate_csr.json | jq -r .data.csr)" common_name="my-organization-intermediate-ca" ttl="43800h" > signed_intermediate.json# İmzalanmış sertifikayı Intermediate CA'ya import edin.vault write pki_int/intermediate/set-signed certificate="$(cat signed_intermediate.json | jq -r .data.certificate)"

Adım 3: Sertifika Rolleri ve Yetkilendirme

Servislerin veya uygulamaların sertifika talepleri için belirli roller tanımlamak, Vault'un yetkilendirme mekanizmasının gücünden faydalanmanızı sağlar. Bu roller, hangi alan adlarının (common_name/alt_names) kabul edileceği, sertifika geçerlilik süresi (TTL) ve diğer kısıtlamaları belirler.

# 'my-app-role' adında bir rol tanımlayın. Bu rol, 'internal.dev' alan adıyla sertifika oluşturmaya izin verir.vault write pki_int/roles/my-app-role allowed_domains="myapp.internal.dev,otherapp.internal.dev" allow_subdomains=true max_ttl="720h" enforce_hostnames=false key_type="rsa" key_bits="2048"

Adım 4: Sertifika Oluşturma ve Yönetimi

Tanımlanmış roller aracılığıyla servisler, uygulamalar veya kullanıcılar için kolayca sertifika oluşturulabilir. Vault, bu sertifikaların yaşam döngüsünü (yenileme, iptal) yönetmek için de API'ler sunar.

# 'my-app-role' rolünü kullanarak 'myapp.internal.dev' için bir sertifika oluşturun.vault write pki_int/issue/my-app-role common_name="myapp.internal.dev"# Oluşan sertifikayı ve özel anahtarı alın.vault read pki_int/cert/your_serial_number_here# Bir sertifikayı seri numarası ile iptal edin.vault write pki_int/revoke serial_number="your_serial_number_here"

Üretim Ortamında Gerçek Senaryolar

Microservice mTLS İletişimi

Bir Kubernetes ortamında çalışan mikroservisler arasında güvenli mTLS iletişimi sağlamak için Vault PKI kritiktir. Örneğin, bir servis ağı (service mesh) olan Istio veya Linkerd ile entegrasyon, her bir pod için otomatik olarak kısa ömürlü (short-lived) sertifikalar oluşturup dağıtabilir. Envoy proxy'leri, Vault Agent'lar veya özel init-container'lar, başlatma sırasında ilgili servisin adına Vault'tan sertifika talep eder ve bu sertifikalarla güvenli iletişim kurar. Sertifikaların kısa ömürlü olması (örneğin 24 saat), bir sertifikanın tehlikeye girmesi durumunda zararı minimumda tutar ve Vault'un otomatik yenileme yetenekleri sayesinde operasyonel yük azalır.

CI/CD Pipeline Entegrasyonu

DevOps süreçlerinde, CI/CD pipeline'ları sırasında geçici sertifikalar oluşturmak yaygın bir gereksinimdir. Örneğin, bir test ortamı dağıtılırken, Vault PKI üzerinden bu test ortamındaki servisler için geçerli, ancak kısa süreli sertifikalar oluşturulabilir. Dağıtım tamamlandığında ve testler bittiğinde, bu sertifikalar otomatik olarak iptal edilebilir. Bu yaklaşım, geliştirme ve test süreçlerinde bile güvenlik standartlarını korurken, manuel sertifika yönetiminin getirdiği gecikmeleri ortadan kaldırır.

Otomatik Sertifika Yenileme

Sertifika yenileme süreçleri genellikle en çok göz ardı edilen ve en çok kesintiye neden olan operasyonlardan biridir. Vault PKI ile bu süreç tamamen otomatize edilebilir. Vault Agent, bir istemci uygulamasının veya servisin yanına yerleştirilerek, sertifikaların süresi dolmadan önce Vault'tan otomatik olarak yeni sertifikalar talep edip bunları uygulamaya sunabilir. Bu, sertifika son kullanma tarihlerinden kaynaklanan kesintileri ortadan kaldırır ve operasyonel ekiplerin yükünü önemli ölçüde azaltır.

Sonuç

HashiCorp Vault PKI Secrets Engine, modern altyapıların güvenlik gereksinimlerini karşılamak için vazgeçilmez bir araçtır. Dahili bir CA kurma, sertifika yaşam döngüsünü otomatikleştirme ve güçlü yetkilendirme mekanizmaları sunarak, servisler arası güvenli iletişimi ve kimlik doğrulamayı basitleştirir. Manuel süreçlerin neden olduğu riskleri ortadan kaldırırken, operasyonel verimliliği artırır ve siber güvenlik duruşunuzu güçlendirir. Üretim senaryolarında, Vault PKI'nın esnekliği ve otomasyon yetenekleri, karmaşık dağıtık sistemlerde dahi güvenli bir temel oluşturulmasını sağlar.

← Blog Listesine Dön