Öğretici: Azure İlkesi ile kod olarak GitHub

Kod Azure İlkesi bir iş akışı, ilke tanımlarınızı ve atamalarınızı kod olarak yönetmeyi, bu tanımları güncelleştirme yaşam döngüsünü denetlemeyi ve uyumluluk sonuçlarının doğrulama işlemini otomatikleştirmeyi mümkün hale sağlar. Bu öğreticide, bir yaşam döngüsü Azure İlkesi için GitHub özellikleri kullanmayı öğrenirsiniz. Bu görevler arasında şunlar yer alır:

  • İlke tanımlarını ve atamalarını GitHub
  • İlke nesneleri Azure'GitHub güncelleştirildi
  • GitHub eylemden uyumluluk taraması tetikleme

Mevcut kaynaklarınızı geçerli uyumluluk durumunu belirlemek için bir ilke atamak için hızlı başlangıç makalesinde bunun nasıl yapllları açıklayacaktır.

Ön koşullar

Nesne Azure İlkesi nesnelerini Azure portal

Bir ilke tanımını bir ilke Azure portal için şu adımları izleyin:

  1. Azure portalında Tüm hizmetler’e tıkladıktan sonra İlke'yi arayıp seçerek Azure İlkesi hizmetini başlatın.

  2. Giriş sayfasının sol tarafındaki Tanımlar'Azure İlkesi seçin.

  3. Tanımları dışarı aktar düğmesini kullanın veya ilke tanımının satırdaki üç noktayı seçin ve ardından Tanımı dışarı aktar'ı seçin.

  4. Oturum açma ve oturum açma GitHub seçin. Azure İlkesi'a kaynağı dışarı aktarma yetkisi vermek için GitHub ile henüz kimlik doğrulamadıysanız, açılan yeni pencerede GitHub Action'ın ihtiyacı olan erişimi gözden geçirin ve dışarı aktarma işlemiyle devam etmek için AzureGitHubActions'ı Yetkilendir'i seçin. Tamamlandıktan sonra yeni pencere otomatik olarak kapanır.

  5. Temel Bilgiler sekmesinde aşağıdaki seçenekleri ayarlayın ve ardından sayfanın alt kısmında İlkeler sekmesini veya Sonraki : İlkeler düğmesini seçin.

    • Depo filtresi: Yalnızca size ait olan depoları veya Tüm depoları görmek için Depolar'im olarak ayarlayın ve GitHub erişimine izin verdiniz.
    • Depo: Kaynak kaynaklarını dışarı aktarmayı istediğiniz depoya Azure İlkesi ayarlayın.
    • Dal: Depoda dalı ayarlayın. Varsayılanın dışında bir dal kullanmak, kaynak kodunuzla daha fazla birleştirmeden önce güncelleştirmelerinizi doğrulamanın iyi bir yoludur.
    • Dizin: Kaynak kaynaklarını dışarı aktaran Azure İlkesi klasörü. Bu dizin altındaki alt klasörler, hangi kaynakların dışarı aktarıldıklarına göre oluşturulur.
  6. İlkeler sekmesinde, üç noktayı seçerek ve yönetim grupları, abonelikler veya kaynak gruplarının bir birleşimini seçerek kapsamı arama yapmak için ayarlayın.

  7. Dışarı aktarılan nesnelerin kapsamını aramak için İlke tanımları ekle düğmesini kullanın. Açılan yan pencerede dışarı aktarıla her nesneyi seçin. Seçimi arama kutusuna veya türe göre filtrele. Dışarı aktarilecek tüm nesneleri seçtikten sonra sayfanın altındaki Ekle düğmesini kullanın.

  8. Seçilen her nesne için, bir ilke tanımı için Yalnızca Tanım veya Tanım ve Atamalar gibi istenen dışarı aktarma seçeneklerini belirleyin. Ardından sayfanın alt kısmında Gözden Geçir + Dışarı Aktar sekmesini veya Sonraki: Gözden Geçir + Dışarı Aktar düğmesini seçin.

    Not

    Tanım ve Atamalar seçeneği seçilirse, yalnızca ilke tanımı ekleniyorsa filtre tarafından ayarlanmış kapsam içindeki ilke atamaları dışarı aktarıldı.

  9. Gözden Geçir + Dışarı Aktar sekmesinde ayrıntılar eşleşmesini kontrol edin ve ardından sayfanın alt kısmında bulunan Dışarı Aktar düğmesini kullanın.

  10. Seçilen GitHub kaynak denetiminize aktarıldıklarını görmek için kaynak GitHub, dal ve kök düzeyi klasörünü kontrol edin.

