0Pricing
Azure Fundamentals · Ders

Azure Policy

Adlandırma kurallarını, izin verilen kaynak türlerini ve konum kısıtlamalarını abonelik veya kaynak grubu kapsamına otomatik olarak uygulamak için Azure Policy tanımları yazıp atayın.

Azure Policy, CoddyKit'te ücretsiz bir Azure Fundamentals dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Azure Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Azure Fundamentals kursu toplamda 4 dersten oluşur.

Azure Policy Nedir?

Azure Policy, Azure kaynaklarının yapılandırmasını denetleyen veya inceleyen ve policy definitions olarak adlandırılan kuralları tanımlamanıza, atamanıza ve yönetmenize olanak tanıyan bir yönetişim hizmetidir. Eylemleri kimin gerçekleştirebileceğini denetleyen RBAC'nin aksine Azure Policy, ortaya çıkan kaynak yapılandırmasının ne olmasına izin verileceğini denetler. Bu hizmeti adlandırma kuralları, onaylanmış kaynak türleri ve gerekli güvenlik yapılandırmaları gibi kurumsal standartları zorunlu kılmak için kullanırsınız.

Policy Tanımları

Bir policy definition, bir kaynağa uygulanacak bir koşulu ve koşul karşılandığında uygulanacak bir etkiyi tanımlayan JSON belgesidir. Azure, yaygın senaryoları kapsayan yüzlerce yerleşik policy definition sağlar. Yerleşik policy'ler gereksiniminizi karşılamadığında özel policy definitions de oluşturabilirsiniz. Policy definitions yeniden kullanılabilir nesnelerdir ve etkili olmadan önce bir kapsama atanmaları gerekir.

// Example built-in policy: require a specific tag on all resources
// Policy definition logic (simplified):
{
  'if': {
    'field': 'tags[Environment]',
    'exists': 'false'
  },
  'then': {
    'effect': 'deny'
  }
}

Policy Etkileri

Bir policy definition içindeki etki, policy koşulu tetiklendiğinde ne olacağını belirler. Temel etkiler şunlardır: Deny — policy'yi ihlal eden kaynak oluşturma veya güncelleme işlemini engeller; Audit — işleme izin verir ancak uyumluluk raporuna bir uyarı kaydeder; Append — oluşturulmadan önce kaynağa gerekli alanları (etiketler gibi) ekler; Modify — mevcut veya yeni kaynaklardaki bir özelliği değiştirir; DeployIfNotExists — koşul karşılanmadığında ilişkili bir kaynak dağıtır (örneğin her VM'ye bir tanılama uzantısı dağıtır).

Policy Ataması

Bir policy assignment, bir policy definition'ı belirli bir kapsama uygular: management group, abonelik veya resource group. Bu kapsam içindeki (ve alt kapsamlarındaki) tüm kaynaklar, atanan policy'ye göre değerlendirilir. Atamalar parametreler içerebilir; örneğin, izin verilen Azure bölgelerini kısıtlayan bir policy, farklı management groups'larda farklı bölge listeleriyle aynı definition atanabilecek şekilde parametreleştirilebilir.

# Assign a built-in policy to restrict allowed locations
az policy assignment create \
  --name 'allowed-locations' \
  --policy 'e56962a6-4747-49cd-b67b-bf8b01975c4c' \
  --scope /subscriptions/<sub-id> \
  --params '{"listOfAllowedLocations": {"value": ["eastus", "westeurope"]}}'

# List all policy assignments in a subscription
az policy assignment list \
  --scope /subscriptions/<sub-id> \
  --output table

Initiative Tanımları (Policy Kümeleri)

Bir initiative definition (policy set olarak da adlandırılır), birden fazla ilişkili policy definition'ı tek bir atanabilir pakette gruplandırır. 20 ayrı policy atamak yerine tek bir initiative atarsınız. Azure; ISO 27001, NIST SP 800-53, Azure Security Benchmark ve PCI DSS gibi uyumluluk çerçeveleri için yerleşik initiative'ler sağlar. Örneğin CIS Microsoft Azure Foundations Benchmark initiative'ini atadığınızda aboneliğiniz aynı anda 180'den fazla güvenlik denetimine göre değerlendirilir.

# Assign the Azure Security Benchmark initiative
az policy assignment create \
  --name 'azure-security-benchmark' \
  --policy-set-definition '1f3afdf9-d0c9-4c3d-847f-89da613e70a8' \
  --scope /subscriptions/<sub-id>

Uyumluluk Raporlama

Bir policy atandıktan sonra Azure, kapsamdaki mevcut tüm kaynakları değerlendirir ve bir uyumluluk raporu oluşturur. Rapor; genel uyumluluk yüzdesini (uyumlu kaynaklar / toplam kaynaklar), her kaynağın uyumluluk durumunu ve hangi belirli policy koşullarının başarısız olduğunu gösterir. Policy initiative'ine, kapsama veya kaynak türüne göre filtreleme yapabilirsiniz. Uyumlu olmayan kaynaklar, ihlal ettikleri policy kuralıyla birlikte listelenerek düzeltme işlemlerine yol gösterir.

# Get policy compliance summary
az policy state summarize \
  --subscription <sub-id> \
  --output json

# List all non-compliant resources
az policy state list \
  --filter 'complianceState eq NonCompliant' \
  --output table

Düzeltme Görevleri

