Mengonfigurasi rotasi otomatis kunci kriptografi di Azure Key Vault

Gambaran Umum

Rotasi kunci kriptografi otomatis di Key Vault memungkinkan pengguna mengonfigurasi Key Vault untuk menghasilkan versi kunci baru secara otomatis pada frekuensi yang ditentukan. Untuk mengonfigurasi rotasi, Anda dapat menggunakan kebijakan rotasi kunci, yang dapat ditentukan pada masing-masing kunci.

Sebaiknya Anda merotasi kunci enkripsi setidaknya setiap dua tahun untuk memenuhi praktik terbaik kriptografi.

Untuk mengetahui informasi selengkapnya mengenai bagaimana objek dalam Key Vault diberi nomor versi, lihat Objek, pengidentifikasi, dan penerapan versi Key Vault.

Integrasi dengan layanan Azure

Fitur ini memungkinkan rotasi tanpa sentuhan ujung ke ujung untuk enkripsi saat tidak aktif untuk layanan Azure dengan kunci yang dikelola pelanggan (CMK) yang disimpan di Azure Key Vault. Lihat dokumentasi layanan Azure tertentu untuk mengetahui apakah layanan mencakup rotasi ujung ke ujung.

Untuk informasi selengkapnya tentang enkripsi data di Azure, lihat:

Harga

Ada biaya tambahan per rotasi kunci terjadwal. Untuk informasi selengkapnya, lihat halaman harga Azure Key Vault

Izin yang diperlukan

Fitur rotasi kunci Key Vault memerlukan izin pengelolaan kunci. Anda dapat menetapkan peran "Petugas Kripto Key Vault" untuk mengelola kebijakan rotasi dan rotasi sesuai permintaan.

Untuk informasi selengkapnya mengenai cara menggunakan model izin RBAC Key Vault dan menetapkan peran Azure, lihat Menggunakan Azure RBAC untuk mengontrol akses ke kunci, sertifikat, dan rahasia

Catatan

Jika menggunakan model izin kebijakan akses, Anda perlu menetapkan izin kunci 'Putar', 'Tetapkan Kebijakan Rotasi', dan 'Dapatkan Kebijakan Rotasi' untuk mengelola kebijakan rotasi pada kunci.

Kebijakan rotasi kunci

Kebijakan rotasi kunci memungkinkan pengguna untuk mengonfigurasi rotasi dan pemberitahuan Event Grid mendekati pemberitahuan kedaluwarsa.

Pengaturan kebijakan rotasi kunci:

  • Waktu kedaluwarsa: interval kedaluwarsa kunci. Hal ini digunakan untuk mengatur tanggal kedaluwarsa pada kunci yang baru diputar. Hal ini tidak memengaruhi kunci saat ini.
  • Diaktifkan/dinonaktifkan: tandai untuk mengaktifkan atau menonaktifkan rotasi kunci
  • Jenis rotasi:
    • Secara otomatis memperbarui pada waktu tertentu sebelum kedaluwarsa (default)
    • Secara otomatis memperbarui pada waktu tertentu sebelum kedaluwarsa. Hal ini membutuhkan 'Waktu Kedaluwarsa' ditetapkan pada kebijakan rotasi dan 'Tanggal Kedaluwarsa' ditetapkan pada kunci.
  • Waktu rotasi: interval rotasi kunci, nilai minimumnya adalah tujuh hari sejak pembuatan dan tujuh hari dari waktu kedaluwarsa
  • Waktu pemberitahuan: interval peristiwa kunci yang hampir kedaluwarsa untuk pemberitahuan kisi peristiwa. Hal ini membutuhkan 'Waktu Kedaluwarsa' ditetapkan pada kebijakan rotasi dan 'Tanggal Kedaluwarsa' ditetapkan pada kunci.

Penting

Rotasi kunci menghasilkan versi kunci baru dari kunci yang ada dengan materi kunci baru. Layanan target harus menggunakan uri kunci tanpa versi untuk secara otomatis merefresh ke versi kunci terbaru. Pastikan bahwa solusi enkripsi data Anda menyimpan uri kunci berversi dengan data yang mengarahkan ke materi kunci yang sama untuk membungkus/membongkar seperti yang digunakan untuk operasi enkripsi/membungkus guna menghindari gangguan pada layanan Anda. Semua layanan Azure saat ini mengikuti pola tersebut untuk enkripsi data.

Konfigurasi kebijakan rotasi

Mengonfigurasi kebijakan rotasi kunci

Konfigurasikan kebijakan rotasi kunci selama pembuatan kunci.

Mengonfigurasi rotasi selama pembuatan kunci

Konfigurasikan kebijakan rotasi pada kunci yang ada.

Mengonfigurasi krotasi pada kunci yang ada

Azure CLI

Simpan kebijakan rotasi kunci ke file. Contoh kebijakan rotasi kunci:

{
  "lifetimeActions": [
    {
      "trigger": {
        "timeAfterCreate": "P18M",
        "timeBeforeExpiry": null
      },
      "action": {
        "type": "Rotate"
      }
    },
    {
      "trigger": {
        "timeBeforeExpiry": "P30D"
      },
      "action": {
        "type": "Notify"
      }
    }
  ],
  "attributes": {
    "expiryTime": "P2Y"
  }
}

Atur kebijakan rotasi pada kunci yang meneruskan file yang disimpan sebelumnya menggunakan perintah az keyvault key rotation-policy update Azure CLI.

