Microsoft Azure Policy Kavramı ve Politika Atama Uygulama Adımları
“ Azure Policy “ yani “ Azure Politikası “ olarak anılmaktadır. Organizasyon ortamınızda oluşturduğunuz yada oluşturacağınız kaynaklarınız için kullanıcı hatalarını engellemek ve ortamınızı kontrollü şekilde uygulanmasını talep ettiğiniz uyumluluk veya denetim kurallarınızı uygulamanıza imkan sağlayacak birçok politikaların tanımlanmasını sağlayan hizmettir. Azure Policy , bu sayede ortamınızdaki konfigürasyon adımlarını kullanıcıların tercihlerinin aksine tanımlanmış olan kurallardan sapmaların önüne geçilmesini sağlamaktadır. Azure ortamında ücretsiz sunulan bir servistir.
Azure Policy , Azure Cloud uyumluluğunu en üst zirveye çıkarmak , Yanlış ve tavsiye edilmeyen konfigürasyonların önüne geçmek ve tek tip kaynak Govarnance yani yönetişim planınızın uygulanmasını desteklemektedir.
Azure Policy , Organizasyonunuzun Govarnance yani yönetişim verilerinin tek bir yerde muhafaza edilmesini ve organizasyonunuzun bulut ortamındaki kullanım harcamalarınızı kontrol ederek optimize edilmesini sağlamaktadır.
Azure Policy hizmetinin en yaygın kullanılan örneklerini maddeler halinde sıralayarak belirtmek gerekirse;
- Kaynak Yasaklama
- Coğrafi Uygunluk
Olarak belirtebiliriz.
Kaynak Yasaklama ; Azure ortamınızda kaynakların oluşmasını yasaklayabiliriz. Yani Maliyetleri kontrol etmek için belirli kaynakların, belirli SKU’ları önlemek gibi şeyler yaptığımızda oluşturulacak Sanal Makineleri veya sadece bir hizmeti tamamen kısıtlamak gibi işlemler yapılabilmektedir.
Coğrafi Uygunluk ; Azure politikalarımız içinde izin verilen konumlarda , Kaynaklar oluşturulmasını sağlayabiliriz. İzin verilmeyen konumlarda kaynak oluşturma işlemi başarısız olmaktadır.
Şimdi Azure Politika Bileşenlerini sıralayarak , açıklayalım :
- Politika Tanımları
- Politika Ataması
- Giriş Tanımı
Politika Tanımlarımız ; Uyum amacıyla oluşturduğumuz politika tanımlarımızda neyi izleyeceğimizi tanımlamak için kullandığımız gerçekleşecek eylemleri tanımlama işlemleridir. Bazı eylemleri denetlemek veya hatta reddetmek gibi şeyler yapabiliriz. JSON biçiminde tanımlanan kurallara verilen isimdir.
Politika Ataması ; Politika tanımladığımızda onu bir Scope’a atamamız gerekmektedir ve Politika atamasının geldiği yer burasıdır. Azure Cloud içinde Management Group yani Yönetim Grupları , Subscrptions yani Abonelikler , Resource Groups yani Kaynak Grupları hatta bireysel kaynaklara atama yapabilirsiniz.
Girişim Tanımı ; Politikaların bir koleksiyonu olan Tek bir politikadan ziyade birlikte uyarlanmış Tekil bir işlev elde etmek için Giriş tanımları ile amacımız ne olursa olsun yani tekil politikalar uygulamak yerine , uygulamamıza izin verecek bir girişim oluşturabilirsiniz. Amacı ; Tüm politikaları ortak bir hedefe ulaştırmak için bir araya getirmektedir.
Azure Politika tanımlarını ve Assign yani atama işlemlerini Azure Portal , Powershell , CLI ve Azure Resource Manager Template’lerini kullanarak ortamınızda oluştururak , devreye alabilirsiniz.
O zaman bu işlemleri devam ettirmek için Azure Portal ekranını inceleyelim :
İlk olarak Azure Portalda Arama cubuğuna ” Policy “ yazarız ve ardından “ Policy “ servisi seçeneğini seçeriz.
“ Policy “ hizmeti ekranına geldiğimizde “ Overview “ seçeneğini seçtiğimizde ilgili ekranda Organizasyonumuzun içindeki Genel Kaynak Uyumluluğu yanı sıra herhangi bir kaynağımızın uyumlu olup olmadığını grafiksel halde görmüş oluruz. Eğer Azure ortamında Politikalarımız olsaydı uyumlu olup olmadığını görüyor olacaktık.
“ Overall resource compliance “ bölümü altında ortamınızda Uyumluluk yüzdesini görüyor olursunuz.
“ Non-compliant initivaties “ bölümü altında ise ortamınızda uyumlu olmayan girişimleri görürsünüz.
“ Non-compliant policies “ bölümü altında ise ortamınızda uyumlu olmayan politika adedini görürsünüz.
“ Policy “ ekranında “ Authoring “ bölümünde “ Definitions “ seçeneğini seçtiğinizde Tanımlama bölümüne gideriz. Bu alanda Azure ortamınızdaki Tüm Politikaları yani bir anlamda “ Built-in Policy “ yani Yerleşik ilkelerimizi görmüş oluruz. Bunlar NIST , ISO27001 ve birden çok adından söz edebileceğimiz Regülasyon ve uyum standartlarına uygun politika tanımları olarak geçmektedir.
Bu regülasyonları kısaca açıklamak gerekirse ;
NIST ( National Instute of Standarts and Technology ) , Ulusal Standartlar ve teknoloji Enstitüsüdür. Çeşitli Meslekler için, ISO’nun birçok endüstriyi ve standartı kapsadığı yer olarak geçmektedir. Fakat NIST tamamen teknoloji endüstrisine odaklanmaktadır.
ISO Standart, Uluslararası Standardizasyon kuruluşudur ve birçok farklı uyumluluk kategorisine sahiptirler. Genel olarak Kaliteye uygunluk ve müşteriye memnuniyet için ISO 9001 :2008 yada 27001 olan sertifika örnekleri verilebilmektedir. Uyumluluk için başka ISO standartları da mevcuttur.
Sadece Regülasyon taraflı politikalar değil , Sanal Makineleriniz için uygulanabilecek Built-in politikalarda yer almaktadır. Bunları ortamınızın ihtiyacına göre Azure ortamında default gelen politikaları kullanabilir veya kendi ihtiyaçlarınıza uygun custom politikalar oluşturmanızda mümkün olmaktadır.
Azure organizasyonlarında ortamlardaki güvenliği arttırabilmek için gerçek senaryolarda tercih edilen politikaları sıralamak gerekirse ;
- Allowed Location ( Bunu bu makalemizde ilerleyen sayfalarda uyguluyor olacağız. )
- Azure Backup should be enabled for Virtual Machine
- Windows Virtual machines should have Azure Monitor Agent İnstalled
- Network interfaces should not have public Ips
- Disk Encryption should be applied on virtual machines
Bunlarıda sıraladığımıza göre artık örnek olarak vereceğimiz “ Allowed Location “ politikası ile ilerleyerek Azure Cloud ortamında politika ataması gerçekleştirme adımlarına başlayabiliriz.
Yukarıdaki Filtreleme araçları ile Tanımlamaları Kategorize ederek veya arayarak Politika Tanımlarını filtreleyebiliyoruz.
Örnek olarak “ Search ” kısmına ” Location “ yazarak yukarıda belirtmiş olduğumuz ” Allowed location “ politikasını görmüş oluruz.
Bu politikayı tanımlayan JSON’dur. Display Name yani Görünen Ad ve Politikanın Açıklamasını , Politika tiplerini görürüz. Politika Tipinin Built-in Policy olduğunun bilgisini vermektedir. Bu Politika , Konumları kısıtlamamızı sağlamaktadır. Kaynaklarımızı nereye dağıttığımızı yani bize organizasyonumuz için bir coğrafi uygunluğunun onayını vermektedir ve Listeleyebileceğimiz parametrelerimiz mevcut yani Kaynaklarımızın dağıtılması için izin vereceğimiz izin verilen lokasyonlar mevcuttur.
Politika JSON tanımını gözden geçirdikten sonra Politikayı devreye alabilmek yukarıdaki seçenek olarak ” Assign “ seçeneğini seçeriz.
Bu politikayı azure ortamımızdaki herhangi bir kapsama atayacağız. Management Group olarak aşağıdaki Subscriptionlarımızı listeleriz. Bu Subscription altında bulunan politikanın uygulanmasını istediğimiz Resource Grubumuzu seçeriz.
” Scope “ alanında seçmiş olduğumuz tüm işlemleri tamamladıktan sonra ” Select “ seçeneğini seçeriz.
” Exclusions “ alanında ise; Bu politikamız için herhangi bir istisnayı da belirleyebilir ve bu politikayı exclude etmek yani hariç tutma işlemi gerçekleştirmek için Resource seçebilirsiniz. Bu alanda herhangi bir konfigürasyonumuz bulunmamaktadır. Bunun için herhangi bir işlem gerçekleştirmiyor olacağız.
“ Assignment name “ alanında politika atamamızın ismini ilgili kutucuğa yazarız.
“ Description “ alanında bu politika hakkında hatırlayabileceğiniz ve neden bu politika ortamınızda uygulanıyor ? bunu detaylıca veya kısaca yazabilirsiniz.
“ Policy Enforcement “ alanında Politikanın zorlama modu “ Disabled “ olarak seçildiğinde politika uygulanmaz. Yani bir anlama politikayı reddetmiş olursunuz. Onun için Politikanın uygulanmasını istiyorsanız “ Enabled “ seçeneğini seçerek devam etmelisiniz.
“ Assigned by “ alanında Politikayı uygulayan Bulut Sistem Yöneticisinin isim ve soyisim bilgisi yazmaktadır.
Ardından ” Basics “ adımında işimiz bittiğine göre diğer adım olarak ” Parameters” adımına geçmek için ” Next “ seçeneğini seçerek devam ederiz.
“ Parameters “ adımında ” Allowed Locations “ kısmına geldiğimizde seçmiş olduğumuz Kapsam dahilinde oluşturabileceğimiz konumları seçeriz. Biz bu Lab ortamımızda ” West US “ bölgesini seçerek devam ederiz. ( Yapınıza veya isteğinize göre seçenekleri çoklu olarak seçebilirsiniz. Herhangi bir sınır bulunmamaktadır )
“ Remendiation “ adımında ise Azure ortamımızdaki var olan kaynaklarımızın bu atama yaptığımız politika kuralına uymuyanlar mevcut ise bu kaynaklarımızın politikalarının düzeltilmesi veya uyumlu duruma getirilmesine olanak sağlamaktadır. “ Managed Identity “ bölümünde bu düzeltmeyi sağlayacak komutları işleme alacak yetkili hesaba ilişkin konfigürasyonları gerçekleştirmekteyiz. Burada herhangi bir işlem sağlamayacağım için bir sonraki adıma geçmek için “ Next “ seçeneğini seçeriz.
“ Non-compliance message “ adımında ise atamış olduğumuz politikamız için diğer bulut sistem yöneticileri veya kullanıcıları için onların hatırlayabileceği uyarı niteliğinde veya bilgilendirici olarak mesaj almasını sağlayabilirsiniz. İlgili mesajı yazarak hata alındığı zaman ayrıntılarda bu mesajın görüntülenmesini sağlayabilirsiniz.
Oluşturma işleminin başlaması için ” Create “ seçeneğini seçerek ilerleriz.
Oluşturma işlemleri başarıyla sağlanmıştır. Bu Politikanın ortamımızda geçerli olabilmesi yani atama işlemimin yaklaşık 30 dakika süreceğinin bilgisini görürüz.
Azure Portaldan “ Policy “ hizmeti ekranına geri dönerek “ Authoring “ bölümünden “ Assignments “ seçeneğini seçerek “ Allowed locations “ bölümünde gerçekleştirmiş olduğumuz atama objesini görmüş oluruz.
30 Dakika bekledikten sonra ; Sanal Makine oluşturma işlemini deneriz. Sanal Makine oluşturma işlemi için Azure Portal üzerinden Arama çubuğundan ” Virtual Machine “ seçeneğini seçerek devam ederiz.
Politikamızı deneme amacıyla Sanal Makinemizi oluşturmak için ” Create “ seçeneğine tıklayarak ” Virtual Machine “ seçeneğini seçeriz.
Sanal Makinemiz için ” Resource Group “ alanımız için Politika tanımı gerçekleştirdiğimiz ” RG_WestUS “ kapsamında işlem sağladık. Sanal makine İsmini yazarak , ” Region “ alanına geldiğimizde Politika Tanımında belirlemiş olduğumuz ” West US “ Bölgesi dışında seçim yaptığımız için Bu Region’da herhangi bir kaynak oluşturulamayacağının uyarısını verdiğini görürüz.
” Region “ alanını ” West US “ şeklinde seçtiğimizde herhangi bir uyarı veya hata ile karşılaşmadığımızı görmüş oluruz.
Bir kapsam bazında politika oluşturduğumuz görmüş oluruz. Böylece politikalarımızı tanımlamış oluruz. Ardından Test için Sanal Makinemizin oluşturulması için “ Create “ seçeneğini seçerek Sanal Makinemizin oluşturma işlemlerine başlarız.
Sanal makinemiz dağıtım aşamasındadır.
Oluşturma işlemleri başarıyla sağlanmıştır.
Gerçekleştirmiş olduğumuz politika atamasının uygulanması işlemi tamamlandıktan sonra compliant durumunun yeşil renkte ve uygulanmış olduğunu görürüz.
Makalemi zaman ayırıp okuduğunuz için çok teşekkür ederim. Diğer makalelerimde görüşmek üzere.
Faydalı olması Dileğiyle.
Eline sağlık.
Teşekkür ederim Hakan Hocam.