Kaynak Azure İlkesi, seçilen depo ve kök GitHub içinde aşağıdaki yapıya dışarı aktarıldı:

|
|- <root level folder>/  ________________ # Root level folder set by Directory property
|  |- policies/  ________________________ # Subfolder for policy objects
|     |- <displayName>_<name>____________ # Subfolder based on policy displayName and name properties
|        |- policy.json _________________ # Policy definition
|        |- assign.<displayName>_<name>__ # Each assignment (if selected) based on displayName and name properties
|

İlke nesneleri Azure'GitHub güncelleştirildi

  1. İlke nesneleri dışarı aktarıldıktan sonra, GitHub için .github/workflows/manage-azure-policy-<randomLetters>.yml adlı bir iş akışı dosyası da oluşturulur.

    Not

    Dışarı GitHub her kullanılırken iş akışı dosyası oluşturulur. Dosyanın her örneği, bu dışarı aktarma eylemi sırasındaki seçeneklere özeldir.

  2. Bu iş akışı dosyası, Azure İlkesi deposundaki dışarı aktaran ilke nesnelerine yapılan değişiklikleri geri GitHub için Manage Azure İlkesi. Varsayılan olarak, eylem yalnızca Azure'da mevcut olan dosyalardan farklı olan dosyaları dikkate alır ve eşitler. Eylemde parametresini assignments yalnızca belirli atama dosyalarıyla yapılan değişiklikleri eşitlemek için de kullanabilirsiniz. Bu parametre yalnızca belirli bir ortama ilke atamaları uygulamak için kullanılabilir. Daha fazla bilgi için bkz. Manage Azure İlkesi repository readme.

  3. Varsayılan olarak, iş akışı el ile tetiklenir. Bunu yapmak için Eylemler'i GitHub iş akışını seçin, İş akışını manage-azure-policy-<randomLetters> çalıştır'ı seçin ve ardından İş akışını yeniden çalıştırın.

    Web arabiriminde Eylem sekmesi, iş akışı ve İş akışı çalıştır GitHub ekran görüntüsü.

    Not

    İş akışı dosyasının algılandığında ve el ile çalıştırılana varsayılan dalda olması gerekir.

  4. İş akışı, ilke nesnelerinde yapılan değişiklikleri Azure ile eşitler ve günlüklerde durumu size verir.

    İş akışının ve günlüklere kaydedilen ayrıntıların ekran görüntüsü.

  5. İş akışı, izlemenizi Azure İlkesi properties.metadata nesnelerinin ayrıntılarını da ekler.

    Azure portal eylemine özgü meta verilerle Azure İlkesi tanımın ekran GitHub.

Uyumluluk taramalarını GitHub tetikleme

Azure İlkesi Uyumluluk Taraması eylemini kullanarak bir veya daha fazla kaynak, kaynak grubu veya abonelikte GitHub iş akışından isteğe bağlı uyumluluk değerlendirme taraması tetikler ve bu kaynakların uyumluluk durumuna göre iş akışı yolunu değiştirebilirsiniz. En son uyumluluk durumunu uygun zamanda almak için iş akışını zamanlanan bir zamanda çalıştıracak şekilde de yapılandırabilirsiniz. İsteğe bağlı GitHub, daha fazla analiz veya arşivleme için taranmış kaynakların uyumluluk durumuyla ilgili bir rapor da üretebilirsiniz.

Aşağıdaki örnek, bir abonelik için uyumluluk taraması çalıştırır.


on:
  schedule:
    - cron:  '0 8 * * *'  # runs every morning 8am
jobs:
  assess-policy-compliance:
    runs-on: ubuntu-latest
    steps:
    - name: Login to Azure
      uses: azure/login@v1
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}

    - name: Check for resource compliance
      uses: azure/policy-compliance-scan@v0
      with:
        scopes: |
          /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Gözden geçirme

Bu öğreticide, aşağıdaki görevleri başarıyla gerçekleştirdiniz:

  • İlke tanımları ve atamaları GitHub
  • Azure'a GitHub ilke nesneleri güncelleştirildi
  • GitHub eylemden uyumluluk taraması tetikledi

Sonraki adımlar

İlke tanımlarının yapıları hakkında daha fazla bilgi edinmek için şu makaleyi gözden geçirin: