Muat ulang rahasia dan sertifikat dari Azure Key Vault secara otomatis

App Configuration dan Key Vault adalah layanan pelengkap yang digunakan berdampingan di banyak aplikasi. App Configuration membantu Anda dalam menggunakan layanan secara bersamaan dengan membuat kunci di penyimpanan App Configuration yang merujuk rahasia atau sertifikat yang disimpan di Key Vault. Karena Key Vault menyimpan sepasang kunci umum dan privat dari sertifikat sebagai rahasia, aplikasi Anda dapat mengambil sertifikat apa pun sebagai rahasia dari Key Vault.

Sebagai praktik keamanan yang baik, rahasia dan sertifikat harus dirotasi secara berkala. Setelah diputar di Key Vault, Anda ingin aplikasi mengambil nilai rahasia dan sertifikat terbaru. Ada dua cara untuk mencapai hal ini tanpa memulai ulang aplikasi Anda:

  • Perbarui nilai kunci sentinel untuk memicu refresh seluruh konfigurasi Anda, sehingga memuat ulang semua rahasia dan sertifikat Key Vault. Untuk mengetahui informasi selengkapnya, lihat cara menggunakan konfigurasi dinamis di aplikasi ASP.NET Core.
  • Secara berkala memuat ulang beberapa atau semua rahasia dan sertifikat dari Key Vault.

Pada opsi pertama, Anda harus memperbarui nilai kunci sentinel dalam App Configuration setiap kali Anda memutar rahasia dan sertifikat di Key Vault. Pendekatan ini bekerja dengan baik saat Anda ingin memaksa pemuatan ulang rahasia dan sertifikat segera dalam aplikasi Anda. Namun, saat rahasia dan sertifikat diputar secara otomatis di Key Vault, aplikasi Anda mungkin mengalami kesalahan jika Anda tidak memperbarui nilai kunci sentinel tepat waktu. Opsi kedua memungkinkan Anda untuk sepenuhnya mengotomatisasi proses ini. Anda dapat mengonfigurasi aplikasi Anda untuk memuat ulang rahasia dan sertifikat dari Key Vault dalam penundaan yang dapat diterima dari saat rotasi. Tutorial ini akan memandu Anda melalui opsi kedua.

Prasyarat

Menambahkan sertifikat rotasi otomatis ke Key Vault

Ikuti Tutorial: Mengonfigurasi rotasi otomatis sertifikat di Key Vault untuk menambahkan sertifikat rotasi otomatis yang disebut ExampleCertificate ke Key Vault yang dibuat di tutorial sebelumnya.

Menambahkan referensi ke sertifikat Key Vault dalam App Configuration

  1. Di portal Azure, pilih Semua sumber daya, lalu pilih instans penyimpanan App Configuration yang Anda buat di tutorial sebelumnya.

  2. Pilih Penjelajah Konfigurasi.

  3. Pilih + Buat>Referensi brankas kunci, lalu tetapkan nilai berikut:

    • Kunci: Pilih TestApp:Settings:KeyVaultMessage.
    • Label: Biarkan nilai ini kosong.
    • Langganan, Grup sumber daya, dan Key vault: Masukkan nilai yang terkait dengan Key Vault yang Anda buat di langkah sebelumnya.
    • Rahasia: Pilih rahasia bernama ExampleCertificate yang Anda buat di bagian sebelumnya.
    • Versi Rahasia: Versi terbaru.

Catatan

Jika Anda merujuk versi tertentu, memuat ulang rahasia atau sertifikat dari Key Vault akan selalu menampilkan nilai yang sama.

Memperbarui kode untuk memuat ulang rahasia dan sertifikat Key Vault

Di file Program.cs, perbarui metode AddAzureAppConfiguration untuk menyiapkan interval refresh untuk sertifikat Key Vault menggunakan metode SetSecretRefreshInterval. Dengan perubahan ini, aplikasi Anda akan memuat ulang pasangan kunci privat-umum untuk ExampleCertificate setiap 12 jam.

config.AddAzureAppConfiguration(options =>
{
    options.Connect(settings["ConnectionStrings:AppConfig"])
            .ConfigureKeyVault(kv =>
            {
                kv.SetCredential(new DefaultAzureCredential());
                kv.SetSecretRefreshInterval("TestApp:Settings:KeyVaultCertificate", TimeSpan.FromHours(12));
            });
});

Argumen pertama dalam metode SetSecretRefreshInterval adalah kunci referensi Key Vault dalam App Configuration. Argumen ini bersifat opsional. Jika parameter kunci dihilangkan, interval refresh akan berlaku untuk semua rahasia dan sertifikat yang tidak memiliki interval refresh individu.

Interval refresh menentukan frekuensi saat rahasia dan sertifikat Anda akan dimuat ulang dari Key Vault, terlepas dari perubahan nilainya di Key Vault atau App Configuration. Jika Anda ingin memuat ulang rahasia dan sertifikat saat nilainya berubah dalam App Configuration, Anda dapat memantaunya menggunakan metode ConfigureRefresh. Untuk mengetahui informasi selengkapnya, lihat cara menggunakan konfigurasi dinamis di aplikasi ASP.NET Core.

Pilih interval refresh sesuai dengan penundaan yang dapat diterima setelah rahasia dan sertifikat Anda diperbarui di Key Vault. Juga penting untuk mempertimbangkan batasan layanan Key Vault untuk menghindari pembatasan.

Membersihkan sumber daya

Jika Anda tidak ingin terus menggunakan sumber daya yang dibuat dalam artikel ini, hapus grup sumber daya yang Anda buat di sini untuk menghindari biaya.

Penting

Penghapusan grup sumber daya tidak dapat dipulihkan. Grup sumber daya dan semua sumber daya yang ada di dalamnya akan dihapus secara permanen. Pastikan Anda tidak menghapus grup atau sumber daya yang salah secara tidak sengaja. Jika Anda membuat sumber daya untuk artikel ini dalam grup sumber daya yang ada yang berisi sumber daya lain yang ingin disimpan, hapus setiap sumber daya satu per satu dari panelnya masing-masing, bukan menghapus grup sumber daya.

  1. Masuk ke portal Azure, lalu pilih Grup sumber daya.
  2. Dalam kotak Filter menurut nama, masukkan nama grup sumber daya Anda.
  3. Dalam daftar hasil, pilih nama grup sumber daya untuk melihat gambaran umum.
  4. Pilih Hapus grup sumber daya.
  5. Anda akan diminta untuk mengonfirmasi penghapusan grup sumber daya. Masukkan nama grup sumber daya Anda untuk mengonfirmasi, dan pilih Hapus.

Setelah beberapa saat, grup sumber daya dan semua sumber dayanya akan dihapus.

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara menyiapkan aplikasi Anda untuk secara otomatis memuat ulang rahasia dan sertifikat dari Key Vault. Untuk mempelajari cara menggunakan Identitas Terkelola untuk mempersingkat akses ke App Configuration dan Azure Key Vault, lanjutkan ke tutorial berikutnya.