Menyimpan rahasia tingkat aplikasi untuk Azure Functions di Azure Container Apps

Rahasia tingkat aplikasi adalah nilai konfigurasi yang digunakan oleh kode fungsi dan pengikatan Anda saat waktu berjalan. Tidak seperti kunci akses Functions, yang mengamankan titik akhir HTTP, rahasia aplikasi adalah kredensial yang dibutuhkan aplikasi Anda untuk terhubung ke layanan lain.

Contoh umumnya termasuk:

  • Koneksi infrastruktur, string sambungan, pemicu, dan koneksi pengikatan untuk Azure Event Hubs, Bus Layanan, Cosmos DB, dan SQL.
  • Info masuk bisnis - kunci API pihak ketiga, kata sandi database, token platform SaaS.
  • Konfigurasi kustom - nilai sensitif apa pun yang dibaca kode Anda dari variabel lingkungan.

Pilih opsi penyimpanan

Azure Container Apps memberi Anda dua cara untuk menyimpan rahasia tingkat aplikasi:

Option Paling cocok untuk Manajemen terpusat Rotasi otomatis Pengelogan audit
Rahasia Container Apps Dev/test, beban kerja aplikasi tunggal sederhana Tidak - dibatasi ke satu aplikasi No Log aktivitas saja
Key Vault referensi Produksi, multi-aplikasi, kepatuhan Ya - di semua aplikasi Ya (URI tanpa versi) Diagnostik lengkap Key Vault

Petunjuk / Saran

Mulailah dengan rahasia Container Apps untuk kesederhanaan. Pindah ke referensi Key Vault saat Anda memerlukan manajemen terpusat, rotasi otomatis, atau audit tingkat kepatuhan.

Prasyarat

Menggunakan secret pada Container Apps

Container Apps menyimpan rahasia dalam array aplikasi configuration.secrets dan mengenkripsi nilai saat tidak aktif. Anda dapat mereferensikan rahasia dalam variabel lingkungan, aturan skala, pemasangan volume, dan komponen Dapr.

Menyimpan rahasia

  1. Buka aplikasi kontainer Functions Anda di portal Azure.

  2. Di bawah Pengaturan, pilih Rahasia.

  3. Pilih Tambahkan dan masukkan nilai berikut:

    Property Nilai
    Name Nama rahasia seperti database-password. Gunakan huruf kecil, angka, dan tanda hubung saja.
    Type Rahasia Aplikasi Kontainer
    Nilai Nilai rahasia Anda.
  4. Pilih Tambahkan.

Mereferensikan rahasia dalam variabel lingkungan

Setelah Anda menyimpan rahasia, referensikan dalam variabel lingkungan sehingga kode fungsi Anda dapat membacanya.

  1. Di aplikasi kontainer Functions Anda, di bawah Aplikasi, pilih Revisi dan replika.

  2. Pilih Buat revisi baru.

  3. Di tab Kontainer , pilih kontainer Anda, lalu pilih Edit.

  4. Pilih tab Variabel lingkungan , lalu pilih Tambahkan.

  5. Masukkan nilai berikut:

    Property Nilai
    Name DATABASE_PASSWORD
    Source Mengacu pada rahasia
    Nilai database-password
  6. Pilih Simpan, lalu pilih Buat untuk menyebarkan revisi baru.

Verifikasi kode rahasia

Konfirmasikan fungsi Anda dapat membaca nilai rahasia dengan memanggil fungsi dan memeriksa apakah fungsi berjalan tanpa kesalahan yang terkait dengan konfigurasi yang hilang.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Important

Container Apps menyuntikkan nilai rahasia ke dalam variabel lingkungan saat runtime. Kode Anda membaca variabel lingkungan dan tidak mengakses penyimpanan rahasia secara langsung.

Keterbatasan

Rahasia Container Apps memiliki batasan berikut:

  • Tidak ada sentralisasi - setiap aplikasi kontainer menyimpan rahasianya sendiri secara terpisah.
  • Tidak ada rotasi otomatis - Anda harus memperbarui nilai rahasia secara manual.
  • Tidak ada kedaluwarsa - rahasia tidak kedaluwarsa secara otomatis.
  • Audit terbatas - hanya log aktivitas dasar; tidak ada audit akses rahasia terperinci.
  • Tidak ada pemversionan - tidak ada riwayat versi rahasia bawaan.
  • Memperbarui perilaku - mengubah rahasia tidak memicu revisi baru. Anda harus membuat revisi baru atau memulai ulang revisi yang ada untuk mengambil perubahan.