az keyvault key rotation-policy update --vault-name <vault-name> --name <key-name> --value </path/to/policy.json>

Azure PowerShell

Atur kebijakan rotasi menggunakan cmdlet Azure Powershell Set-AzKeyVaultKeyRotationPolicy.

Set-AzKeyVaultKeyRotationPolicy -VaultName <vault-name> -KeyName <key-name> -ExpiresIn (New-TimeSpan -Days 720) -KeyRotationLifetimeAction @{Action="Rotate";TimeAfterCreate= (New-TimeSpan -Days 540)}

Rotasi sesuai permintaan

Rotasi kunci dapat dipanggil secara manual.

Portal

Klik 'Putar Sekarang' untuk meminta rotasi.

Rotasi sesuai permintaan

Azure CLI

Gunakan perintah Azure CLI az keyvault key rotate untuk memutar kunci.

az keyvault key rotate --vault-name <vault-name> --name <key-name>

Azure PowerShell

Gunakan cmdlet Azure PowerShell Invoke-AzKeyVaultKeyRotation.

Invoke-AzKeyVaultKeyRotation -VaultName <vault-name> -Name <key-name>

Mengonfigurasi pemberitahuan kunci yang hampir kedaluwarsa

Konfigurasi pemberitahuan kedaluwarsa untuk kunci Event Grid yang hampir kedaluwarsa. Jika rotasi otomatis tidak dapat digunakan, seperti ketika kunci diimpor dari HSM lokal, Anda dapat mengonfigurasi pemberitahuan yang hampir kedaluwarsa sebagai pengingat untuk rotasi manual atau sebagai pemicu rotasi otomatis kustom melalui integrasi dengan Event Grid. Anda dapat mengonfigurasi pemberitahuan dengan hari, bulan, dan tahun sebelum kedaluwarsa untuk memicu peristiwa yang hampir kedaluwarsa.

Mengonfigurasi Pemberitahuan

Untuk informasi selengkapnya tentang pemberitahuan Event Grid di Key Vault, lihat Azure Key Vault sebagai sumber Event Grid

Mengonfigurasi rotasi kunci dengan template ARM

Kebijakan rotasi kunci juga dapat dikonfigurasi menggunakan template ARM.

Catatan

Hal ini membutuhkan peran 'Kontributor Key Vault' di Key Vault yang dikonfigurasi dengan Azure RBAC untuk menyebarkan kunci melalui bidang manajemen.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vaultName": {
            "type": "String",
            "metadata": {
                "description": "The name of the key vault to be created."
            }
        },
        "keyName": {
            "type": "String",
            "metadata": {
                "description": "The name of the key to be created."
            }
        },
        "rotatationTimeAfterCreate": {
            "defaultValue": "P18M",
            "type": "String",
            "metadata": {
                "description": "Time duration to trigger key rotation. i.e. P30D, P1M, P2Y"
            }
        },
        "expiryTime": {
            "defaultValue": "P2Y",
            "type": "String",
            "metadata": {
                "description": "The expiry time for new key version. i.e. P90D, P2M, P3Y"
            }
        },
        "notifyTime": {
            "defaultValue": "P30D",
            "type": "String",
            "metadata": {
                "description": "Near expiry Event Grid notification. i.e. P30D"
            }
        }

    },
    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults/keys",
            "apiVersion": "2021-06-01-preview",
            "name": "[concat(parameters('vaultName'), '/', parameters('keyName'))]",
            "location": "[resourceGroup().location]",
            "properties": {
                "vaultName": "[parameters('vaultName')]",
                "kty": "RSA",
                "rotationPolicy": {
                    "lifetimeActions": [
                        {
                            "trigger": {
                                "timeAfterCreate": "[parameters('rotatationTimeAfterCreate')]",
                                "timeBeforeExpiry": ""
                            },
                            "action": {
                                "type": "Rotate"
                            }
                        },
                        {
                            "trigger": {
                                "timeBeforeExpiry": "[parameters('notifyTime')]"
                            },
                            "action": {
                                "type": "Notify"
                            }
                        }

                    ],
                    "attributes": {
                        "expiryTime": "[parameters('expiryTime')]"
                    }
                }
            }
        }
    ]
}

Mengonfigurasi tata kelola kebijakan rotasi kunci

Dengan menggunakan layanan Azure Policy, Anda dapat mengatur siklus hidup kunci dan memastikan bahwa semua kunci dikonfigurasi untuk diputar dalam jumlah hari tertentu.

Membuat dan menetapkan definisi kebijakan

  1. Buka Sumber daya kebijakan
  2. Pilih Penugasan di bawah Penulisan di sisi kiri halaman Azure Policy.
  3. Pilih Tetapkan kebijakan di bagian atas halaman. Tombol ini terbuka ke halaman Penetapan kebijakan.
  4. Masukkan informasi berikut:
  5. Isi bidang tambahan apa pun. Navigasikan tab yang mengklik tombol Sebelumnya dan Berikutnya di bagian bawah halaman.
  6. Pilih Tinjau + buat
  7. Pilih Buat

Setelah kebijakan bawaan ditetapkan, diperlukan waktu hingga 24 jam untuk menyelesaikan pemindaian. Setelah pemindaian selesai, Anda dapat melihat hasil kepatuhan seperti di bawah ini.

Cuplikan layar kepatuhan kebijakan rotasi kunci.

Sumber