Memecahkan masalah dengan menerapkan kebijakan Azure di Key Vault

Artikel ini memandu Anda cara memecahkan masalah kesalahan umum yang mungkin terjadi saat Anda menyiapkan Azure Policy untuk Key Vault, dan menyarankan cara untuk mengatasinya.

Tentang kebijakan Azure untuk Key Vault

Azure Policy adalah alat tata kelola yang memungkinkan Anda mengaudit dan mengelola lingkungan Azure dalam skala besar. Ini memungkinkan Anda menempatkan pagar pembatas pada sumber daya Azure untuk memastikan mereka mematuhi aturan kebijakan yang ditetapkan. Dengan Azure Policy, Anda dapat melakukan audit, penegakan real time, dan remediasi lingkungan Azure Anda. Hasil audit tersedia di dasbor kepatuhan tempat Anda dapat melihat perincian terperinci sumber daya dan komponen yang sesuai dan tidak patuh.

Penebangan kayu

Untuk memantau bagaimana evaluasi kebijakan dilakukan, Anda dapat meninjau log Key Vault. Anda juga dapat mengaktifkan pengelogan untuk Azure Key Vault, yang menyimpan informasi di akun penyimpanan Azure yang Anda sediakan. Untuk panduan langkah demi langkah, lihat Cara mengaktifkan pengelogan Key Vault.

Saat Anda mengaktifkan pengelogan, kontainer baru yang disebut AzurePolicyEvaluationDetails secara otomatis dibuat untuk mengumpulkan informasi pengelogan terkait kebijakan di akun penyimpanan yang Anda tentukan.

Nota

Anda harus secara ketat mengatur akses ke data pemantauan, terutama file log, karena dapat berisi informasi sensitif. Pelajari tentang menerapkan peran Azure pemantauan bawaan dan membatasi akses.

Blob individual disimpan sebagai teks, diformat sebagai blob JSON.

Mari kita lihat contoh entri log untuk kebijakan Kunci: Kunci harus memiliki tanggal kedaluwarsa yang ditetapkan. Kebijakan ini mengevaluasi semua kunci di brankas kunci dan menandai kunci yang tidak memiliki tanggal kedaluwarsa yang ditetapkan sebagai tidak patuh.

{
  "ObjectName": "example",
  "ObjectType": "Key",
  "IsComplianceCheck": false,
  "EvaluationDetails": [
    {
      "AssignmentId": "<subscription-id>",
      "AssignmentDisplayName": "[Preview]: Key Vault keys should have an expiration date",
      "DefinitionId": "<definition-id>",
      "DefinitionDisplayName": "[Preview]: Key Vault keys should have an expiration date",
      "Outcome": "NonCompliant",
      "ExpressionEvaluationDetails": [
        {
          "Result": "True",
          "Expression": "type",
          "ExpressionKind": "Field",
          "ExpressionValue": "Microsoft.KeyVault.Data/vaults/keys",
          "TargetValue": "Microsoft.KeyVault.Data/vaults/keys",
          "Operator": "Equals"
        },
        {
          "Result": "True",
          "Expression": "Microsoft.KeyVault.Data/vaults/keys/attributes.expiresOn",
          "ExpressionKind": "Field",
          "ExpressionValue": "******",
          "TargetValue": "False",
          "Operator": "Exists"
        }
      ]
    }
  ]
}

Tabel berikut ini mencantumkan nama dan deskripsi bidang:

Nama bidang Deskripsi
ObjectName Nama objek
JenisObjek Jenis objek brankas kunci: sertifikat, rahasia, atau kunci
IsComplianceCheck Benar jika evaluasi terjadi selama audit malam, salah jika evaluasi terjadi selama pembuatan atau pembaruan sumber daya
AssignmentId ID penugasan kebijakan
AssignmentDisplayName Nama mudah diingat untuk penugasan kebijakan
DefinitionId ID definisi kebijakan untuk penugasan
DefinitionDisplayName Nama yang ramah pengguna dari definisi kebijakan untuk tugas
Hasil Hasil evaluasi kebijakan
ExpressionEvaluationDetails Detail tentang evaluasi yang dilakukan selama evaluasi kebijakan
ExpressionValue Nilai aktual bidang yang ditentukan selama evaluasi kebijakan
TargetValue Nilai yang diharapkan dari bidang yang ditentukan

Tanya jawab umum

Pemulihan Key Vault diblokir oleh kebijakan Azure

Salah satu alasannya adalah langganan Anda (atau grup manajemen) memiliki kebijakan yang memblokir pemulihan. Perbaikannya adalah menyesuaikan kebijakan agar tidak berlaku saat brankas sedang dipulihkan.

Jika Anda melihat jenis RequestDisallowedByPolicy kesalahan untuk pemulihan karena kebijakan bawaan , pastikan Anda menggunakan versi yang paling diperbarui.

Jika Anda membuat kebijakan kustom dengan logika Anda sendiri, berikut adalah contoh bagian dari kebijakan yang dapat digunakan untuk memerlukan penghapusan sementara. Pemulihan vault yang di-soft delete menggunakan API yang sama dengan membuat atau memperbarui vault. Namun, alih-alih menentukan properti vault, ia memiliki satu properti "createMode" dengan nilai "pulihkan". Vault dipulihkan dengan properti apa pun yang dimilikinya ketika dihapus. Kebijakan yang memblokir permintaan kecuali jika memiliki konfigurasi properti tertentu juga akan memblokir pemulihan vault yang telah dihapus secara sementara. Perbaikannya adalah menyertakan klausul yang menyebabkan kebijakan mengabaikan permintaan di mana "createMode" adalah "pulihkan":

Kebijakan ini memiliki klausa yang menyebabkan kebijakan hanya berlaku ketika "createMode" tidak sama dengan "pulihkan":


    "policyRule": { 
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.KeyVault/vaults"
          }, 
          {
            "not": {
              "field": "Microsoft.Keyvault/vaults/createMode",
              "equals": "recover"
            }
          },
          {
            "anyOf": [
              {
                "field": "Microsoft.KeyVault/vaults/enableSoftDelete",
                "exists": "false"
              },
              {
                "field": "Microsoft.KeyVault/vaults/enableSoftDelete",
                "equals": "false"
              }
            ]
          }
        ]
      },
      "then": {
        "effect": "[parameters('effect')]"
      }
    }

Latensi pada penghapusan Azure policy assignment di Key Vault

Microsoft.KeyVault.Data: penetapan kebijakan yang dihapus dapat memakan waktu hingga 24 jam untuk berhenti diberlakukan.

Mitigasi: memperbarui efek penugasan kebijakan ke 'Dinonaktifkan'.

Pembuatan rahasia melalui templat ARM kehilangan evaluasi kebijakan

Kebijakan bidang data yang mengevaluasi pembuatan rahasia tidak akan berlaku pada rahasia yang dibuat melalui templat ARM pada saat pembuatan rahasia. Setelah 24 jam, ketika pemeriksaan kepatuhan otomatis akan terjadi, dan hasil kepatuhan dapat ditinjau.

Langkah selanjutnya