Bulut bilişimde hassas verilerin güvenli bir şekilde saklanması ve yönetilmesi, modern uygulama geliştirme ve sistem yönetimi için hayati...
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.
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:- Kimlik (Identity): Kullanıcı, servis sorumlusu (service principal) veya uygulama gibi Azure Active Directory'de tanımlı bir kimlik.
- İ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
- Azure portalında ilgili Key Vault’a gidin.
- Sol menüden Erişim İlkeleri (Access Policies) seçeneğini seçin.
- Erişim İlkesi Ekle (Add Access Policy) butonuna tıklayın.
- Anahtar, Sır veya Sertifika İzinleri (Key, Secret or Certificate Permissions) bölümünden uygun izinleri seçin.
- Seçili Asıl (Selected Principal) alanında erişim izni verilecek kullanıcı, uygulama veya grubu seçin.
- 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.