DeployIfNotExists veya Modify etkisine sahip policy'ler için Azure, mevcut uyumlu olmayan kaynakları uyumluluk durumuna getirmek üzere düzeltme görevleri oluşturabilir. Örneğin her VM'ye bir Log Analytics aracısı dağıtan bir DeployIfNotExists policy'si, bu aracıdan yoksun mevcut tüm VM'lere aracıyı yüklemek üzere tetiklenen bir düzeltme görevine sahip olabilir. Yeni kaynaklar oluşturulurken otomatik olarak düzeltilir; mevcut kaynaklar için açıkça bir düzeltme görevi gerekir.

# Create a remediation task for existing non-compliant resources
az policy remediation create \
  --name 'remediate-vm-logs' \
  --policy-assignment 'deploy-vm-log-analytics' \
  --resource-group myRG

Policy Muafiyetleri

Bazen belirli kaynakların bir policy kapsamı dışında bırakılması meşru olarak gerekebilir; örneğin değiştirilemeyen eski bir kaynak veya değişiklik isteğinde belgelenmiş onaylı bir istisna. Policy exemptions, policy'yi genel olarak kaldırmadan belirli bir kaynağı veya resource group'u bir policy assignment kapsamı dışında bırakmanıza olanak tanır. Muafiyetler isteğe bağlı bir son kullanma tarihi ve istisnanın nedenini belgelemek için bir kategori (Waiver veya Mitigated) içerir.

# Create a policy exemption for a specific resource group
az policy exemption create \
  --name 'legacy-rg-exemption' \
  --policy-assignment 'allowed-locations' \
  --scope /subscriptions/<sub-id>/resourceGroups/legacyRG \
  --exemption-category Waiver \
  --expires-on '2027-01-01T00:00:00Z' \
  --description 'Legacy workload pending migration'

DeployIfNotExists: Büyük Ölçekte Yapılandırma

DeployIfNotExists, en güçlü policy etkilerinden biridir. Bir kaynak gerekli ilişkili kaynak olmadan oluşturulduğunda (örneğin tanılama uzantısı olmayan bir VM), policy eksik bileşeni eklemek üzere otomatik olarak bir ARM şablonu dağıtımını tetikler. Bu sayede Azure Policy bir otomatik yapılandırma yönetimi aracı haline gelir; her VM'de izleme aracılarının, her depolama hesabında gelişmiş tehdit korumasının ve her SQL Database'de denetimin etkin olmasını sağlar.

Yaygın Policy Kullanım Senaryoları

Kuruluşlar Azure Policy'yi birçok yönetişim senaryosunda kullanır. Konum kısıtlamaları — veri egemenliği için kaynaklara yalnızca onaylanmış Azure bölgelerinde izin verin. İzin verilen kaynak türleri — pahalı veya onaylanmamış hizmetlerin dağıtılmasını önleyin. Etiket zorunluluğu — tüm kaynaklarda CostCentre ve Environment etiketlerini zorunlu kılın. SKU kısıtlamaları — Non-Production aboneliklerinde VM boyutlarını maliyete uygun katmanlarla sınırlayın. Güvenlik temelleri — en az TLS 1.2'yi zorunlu kılın, depolama hesaplarında genel ağ erişimini devre dışı bırakın ve özel uç noktaları zorunlu tutun.

Azure Policy ve RBAC Karşılaştırması

RBAC ve Azure Policy'nin farklı rollerini anlamak önemlidir. RBAC, işlemleri kimin gerçekleştirebileceğini denetler; kimliğe göre eylemlere izin verir veya eylemleri engeller. Azure Policy, kaynak yapılandırmasının ne olması gerektiğini denetler; işlemi kimin gerçekleştirdiğinden bağımsız olarak özellikleri değerlendirir ve zorunlu kılar. İyi yönetilen bir ortam için her ikisi de gereklidir: RBAC yalnızca yetkili kişilerin kaynak dağıtmasını sağlar, Azure Policy ise bu kaynakların yapılandırma standartlarına uygun olmasını sağlar.

Hızlı Kontrol

Bu dersteki Microsoft Azure Fundamentals (AZ-900) kavramlarına ilişkin anlayışınızı Test edin.

Ders Özeti

Bu derste şunları öğrendiniz: Azure Policy, herhangi bir kapsamda kaynak yapılandırmasını denetlemek için koşullar ve etkiler tanımlar, initiative definitions birden fazla policy'yi atanabilir tek bir uyumluluk paketinde birleştirir ve DeployIfNotExists, eksik bileşenler için büyük ölçekte otomatik yapılandırma zorunluluğu sağlar. Sırada Azure kaynaklarını korumak için kaynak etiketlerini ve kaynak kilitlerini inceleyeceğiz.

Sıkça Sorulan Sorular

“Azure Policy” dersi ücretsiz mi?

Evet — “Azure Policy” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Azure Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Azure Fundamentals kursu toplamda 4 dersten oluşur.

“Azure Policy” dersinde ne öğreneceğim?

Adlandırma kurallarını, izin verilen kaynak türlerini ve konum kısıtlamalarını abonelik veya kaynak grubu kapsamına otomatik olarak uygulamak için Azure Policy tanımları yazıp atayın. Azure Fundamentals ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Azure Fundamentals öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Azure Fundamentals, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Azure Policy” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Azure Fundamentals dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Azure Fundamentals dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yönetim Grupları ve Abonelikler
  2. Azure Policy
  3. Kaynak Etiketleri ve Kaynak Kilitleri
  4. Azure Blueprints ve Uyumluluk
← Azure Fundamentals Sayfasına Dön