Bagikan melalui


Menentukan keanggotaan grup jaringan dinamis di Azure Virtual Network Manager dengan Azure Policy

Dalam artikel ini, Anda mempelajari cara menggunakan pernyataan kondisional Azure Policy untuk membuat grup jaringan dengan keanggotaan dinamis. Anda membuat pernyataan kondisional ini menggunakan penyunting dasar dengan memilih parameter dan operator dari menu drop-down. Selain itu, Anda mempelajari cara menggunakan editor tingkat lanjut untuk memperbarui pernyataan kondisional dari grup jaringan yang ada.

Azure Policy adalah layanan untuk memungkinkan Anda menerapkan tata kelola per sumber daya dalam skala besar. Ini dapat digunakan untuk menentukan ekspresi kondisional yang menentukan keanggotaan grup, dibandingkan dengan daftar eksplisit jaringan virtual. Kondisi ini terus mendukung grup jaringan Anda secara dinamis, memungkinkan jaringan virtual untuk bergabung dan meninggalkan grup secara otomatis saat pemenuhan kondisi berubah, tanpa memerlukan operasi Pengelola Jaringan.

Prasyarat

Parameter dan operator

Jaringan virtual dengan keanggotaan dinamis dipilih menggunakan pernyataan kondisional. Anda dapat menentukan lebih dari satu pernyataan kondisional dengan menggunakan operator logis seperti AND dan OR untuk skenario di mana Anda perlu lebih mempersempit jaringan virtual yang dipilih.

Daftar parameter yang didukung:

Parameter Bidang editor tingkat lanjut
Nama Name
ID Id
Tag tag['tagName']
Nama Langganan [subscription().Name]
ID Langganan [subscription().Id]
Tag Langganan [subscription().tags['tagName']]
Nama Grup Sumber Daya [resourceGroup().Name]
ID Grup Sumber Daya [resourceGroup().Id]
Tag Grup Sumber Daya [resourceGroup().tags['tagName']]

Daftar operator yang didukung:

Operator Editor tingkat lanjut
Berisi "contains": <>
Tidak berisi "notcontains": <>
Di "in": <>
Tidak Dalam "notin": <>
Sama dengan "equals": <>
Tidak sama dengan "notequals": <>
Berisi salah satu dari "contains": <>
Berisi semua "contains": <>
Tidak berisi salah satu dari "notcontains": <>
Ada "exists": true
Tidak ada "exists": false

Catatan

Operator Ada dan Tidak ada hanya digunakan dengan parameter Tag.

Penyunting dasar

Asumsikan Anda memiliki jaringan virtual berikut dalam langganan Anda. Setiap jaringan virtual memiliki tag terkait bernama lingkungan dengan nilai produksi atau pengujian masing-masing.

Virtual Network Nama Tag Nilai Tag
myVNet01-EastUS lingkungan produksi
myVNet01-WestUS lingkungan produksi
myVNet02-WestUS lingkungan pengujian
myVNet03-WestUS lingkungan pengujian

Anda hanya ingin memilih jaringan virtual yang tagnya memiliki pasangan nilai kunci lingkungan yang sama dengan produksi. Untuk mulai menggunakan penyunting dasar guna membuat pernyataan kondisional, Anda perlu membuat grup jaringan baru.

  1. Buka instans Azure Virtual Network Manager Anda dan pilih Grup Jaringan di bawah Pengaturan. Lalu pilih + Buat untuk membuat grup jaringan baru.

  2. Masukkan Nama dan Deskripsi opsional untuk grup jaringan, dan pilih Tambahkan.

  3. Pilih grup jaringan dari daftar dan pilih Buat Azure Policy.

  4. Masukkan Nama kebijakan dan biarkan pilihan Cakupan kecuali perubahan diperlukan.

  5. Di bawah Kriteria, pilih Tag dari menu drop-down di bawah Parameter lalu pilih Pasangan nilai kunci dari menu drop-down di bawah Operator.

  6. Masukkan lingkungan dan produksi di bawah Kondisi dan pilih Pratinjau Sumber Daya. Anda akan melihat myVNet01-EastUS dan myVNet01-WestUS muncul dalam daftar.

    Cuplikan layar tag pengaturan jendela Buat Azure Policy dengan pasangan nilai kunci.

  7. Pilih Tutup dan Simpan.

  8. Setelah beberapa menit, pilih grup jaringan Anda dan pilih Anggota Grup di bawah Pengaturan. Anda seharusnya hanya melihat myVNet01-WestUS dan myVNet01-WestUS.

Penting

Editor dasar hanya tersedia selama pembuatan Azure Policy. Setelah kebijakan dibuat, semua pengeditan akan dilakukan menggunakan JSON di bagian Kebijakan manajer jaringan virtual atau melalui Azure Policy.

Penyunting tingkat lanjut

Editor tingkat lanjut dapat digunakan untuk memilih jaringan virtual selama pembuatan grup jaringan atau saat memperbarui grup jaringan yang ada. Berbasis di JSON, editor tingkat lanjut berguna untuk membuat dan memperbarui pernyataan kondisional Azure Policy yang kompleks oleh pengguna berpengalaman.

