{"id":119,"date":"2022-10-31T13:56:00","date_gmt":"2022-10-31T13:56:00","guid":{"rendered":"http:\/\/blog.firatyasar.com\/?p=119"},"modified":"2023-03-19T18:01:56","modified_gmt":"2023-03-19T18:01:56","slug":"azure-policies","status":"publish","type":"post","link":"https:\/\/blog.firatyasar.com\/?p=119","title":{"rendered":"Azure Policies"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"465\" src=\"\/wp-content\/uploads\/2023\/03\/image-11-1024x465.png\" alt=\"\" class=\"wp-image-125\" srcset=\"\/wp-content\/uploads\/2023\/03\/image-11-1024x465.png 1024w, \/wp-content\/uploads\/2023\/03\/image-11-300x136.png 300w, \/wp-content\/uploads\/2023\/03\/image-11-768x349.png 768w, \/wp-content\/uploads\/2023\/03\/image-11-660x300.png 660w, \/wp-content\/uploads\/2023\/03\/image-11.png 1364w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Bu b\u00f6l\u00fcmde Azure policies kullan\u0131m\u0131 ve nas\u0131l dizayn edilece\u011fi konular\u0131n\u0131 anlatmaya \u00e7al\u0131\u015faca\u011f\u0131m.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"522\" src=\"\/wp-content\/uploads\/2023\/03\/image-6-1024x522.png\" alt=\"\" class=\"wp-image-120\" srcset=\"\/wp-content\/uploads\/2023\/03\/image-6-1024x522.png 1024w, \/wp-content\/uploads\/2023\/03\/image-6-300x153.png 300w, \/wp-content\/uploads\/2023\/03\/image-6-768x392.png 768w, \/wp-content\/uploads\/2023\/03\/image-6-1536x783.png 1536w, \/wp-content\/uploads\/2023\/03\/image-6-660x337.png 660w, \/wp-content\/uploads\/2023\/03\/image-6.png 1702w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Bir \u00f6nceki makalemde Azure \u00fczerinde resource\u2019lar\u0131 ve resource group\u2019lar\u0131 taglar kullanarak nas\u0131l kategorize edebilece\u011finizi ele alm\u0131\u015ft\u0131m. Bu makalemde ise Azure \u00fczerinde governance model olu\u015ftururken kullanaca\u011f\u0131n\u0131z bir di\u011fer \u00f6nemli konfig\u00fcrasyon birimi olan Azure Policies\u2019i anlataca\u011f\u0131m. Eminim Azure Policies\u2019i kullanmaya ba\u015flad\u0131ktan sonra hayran kalacaks\u0131n\u0131z.<\/p>\n\n\n\n<p>Azure policies konusunu anlatmadan \u00f6nce bir ka\u00e7 soru ile konuyu netle\u015ftirmek istiyorum. \u00d6rne\u011fin Azure ortam\u0131n\u0131zda olu\u015fturulacak t\u00fcm kaynaklar\u0131n size en yak\u0131n olan Azure Region\u2019\u0131nda olu\u015fturulmas\u0131n\u0131 istiyorsunuz fakat platformu sizden farkl\u0131 bir \u00e7ok ki\u015fi de kullan\u0131yor ve t\u00fcm bildirimlerinize ra\u011fmen herkes kafas\u0131na g\u00f6re istedi\u011fi region\u2019da kaynak olu\u015fturuyor. <strong>Bu durumu \u00f6nlemek i\u00e7in ne yapars\u0131n\u0131z?<\/strong><\/p>\n\n\n\n<p>Cevap: Azure Policies konfig\u00fcrasyonu yapman\u0131z gerekiyor.<\/p>\n\n\n\n<p>Ya da ikinci bir soru ile devam edelim. Yine Azure platformunu birden \u00e7ok ki\u015fi kullan\u0131yor. Siz Azure platformunda olu\u015fturulan her resource i\u00e7in belli konfig\u00fcrasyonar\u0131n yap\u0131lmas\u0131n\u0131 istiyorsunuz. Yap\u0131lmad\u0131\u011f\u0131 taktirde manuel olarak sizin t\u00fcm resource\u2019lar\u0131 denetleyip konfig\u00fcre etmeniz gerekiyor. <strong>\u00d6rne\u011fin her resource\u2019un Name ve Departman taglar\u0131 ile olu\u015fturulmas\u0131n\u0131 zorunlu k\u0131lmak istiyorsunuz. Ne yapars\u0131n\u0131z?<\/strong><\/p>\n\n\n\n<p>Cavap: Yine Azure policies konfig\u00fcrasyonu yapman\u0131z gerekiyor.<\/p>\n\n\n\n<p>Yukar\u0131da belirtti\u011fim sorular\u0131 inceledi\u011finizde belirtilen ortamlarda denetim eksikli\u011fi oldu\u011funu kolayl\u0131kla g\u00f6rebilirsiniz. E\u011fer ortamda bir governance model olu\u015fturmak isteniyor ve Azure platformunu kullanan ki\u015filerin bu modele uyarak platformu kullanmalar\u0131n\u0131 istiyorsak Azure policies\u2019i bu modeli sa\u011flaman\u0131n bir ad\u0131m\u0131 olarak ortama entegre etmemiz gerekir.<\/p>\n\n\n\n<p>Policy\u2019ler i\u00e7erilerinde birden fazla kural i\u00e7erebilirken, tek bir kaynak \u00fczerine bir den \u00e7ok policy atamas\u0131 yap\u0131labilir. Policy\u2019ler subscription yada resource group seviyesinde atanabilir.<\/p>\n\n\n\n<p>\u015eimdi konunun paralelinde basit bir \u00f6rnek ile ilerleyerek anlatmak istiyorum. Bu sebeple subscription b\u00f6l\u00fcm\u00fcne gelip Policies se\u00e7ene\u011fini se\u00e7elim.<\/p>\n\n\n\n<p>Policies\u2019i se\u00e7tikten sonra definitions b\u00f6l\u00fcm\u00fcne gelelim. Bu b\u00f6l\u00fcme geldi\u011finizde bir \u00e7ok builtin definition listelenecektir. \u015eekildeki gibi search b\u00f6l\u00fcm\u00fcn\u00fc kullanarak belirli definition\u2019lara kolayl\u0131kla ula\u015fabilirsiniz. \u015eimdi basit olarak \u201cAllowed Location\u201d definition\u2019\u0131n\u0131 kullan\u0131p belirli bir resource group i\u00e7erisinde sadece izin verilen lokasyonda resource olu\u015fturulmas\u0131n\u0131 zorlayal\u0131m.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"306\" src=\"\/wp-content\/uploads\/2023\/03\/image-7-1024x306.png\" alt=\"\" class=\"wp-image-121\" srcset=\"\/wp-content\/uploads\/2023\/03\/image-7-1024x306.png 1024w, \/wp-content\/uploads\/2023\/03\/image-7-300x90.png 300w, \/wp-content\/uploads\/2023\/03\/image-7-768x230.png 768w, \/wp-content\/uploads\/2023\/03\/image-7-1536x460.png 1536w, \/wp-content\/uploads\/2023\/03\/image-7-660x198.png 660w, \/wp-content\/uploads\/2023\/03\/image-7.png 1604w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>A\u015fa\u011f\u0131daki \u015fekilde g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi, APPTEST isimli resource group i\u00e7erisinde sadece lokasyonu West Europe olan kaynaklar olu\u015fturulabilir. (Bu \u015fekildebelirtilen definition\u2019\u0131n se\u00e7ti\u011fimiz resource group \u00fczerine atama i\u015flemini de yapm\u0131\u015f oluyoruz. Burada resource group se\u00e7meden direkt subscription seviyesinde atama yapmak da m\u00fcmk\u00fcn)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"984\" src=\"\/wp-content\/uploads\/2023\/03\/image-8-1024x984.png\" alt=\"\" class=\"wp-image-122\" srcset=\"\/wp-content\/uploads\/2023\/03\/image-8-1024x984.png 1024w, \/wp-content\/uploads\/2023\/03\/image-8-300x288.png 300w, \/wp-content\/uploads\/2023\/03\/image-8-768x738.png 768w, \/wp-content\/uploads\/2023\/03\/image-8-660x634.png 660w, \/wp-content\/uploads\/2023\/03\/image-8.png 1324w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Yap\u0131lan i\u015flemin ard\u0131ndan atamay\u0131 yapt\u0131\u011f\u0131m\u0131z resource group i\u00e7erisinde lokasyonu West Central US olan kaynak olu\u015fturmak istedi\u011fimizde a\u015fa\u011f\u0131daki gibi hata al\u0131yoruz. Bu da policy\u2019mizin sa\u011fl\u0131kl\u0131 \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6steriyor.<\/p>\n\n\n\n<p>Policy\u2019nin olu\u015fturulmas\u0131n\u0131n ard\u0131ndan e\u011fer resource group alt\u0131ndaki t\u00fcm kaynaklar condition\u2019\u0131 kar\u015f\u0131l\u0131yorsa, policy a\u015fa\u011f\u0131daki gibi Compliant durumuna ge\u00e7ecektir.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"103\" src=\"\/wp-content\/uploads\/2023\/03\/image-9-1024x103.png\" alt=\"\" class=\"wp-image-123\" srcset=\"\/wp-content\/uploads\/2023\/03\/image-9-1024x103.png 1024w, \/wp-content\/uploads\/2023\/03\/image-9-300x30.png 300w, \/wp-content\/uploads\/2023\/03\/image-9-768x77.png 768w, \/wp-content\/uploads\/2023\/03\/image-9-1536x155.png 1536w, \/wp-content\/uploads\/2023\/03\/image-9-660x67.png 660w, \/wp-content\/uploads\/2023\/03\/image-9.png 1568w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Azure Policies ile governance model olu\u015ftururken kullanabilece\u011finiz bir \u00e7ok built-in policy\u2019de gelmektedir. Search ile arama yaparak istedi\u011finiz policy\u2019leri bulup istedi\u011finiz resource group yada subscription \u00fczerine atama yapabilirsiniz.<\/p>\n\n\n\n<p>Azure policies tan\u0131mlamalar\u0131 yap\u0131l\u0131rken JSON dili kullan\u0131l\u0131r. JSON kullan\u0131larak olu\u015fturulan policy\u2019ler i\u00e7in iki ad\u0131m vard\u0131r. \u0130lk ad\u0131m policy\u2019nin tan\u0131mland\u0131\u011f\u0131 definition a\u015famas\u0131d\u0131r. Bu i\u015flemin ard\u0131ndan da assign a\u015famas\u0131 definition s\u0131nucuna g\u00f6re uygulan\u0131r.<\/p>\n\n\n\n<p>Policy Definitions<\/p>\n\n\n\n<p>Define k\u0131sm\u0131 if ve then bloklar\u0131n\u0131 i\u00e7erir. If k\u0131sm\u0131 ko\u015fulu then k\u0131sm\u0131 ise ko\u015ful sonras\u0131ndaki sonucu execute eder. Policy\u2019ler i\u00e7erisinde bir den \u00e7ok IF ko\u015fulu da kullan\u0131labilir. Bunlar AND(ALLOF), OR(ANYOF) ve NOT operat\u00f6rleri ile birbirlerine ba\u011flan\u0131rlar. \u00d6rnek JSON definition format\u0131 a\u015fa\u011f\u0131daki gibidir.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"666\" src=\"\/wp-content\/uploads\/2023\/03\/image-10-1024x666.png\" alt=\"\" class=\"wp-image-124\" srcset=\"\/wp-content\/uploads\/2023\/03\/image-10-1024x666.png 1024w, \/wp-content\/uploads\/2023\/03\/image-10-300x195.png 300w, \/wp-content\/uploads\/2023\/03\/image-10-768x499.png 768w, \/wp-content\/uploads\/2023\/03\/image-10-660x429.png 660w, \/wp-content\/uploads\/2023\/03\/image-10.png 1504w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Policiy define i\u015flemi yap\u0131l\u0131rken desteklenen field t\u00fcrleri a\u015fa\u011f\u0131daki gibidir.<\/p>\n\n\n\n<ul><li>Name<\/li><li>Kind<\/li><li>Tags<\/li><li>Location<\/li><li>Type<\/li><li>Property Alias<\/li><\/ul>\n\n\n\n<p>Governance model olu\u015fturulurken kullan\u0131lmas\u0131 gereken bile\u015fenlerden birisi olan Policies\u2019i \u00f6zetlemi\u015f olduk. Umar\u0131m faydal\u0131 bir makale olmu\u015ftur.<\/p>\n\n\n\n<p>G\u00f6r\u00fc\u015fmek \u00dczere.<\/p>\n\n\n\n<p>F\u0131rat<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu b\u00f6l\u00fcmde Azure policies kullan\u0131m\u0131 ve nas\u0131l dizayn edilece\u011fi konular\u0131n\u0131 anlatmaya \u00e7al\u0131\u015faca\u011f\u0131m. Bir \u00f6nceki makalemde Azure \u00fczerinde resource\u2019lar\u0131 ve resource group\u2019lar\u0131 taglar kullanarak nas\u0131l kategorize edebilece\u011finizi ele alm\u0131\u015ft\u0131m. Bu makalemde ise Azure \u00fczerinde governance model olu\u015ftururken kullanaca\u011f\u0131n\u0131z bir di\u011fer \u00f6nemli konfig\u00fcrasyon birimi olan Azure Policies\u2019i anlataca\u011f\u0131m. Eminim Azure Policies\u2019i kullanmaya ba\u015flad\u0131ktan sonra hayran kalacaks\u0131n\u0131z. Azure\u2026 <span class=\"read-more\"><a href=\"https:\/\/blog.firatyasar.com\/?p=119\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":125,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/119"}],"collection":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=119"}],"version-history":[{"count":1,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/119\/revisions"}],"predecessor-version":[{"id":126,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/119\/revisions\/126"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/media\/125"}],"wp:attachment":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}