Email
Bize sorun

E-posta gönderin

Azure Key Vault

Azure Key Vault Nedir?

Azure Key Vault, Uygulamaların ve kullanıcıların secret yönetimini yapabılabilmesi için ortaya çıkmış bir servistir. Modern uygulamalarda genellikle, günümüz güncel saldırılarından ve açıklarından korunmak için uygulama içi secret tutulması önerilmiyor. Bunun için ise secretlerımızı yönetmek için bir Vault kullanmak mantıklı hale geliyor. Bu sayede yazılımı geliştiren kişilerin projeden ayrılması yada uygulama kaynak kodlarının ele geçirilmesi vb. Durumlarda bile güvenlik açığı olmuyor.

Azure Key Vault ile birlikte Secret, Key, ve Certificate yönetimi yapabiliyoruz. Uygulama içinde herhangi secretlerimiz için herhangi bir koruma algoritması geliştirmemize gerek kalmıyor bu sayede. Key vault servisi Authentication için Azure Active Directory (AAD) kullanmakta. Yetkilendirme için ise Rol Based Access Control (RBAC) kullanmakta. Bu sayede bir kullanıcıya bir secreti okuma yetkesi verebiliyoruz ama silme veya değiştirme yetkisi vermek zorunda kalmıyoruz. Bu yönetimin tabiki olmazsa olmazı bu servisin kullanım metriklerinede erişebiliyoruz. Azure Key Vault servisi bizim için hangi secret, key ne kadar kullanılmış nerelerden çağırılmış gibi metrikleri özetleyebiliyor. Bu logları istersek bir storage’a yazabilir istersek Azure monitörde dashboard haline getirebiliriz. Ayrıca Azure’un böyle bir servisinin olması diğer Azure servisleri ile entegre çalışması açısından bizim için büyük bir kolaylık sağlamakta. Tek bir onay ile birlikte diğer azure servisleriyle nasıl etkileşim içinde olacağını veya yetkilerini belirleyebiliyoruz.

Azure Key Vault Secrets

Key vaultumuzda genellikle secrets bölümü en çok kullanılan özellik olarak karşımıza çıkıyor. Secret olarak ise uygulamamızın connection stringleri, şifreleri veya tokenlarını barındabiliriz. Key vault secretleri şifreleri olarak saklar ve yönetir. Veri kayıt edildiği zaman Key Vault bu veriyi sekizli diziler (8 bit bayt) olarak saklar ve yönetir. Her biri maksimum 25k bayt boyutunda olur. Daha sonrasında bu secreti tekrar çağırabilmemiz için bize bir ID döndürür. Tabiki secretlerimizin güvenliğini arttırmak istersek Key Vault’un bu şifrelemesinin yanı sıra kendimizde uygulama içerisinden şifreli bir şekilde key vaulta göndererek güvenlik katmanımızı arttırabiliriz. Kullanıcı secret oluştururken isterse veri tipini belirtebilir. Bu veriyi çekerken ve yönetirken bizim için kolaylık sağlar.

Secret Özellikleri

Son Kullanım Tarihi(Expiration) : Bir secret oluştururken, bellir bir zamandan sonra bu secretin kullanımını kısıtlayabiliyoruz. Bu özellik default olarak sonsuza kadar erişilebilir olarak gelmekte.

Kullanım Zaman (Not Before) : Bir secreti oluşturduk ancak şuanda kimsenin kullanmasını istemiyorsanız bu özellik ile birlikte 1 hafta sonra kullanılabilir gibi bir kural koyabilirsiniz.

Erişilebilirlik : Bu özellik ile birlikte secret’iniz oluşturuldu, duruyor ancak kimsenin kullanmasını istemiyorsanız secret’ın erişilebilirliğini kısıtlayabilirsiniz.

Bunun yanı sıra secretin yaratılma tarihi ve değiştirilme tarihleri gibi parametreleride görüntüleyebiliyoruz.

Şifrelerimize Erişim Kontrolü