Membuat kebijakan baru dengan editor tingkat lanjut

  1. Buka instans Azure Virtual Network Manager Anda dan pilih Grup Jaringan di bawah Pengaturan. Lalu pilih + Buat untuk membuat grup jaringan baru.

  2. Masukkan Nama dan Deskripsi opsional untuk grup jaringan, dan pilih Tambahkan.

  3. Pilih grup jaringan dari daftar dan pilih Buat Azure Policy.

  4. Masukkan Nama kebijakan dan biarkan pilihan Cakupan kecuali perubahan diperlukan.

  5. Di bawah Kriteria, pilih editor Tingkat Lanjut (JSON) untuk membuka editor.

  6. Masukkan kode JSON berikut ke dalam kotak teks dan pilih Simpan:

       {
       "field": "Name",
       "contains": "myVNet01"
       }
    
  7. Setelah beberapa menit, pilih grup jaringan Anda dan pilih Anggota Grup di bawah Pengaturan. Anda seharusnya hanya melihat myVNet01-WestUS dan myVNet01-EastUS.

Penting

Kebijakan Azure apa pun yang Anda buat dengan manajer jaringan virtual akan tinggal di area layanan Azure Policy. Mereka tidak akan dihapus dari penugasan dan definisi Azure Policy Anda saat instans manajer jaringan virtual dihapus. Ini memerlukan penghapusan kebijakan secara manual. Pelajari cara menghapus Kebijakan Azure

Mengedit kebijakan yang sudah ada

  1. Pilih grup jaringan yang dibuat di bagian sebelumnya. Lalu pilih tab Kebijakan .

  2. Pilih kebijakan yang dibuat di bagian sebelumnya.

  3. Anda melihat pernyataan kondisional untuk grup jaringan di tampilan editor lanjutan sebagai berikut:

    [
      {
         "field": "Name",
         "contains": "myVNet01"
      }
    ]
    
  4. Untuk menambahkan pernyataan kondisional lain untuk bidang Nama tidak mengandung WestUS, masukkan berikut ini ke dalam penyunting tingkat lanjut:

    {
       "allOf": [
    
          {
             "field": "Name",
             "contains": "VNet01"
          },
          {
             "field": "Name",
             "notcontains": "WestUS"
          }
       ]
    }
    

    Parameter "allOf" berisi pernyataan kondisional yang dipisahkan oleh operator logis AND.

  5. Pilih Simpan.

  6. Setelah beberapa menit, pilih grup jaringan Anda dan pilih Anggota Grup di bawah Pengaturan. Anda seharusnya hanya melihat myVNet01-EastUS.

Lihat Parameter dan operator untuk daftar lengkap parameter dan operator yang dapat Anda gunakan dengan penyunting tingkat lanjut.

Contoh lainnya

Berikut adalah contoh pernyataan kondisi di editor tingkat lanjut.

Contoh 1: OR hanya operator

Contoh ini menggunakan operator logis OR untuk memisahkan dua pernyataan kondisional.

  • Penyunting dasar:

    Cuplikan layar pernyataan kondisional grup jaringan menggunakan operator logis OR.

  • Operator tingkat lanjut:

    {
       "anyOf": [
          {
             "field": "Name",
             "contains": "myVNet01"
          },
          {
             "field": "Name",
             "contains": "myVNet02"
          }
       ]
    }
    

Parameter "anyOf" berisi kedua pernyataan kondisional yang dipisahkan oleh operator logis OR.

Contoh 2: Operator AND dan OR secara bersamaan

  • Penyunting dasar:

    Cuplikan layar pernyataan kondisional grup jaringan menggunakan operator logis OR dan AND.

  • Penyunting tingkat lanjut:

{
   "allOf": [
      {
         "anyOf": [
            {
               "field": "Name",
               "contains": "myVNet01"
            },
            {
               "field": "Name",
               "contains": "myVNet02"
            }
         ]
      },
      {
         "field": "Name",
         "notcontains": "West"
      }
   ]
}

Baik "allOf" dan "anyOf" digunakan dalam kode. Karena operator AND berada di urutan terakhir dalam daftar, operator tersebut berada di bagian luar kode yang berisi dua pernyataan kondisional dengan operator OR.

Contoh 3: Menggunakan nilai tag kustom dengan editor tingkat lanjut

Dalam contoh ini, pernyataan kondisional dibuat yang menemukan jaringan virtual di mana nama menyertakan myVNet DAN tag lingkungan sama dengan produksi.

  • Penyunting tingkat lanjut:

    
       {
            "allOf": [
              {
                 "field": "Name",
                 "contains": "myVNet"
              },      
              {
                 "field": "tags['environment']",
                 "equals": "production"
              }
            ]    
       }
    
    

    Catatan

    Kondisional harus memfilter jenis sumber daya Microsoft.Network/virtualNetwork untuk meningkatkan efisiensi. Kondisi ini telah ditentukan sebelumnya untuk Anda pada kondisional apa pun yang ditentukan melalui portal.

Langkah berikutnya