Azure Key Vault Nedir?

Azure Portal'da Uygulama

Bulut bilişimde hassas verilerin güvenli bir şekilde saklanması ve yönetilmesi, modern uygulama geliştirme ve sistem yönetimi için hayati öneme sahiptir. Microsoft Azure’un sunduğu Azure Key Vault , bu ihtiyaçlara çözüm sunan güçlü bir hizmettir. Ancak, Key Vault içindeki Secrets, Keys ve Certificates erişimi kontrol etmek için doğru yapılandırmaların yapılması gerekmektedir. Bu yazıda, Azure Key Vault’ta erişim kontrolü için en yaygın yöntem olan Erişim Politikaları (Access Policies) bilgi vereceğim;

Azure Key Vault, uygulamalar, hizmetler ve sistemler için gerekli olan hassas verilerin (parolalar, API anahtarları, sertifikalar, şifreleme anahtarları vb.) güvenli bir şekilde saklanmasını ve erişimini sağlar. Temel olarak üç ana bileşeni vardır:

  • Secrets: Parolalar, bağlantı dizeleri gibi metin veya ikili veriler.
  • Keys: Şifreleme işlemleri için kullanılan asimetrik veya simetrik anahtarlar.
  • Certificates: SSL/TLS sertifikaları ve ilişkili özel anahtarlar.

Key Vault, bu öğelere erişimi sınırlamak ve denetlemek için iki ana yöntem sunar: Erişim Politikaları (Access Policies) ve Rol Tabanlı Erişim Kontrolü (RBAC – Role-Based Access Control)

Access Policies Nedir?

Erişim Politikaları, Azure Key Vault’ta sırlar, anahtarlar ve sertifikalara erişimi tanımlamak için kullanılan temel yapılandırma yöntemidir. Her bir politika aşağıdaki bileşenleri içerir:

  1. Kimlik (Identity): Kullanıcı, servis sorumlusu (service principal) veya uygulama gibi Azure Active Directory’de tanımlı bir kimlik.
  2. İzinler (Permissions): Bu kimliğin Key Vault öğeleri üzerinde hangi işlemleri yapabileceğini belirler.
    • Secrets için: Get, List, Set, Delete, Recover, Backup, Restore
    • Keys için: Get, List, Create, Update, Delete, Recover, Backup, Restore
    • Certificates için: Get, List, Delete, Create, Import, Update, Manage Contacts, Manage Issuers

Erişim politikaları, doğrudan Key Vault düzeyinde tanımlanır ve her bir öğe için ayrı ayrı yapılandırılabilir.

Erişim Politikaları Nasıl Çalışır?

Erişim politikaları, Azure Key Vault’ta izin yönetimini şu şekilde sağlar:

A. Kimliğe Dayalı Erişim

  • Erişim politikaları, belirli bir Azure AD kimliği (kullanıcı, uygulama veya grup) için tanımlanır.
  • Örneğin, bir geliştiriciye yalnızca sırları okuma izni verebilirsiniz.

B. Öğe Seviyesinde İzin Yönetimi

  • Sırlar, anahtarlar ve sertifikalar için ayrı ayrı izinler tanımlanabilir.
  • Örneğin, bir uygulamanın yalnızca sırları okumasine izin verilirken, bir güvenlik grubunun anahtarları yönetmesine izin verilebilir.

C. Hiyerarşik Yapı

  • Bir Key Vault’a tanımlanan tüm erişim politikaları, o Vault içindeki tüm öğelere uygulanır.
  • Ancak, her öğe için farklı izin kombinasyonları tanımlanabilir.

D. Erişim Kontrolü ve Güvenlik

  • Erişim politikaları, Azure AD kimlik doğrulama mekanizmalarıyla entegredir.
  • Kimlik doğrulaması başarılı olana göre, ilgili izinler uygulanır.

Erişim Politikaları vs. Azure RBAC

Azure Key Vault’ta erişim kontrolü için iki ana yöntem vardır:

Özellik
Erişim Politikaları (Access Policies)
Azure RBAC
Kapsam
Key Vault seviyesinde tanımlanır
Abonelik veya kaynak grubu seviyesinde tanımlanabilir
İzinlerin Tanımı
Secret, keys ve sertifikalar için ayrı ayrı yapılandırılabilir
Rol bazlı genel izinler sunar (örneğin, Key Vault Contributor)
Kullanım Kolaylığı
Daha esnek ve ayrıntılı kontrol sağlar
Daha basit, ancak daha az özelleştirilebilir
Uyum Süreci
Geleneksel ve yaygın kullanılan yöntemdir
Yeni ve gelişmekte olan bir yöntemdir
  • Erişim Politikaları: Hassas ve ayrıntılı erişim denetimi gerektiğinde tercih edilir.
  • Azure RBAC: Genel erişim rolleri tanımlanması gerektiğinde veya çok sayıda Key Vault yönetilmesi gerektiğinde tercih edilir.

Erişim Politikaları Oluşturma ve Yönetme

Azure portal, PowerShell veya Azure CLI kullanarak erişim politikaları oluşturabilir ve yönetebilirsiniz.

Azure Portal Üzerinden Erişim Politikası Oluşturma

  1. Azure portalında ilgili Key Vault’a gidin.
  2. Sol menüden Erişim İlkeleri (Access Policies) seçeneğini seçin.
  3. Erişim İlkesi Ekle (Add Access Policy) butonuna tıklayın.
  4. Anahtar, Sır veya Sertifika İzinleri (Key, Secret or Certificate Permissions) bölümünden uygun izinleri seçin.
  5. Seçili Asıl (Selected Principal) alanında erişim izni verilecek kullanıcı, uygulama veya grubu seçin.
  6. Ekle (Add) butonuna tıklayarak politikayı kaydedin.

PowerShell ile Erişim Politikası Yönetimi

# Erişim politikası oluşturma
Set-AzKeyVaultAccessPolicy -VaultName "MyKeyVault" `
    -UserPrincipalName "user@example.com" `
    -PermissionsToSecrets Get, List, Set `
    -PermissionsToKeys Get, List, Create

Azure CLI ile Erişim Politikası Yönetimi

# Erişim politikası oluşturma
az keyvault set-policy --name "MyKeyVault" \
    --upn "user@example.com" \
    --secret-permissions get list set \
    --key-permissions get list create

Tavsiyeler;

  • En Az Ayrıcalık İlkesi (Principle of Least Privilege): Kullanıcılara veya uygulamalara sadece ihtiyaç duydukları izinleri verin.
  • Düzenli İnceleme: Erişim politikalarını düzenli olarak gözden geçirin ve artık gerekli olmayan izinleri kaldırın.
  • İşlev Ayırımı (Separation of Duties): Kritik işlemler için farklı roller tanımlayın (örneğin, biri sadece okuma, diğeri yazma iznine sahip olabilir).
  • Denetim ve İzleme: Azure Monitor ve Azure Security Center ile erişim aktivitelerini izleyin.
  • Yedekleme ve Kurtarma: Erişim politikalarını düzenli olarak yedekleyin ve olağanüstü durumlar için kurtarma planı hazırlayın.

Azure Key Vault’ta Erişim Politikaları , secret , keys ve sertifikalara erişimi güvenli ve kontrollü bir şekilde yönetmenin en etkili yöntemlerinden biridir. Özellikle hassas verilere ayrıntılı erişim denetimi gerektiğinde bu yaklaşım, hem esnek hem de güvenli bir yapı sunar. Ancak, Azure RBAC gibi yeni yöntemler de gelişmekte ve bazı senaryolarda daha pratik çözümler sunmaktadır. Hangi yöntemi seçerseniz seçin, izin yönetiminde güvenlik , esneklik ve kullanılabilirlik dengesini korumak hayati öneme sahiptir. Erişim politikalarını oluştururken, her zaman test ortamında önceden simülasyon yapın. Gerçek ortamlarda değişiklikler öncesi tüm izinleri dikkatle gözden geçirin.