Menggunakan referensi Key Vault

Key Vault referensi memungkinkan aplikasi kontainer Anda menarik rahasia langsung dari Azure Key Vault menggunakan identitas terkelola. Pendekatan ini memberi Anda manajemen terpusat, rotasi otomatis, dan audit tingkat kepatuhan.

Langkah 1: Menyiapkan identitas terkelola

Aplikasi kontainer Anda memerlukan identitas terkelola untuk mengautentikasi ke Key Vault tanpa kredensial.

  1. Buka aplikasi kontainer Functions Anda di portal Azure.

  2. Di Pengaturan, pilih Identitas.

  3. Di tab Ditetapkan sistem , atur Status ke Aktif.

  4. Pilih Simpan, lalu pilih Ya untuk mengonfirmasi.

Langkah 2: Memberikan akses Key Vault

Tetapkan peran Key Vault Secrets User ke identitas terkelola sehingga dapat membaca rahasia.

  1. Buka Key Vault Anda di portal Azure.

  2. Di Pengaturan, pilih Access control (IAM).

  3. Pilih Tambahkan>Tambahkan penugasan peran.

  4. Pada tab Peran, pilih Pengguna Rahasia di Key Vault.

  5. Pilih Selanjutnya.

  6. Pada tab Anggota, pilih Identitas terkelola, kemudian pilih Pilih anggota.

  7. Di panel Pilih identitas terkelola , pilih langganan Anda, pilih Aplikasi Kontainer untuk jenis identitas terkelola, pilih aplikasi kontainer Functions Anda, lalu pilih Pilih.

  8. Pilih Tinjau + beri tugas.

Langkah 3: Simpan rahasia di Key Vault

  1. Di Key Vault Anda, di Objects, pilih Secrets.

  2. Pilih Hasilkan/Impor.

  3. Masukkan nilai berikut:

    Property Nilai
    Opsi unggah Manual
    Name Nama rahasia, misalnya DatabasePassword.
    Nilai Nilai rahasia Anda.
  4. Pilih Buat.

  5. Pilih rahasia yang baru dibuat, lalu pilih versi saat ini.

  6. Salin URI Pengidentifikasi Rahasia . Gunakan URI tanpa versi (tanpa segmen versi berikutnya) untuk mengaktifkan rotasi otomatis.

Langkah 4: Mereferensikan rahasia Key Vault di Aplikasi Kontainer

Buat rahasia Container Apps yang mereferensikan rahasia Key Vault, lalu ikat ke variabel lingkungan.

  1. Buka aplikasi kontainer Functions Anda. Di bawah Pengaturan, pilih Rahasia.

  2. Pilih Tambahkan.

  3. Di Tambahkan rahasia, masukkan nilai berikut:

    Property Nilai
    Name database-password
    Type Key Vault referensi
    URL rahasia Key Vault URI Pengidentifikasi Rahasia yang Anda salin.
    Identitas Sistem yang ditetapkan (atau identitas yang ditetapkan pengguna Anda).
  4. Pilih Tambahkan.

  5. Di bawah Aplikasi, pilih Revisi dan replika. Buat revisi baru dengan variabel lingkungan DATABASE_PASSWORD yang merujuk ke rahasia database-password.

Langkah 5: Verifikasi referensi Key Vault

Panggil fungsi Anda dan konfirmasi bahwa fungsi tersebut berjalan tanpa kesalahan yang terkait dengan konfigurasi yang kurang.

curl "https://<FUNCTIONS_APP_URL>/api/<FUNCTION_NAME>"

Rotasi rahasia otomatis

Saat Anda mereferensikan rahasia Key Vault dengan URI tanpa versi, Container Apps secara otomatis mengambil versi terbaru:

  • URI tanpa versi: https://myvault.vault.azure.net/secrets/mysecret - selalu menggunakan versi terbaru.
  • URI versi: https://myvault.vault.azure.net/secrets/mysecret/ec96f020... - disematkan ke versi tertentu.

Dengan URI tanpa versi, Container Apps memeriksa versi baru dalam waktu 30 menit dan secara otomatis memulai ulang revisi aktif untuk mengambil nilai baru.