Azure Key Vault servisi için erişim kontrolü sadece o vault için sağlanır. Bunun anlamı X kişisine secret read yetkisi verirseniz tüm secretleri okuyabilir. Eğer bazı secretleri ayırmak istiyorsanız bunun için bu servisten birtane daha oluşturmanız gerekmekte. Genellikle burda senaryoya göre Key Vaultlar oluşturulması önerilir. Erişim Yetkileri : 

  • Get: Belirli bir secret’ı okuma
  • List: O key Vaultta tutulan tüm secretlerin bilgilerini getirme
  • Set: Secret Oluşturma
  • Delete: Secret Silme
  • Recover: Silinen bir secreti geri getirme
  • Backup: Key Vault’taki bir secretin yedeğini alma
  • Restore: Backup alınan bir secreti geri getirme

Key Vault Cheatsheet

Azure CLI’da kullanabileceğimiz Key Vault için bazı komutlar aşağıdaki gibidir :

Tüm Azure KV’leri listelemek = az keyvault list [–resource-group] [–subscription]

KV Silme = az keyvault delete –name

KV Yaratma = az keyvault create –name –resource-group –subscription –location –enable-soft-delete –tags

KV bilgileri getirme = az keyvault show –name –resource-group –subscription

Secret Bilgileri Getirme = az keyvault secret show –id –name –subscription –vault-name

Secretleri Listeleme = az keyvault secret list –vault-name

Silinen Bir Secretı Geri Getirme = az keyvault secret recover –id –name –subscription –vault-name

Secret Yaratma = az keyvault secret set –vault-name “<your-keyvault-name>” –name “MySecret” –value “Success!”

Secret Silme = az keyvault secret delete –id –name –subscripotion –vault-name

Key Bilgileri Getirme = az keyvault key show –id –name –subscription –vault-name

Keyleri Listeleme = az keyvault key list –vault-name

Key Recover Etme = az keyvault key recover –id –name –subscription –vault-name

Key Yaratma = az keyvault key create –name –vault-name

Key Silme = az keyvault key delete –id –name –subscripotion –vault-name

Key Vault Kullanım Örnekleri

Bir .Net Uygulamasında Key Vault’umuzdan bir secreti getirmek için istersek SDK kullanabilir istersek REST API çağırımlarını kullanabiliriz. SDK kullanım örneğinden kısaca bahsetmek gerekirse aşağıdaki 3 adet nuget pakedini uygulamamıza yükleyerek başlayabiliriz : 

Daha sonrasında ise Key Vaultumuza erişim için bir Service Accountu yaratıyoruz Azure Active Directory tarafında ve Service Account’umuzun bilgilerini environment variable olarak uygulamamızda belirliyoruz ;

Daha sonrasında ise controllerimizin içerisinde aşağıdaki gibi KV url’mizi oluşturuyoruz.

Bu adımdan sonra KV’miz için client’ımızı aşağıdaki gibi oluşturabiliriz ; 

Bu adımdan sonra ise istersek bir secret yaratabilir, istersek Vaultumuzdaki bir secreti aşağıdaki gibi uygulama içinde kullanabiliriz. 

Önceki Yazı

Building a Workflow in Microsoft Teams with Azure Bot Service

Sonraki Yazı

Azure Kullanılabilirlik Kümesi ve Kullanılabilirlik Alanı

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

YEPYENİ BİR DENEYİM İÇİN

Bizimle İletişime Geçin

Teknoloji sorunları hakkında endişelenmeyi bırakın. Sadece işinize odaklanın. İhtiyacınız olan teknolojiyi sizin için belirleyip, yönetelim.
Aradığınız yazıları görmek için yazmaya başlayın.
Çerez Bilgilendirmesi
Sitemizde kullanımı analiz etmek, içerik ve reklamları kişiselleştirmek, reklam kampanyalarının etkinliğini ölçmek ve ziyaret tercihlerinizi hatırlamak için çerezler kullanmaktayız. Çerezler hakkında detaylı bilgi için buraya tıklayın.
Tamam

Merhaba, size nasıl yardımcı olabiliriz?

Bize ulaşmak için buraya tıklayın.