Azure Ortamlarının Azure Policy ile Yönetilmesi

Azure Policy Nedir ?

Sahip olduğunuz Azure ortamı büyüdükce, kaynakları oluşturmak ve yönetmek için diğer kullanıcılarada bu kaynaklar üzerinde çesitli yetkiler vermeniz gerekebilir. Azure Role Based Access Control (RBAC) ile kullanıcılara kaynak gruplar üzerinde çeşitli kaynaklar için (Azure VM, SQL, Backup Vault) yetkilendirmeler tanımlayabilirsiniz. RBAC ile yapacağınız bu yetkilendirmeler Azure üzerindeki Built-in grupların sahip olduğu yetkilendirmeler dahilinde olacaktır (Owner, Backup Contributor, Virtual Machine Contributor gibi.) yada dilerseniz Custom Roleler ile bu yetkilendirmeleri özelleştirebilirsiniz ancak RBAC ile bir kullanıcıya kaynak grubu içerisinde VM oluşturma yetkisi verdiğinizde oluşturabileceği VM’in hangi boyut olabileceğini sınırlandıramazsınız. Kısaca A Serisi bir VM oluşturma yetkisine sahip olan bir kullanıcı N serisi GPU’lu bir VM’de oluşturabilir .

Azure Policy ile bu durumun önüne geçip kaynak grubu ve Azure üyeliklerinde bir kullanıcının ne yapabileceğini yada yapamayacağını tanımlayabilirsiniz.

Bir Azure Üyeliği yada Kaynak Grubuna Azure Policy uygulayabilmek yada yeni bir policy oluşturabilmek için aşağıdaki yetkilere sahip olmanız gerekmektedir;

      • “Microsoft.Authorization/policyassignments/write”
      • “Microsoft.Authorization/policydefinitions/write”

Not: Bu yetkiler varsayılan olarak Owner rolünde bulunmaktadır.

Azure Policy Definitions 

Azure Policy Yönetimi için Azure Portal > All Services > Azure Policy > Definitions yolunu takip edebilirsiniz.

Azure Policy Nedir ?

Definitions (Tanımlamalar) kısmında Initiative ve Policy adında 2 tür tanımlama bulunmaktadır.

Policy; bireysel olarak oluşturulmuş policy’leri yani kurallarımızı belirtir. Initiative; ise birden fazla policy’nin gruplanmış halidir. On-Premises’den alışkın olduğumuz GPO yapısındakine benzer tek bir policy altında birden fazla tanımlama olması gibidir. 

Azure Policy içerisidendeki tanımlamalar Azure Üyeliklerine (Subscription), Yönetilen Gruplara (Management Groups) ve Kaynak Gruplarına (Resource Group) Azure Portal, PowerShell ve Azure CLI ile atanabilir. Azure policy içerisindeki Built-in tanımlamaları kullanabileceğiniz gibi JSON (JavaScript Object Notation) formatında kendi özel tanımlamalarınızıda oluşturabilirsiniz.

Test olarak Azure üyeliğimiz altında sadece Basic_A0 ve A1 size VM’leri oluşturulmasına izin veren bir policy oluşturalım. 

Azure Policy Nedir ?

Assing Policy diyerek başlıyoruz sonrasında aşağıdaki tanımlamaları yapıyoruz;

      • Scope: Policy’in uygulanacağı Yönetim Grubu, Azure Üyeliği yada Kaynak Grubu.
      • Exclusion: Spoce altında Policy’in uygulanmasını istediğiniz kaynakları seçiyorsunuz. İligli policy’yi Azure üyeliği altındaki tüm kaynak gruplara uygulamak istemeyebilirsiniz. Azure Policy Active Directory GPO’da olduğu gibi uyguladığınız kaynaklar altındaki tüm diğer kaynaklara uygulanır. Yani bir Azure üyeliğine uyguladığınız Azure Policy tüm alt kaynak gruplarına uygulanacaktır.

Allowed Virtual Machine SKUs

Policy Defination altındaki Built-in tanımlamalardan Allowed Virtual Machine SKUs isimli policy’yi seçiyoruz.

Azure Policy Nedir ?

Son olarak Parameters kısmından oluşturulmasına izin vermek istediğimiz Azure VM SKU’larını seçiyoruz ve  Assing diyerek bitiriyoruz.

Bir kaç sanıiye sonra Assignments kısmında atadığınız policy’i görebilir, Compliance kısmından atamış olduğunuz policy’ye uygun olmayan kaynakları inceleyebilirsiniz.

Sonrasında D serisi bir VM oluşturmak isteyen kullanıcılara aşağıdaki gibi bir hata ile karşılacaktır.

“Resource “VMNAME” was disallowed by policy (Code:RequestDisallowedByPolicy)”

Azure Policy Nedir ?

 

En başta söylediğimiz gibi Built-in Policy tanımlamalarının yetersiz kaldığı durumlarda Custom (Özel) policy’ler oluşturabilirsiniz.

Custom Policy’ler oluşturabilmek için kendi JSON tanımlamanızı yazabilir yada diğer bir yöntem olarak Github repository’den policy template’lerini kullanabilirsiniz.

JSON formatında oluşturacağınız bir Azure Policy aşağıdaki elementlerden oluşur:

      • mode
      • parameters
      • displayname
      • description
      • policyrule

Parametre ve Policy Rule ayrıntıları için buradan yararlanabilirsiniz.

Son olarak; Azure Policy servisi şuan için ücretsiz olarak sunulmaktadır.

Faydalı olması dileğiyle.

Azure Policy Nedir ?, Azure Governance, Azure Policy Defination