Azure Container Apps memungkinkan aplikasi Anda untuk menyimpan nilai konfigurasi sensitif dengan aman. Setelah rahasia ditentukan di tingkat aplikasi, nilai aman tersedia untuk revisi di aplikasi kontainer Anda. Selain itu, Anda dapat mereferensikan nilai aman di dalam aturan skala. Untuk informasi tentang menggunakan rahasia dengan Dapr, lihat Integrasi Dapr.
Rahasia tercakup ke aplikasi, di luar revisi aplikasi tertentu.
Menambahkan, menghapus, atau mengubah rahasia tidak menghasilkan revisi baru.
Setiap revisi aplikasi dapat merujuk satu atau lebih rahasia.
Beberapa revisi dapat merujuk rahasia yang sama.
Rahasia yang diperbarui atau dihapus tidak secara otomatis memengaruhi revisi yang ada di aplikasi Anda. Ketika rahasia diperbarui atau dihapus, Anda dapat menanggapi perubahan dalam salah satu dari dua cara:
Menyebarkan revisi baru.
Menghidupkan ulang revisi yang sudah ada.
Sebelum Anda menghapus rahasia, gunakan revisi baru yang tidak lagi merujuk pada rahasia lama. Kemudian nonaktifkan semua revisi yang mereferensikan rahasia.
Mendefinisikan rahasia
Rahasia didefinisikan sebagai sekumpulan pasangan nama/nilai. Nilai setiap rahasia ditentukan secara langsung atau sebagai referensi ke rahasia yang disimpan di Azure Key Vault.
Simpan nilai rahasia di Aplikasi Kontainer
Saat Anda menentukan rahasia melalui portal, atau melalui opsi baris perintah yang berbeda.
Di sini, string koneksi ke akun penyimpanan antrean dinyatakan dalam array secrets. Dalam contoh ini, Anda akan mengganti <MY-CONNECTION-STRING-VALUE> dengan nilai string koneksi Anda.
Saat Anda membuat aplikasi kontainer, rahasia ditentukan menggunakan --secrets parameter .
Parameter menerima sekumpulan pasangan nama/nilai yang dibatasi spasi.
Setiap pasangan dibatasi oleh tanda yang sama (=).
Di sini, string koneksi ke akun penyimpanan antrean dinyatakan dalam parameter --secrets. Ganti <CONNECTION_STRING> dengan nilai string koneksi Anda.
Saat Anda membuat aplikasi kontainer, rahasia didefinisikan sebagai satu atau beberapa objek Rahasia yang diteruskan melalui ConfigurationSecrets parameter .
Di sini, string koneksi ke akun penyimpanan antrean dinyatakan. Nilai untuk queue-connection-string berasal dari variabel lingkungan bernama $QueueConnectionString.
Rahasia referensi dari Key Vault
Saat menentukan rahasia, Anda membuat referensi ke rahasia yang disimpan di Azure Key Vault. Container Apps secara otomatis mengambil nilai rahasia dari Key Vault dan membuatnya tersedia sebagai rahasia di aplikasi kontainer Anda.
Untuk mereferensikan rahasia dari Key Vault, Anda harus terlebih dahulu mengaktifkan identitas terkelola di aplikasi kontainer Anda dan memberikan akses identitas ke rahasia Key Vault.
Untuk mengaktifkan identitas terkelola di aplikasi kontainer Anda, lihat Identitas terkelola.
Untuk memberikan akses ke rahasia Key Vault, buat kebijakan akses di Key Vault untuk identitas terkelola yang Anda buat. Aktifkan izin rahasia "Get" pada kebijakan ini.
Di sini, string koneksi ke akun penyimpanan antrean dinyatakan dalam array secrets. Nilainya secara otomatis diambil dari Key Vault menggunakan identitas yang ditentukan. Untuk menggunakan identitas terkelola pengguna, ganti system dengan ID sumber daya identitas.
Ganti <KEY-VAULT-SECRET-URI> dengan URI rahasia Anda di Key Vault.
Saat Anda membuat aplikasi kontainer, rahasia ditentukan menggunakan --secrets parameter .
Parameter menerima sekumpulan pasangan nama/nilai yang dibatasi spasi.
Setiap pasangan dibatasi oleh tanda yang sama (=).
Untuk menentukan referensi Key Vault, gunakan format <SECRET_NAME>=keyvaultref:<KEY_VAULT_SECRET_URI>,identityref:<MANAGED_IDENTITY_ID>. Contohnya, queue-connection-string=keyvaultref:https://mykeyvault.vault.azure.net/secrets/queuereader,identityref:/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group/providers/Microsoft.ManagedIdentity/userAssignedIdentities/my-identity.
Di sini, string koneksi ke akun penyimpanan antrean dinyatakan dalam parameter --secrets. Ganti <KEY_VAULT_SECRET_URI> dengan URI rahasia Anda di Key Vault. Ganti <USER_ASSIGNED_IDENTITY_ID> dengan ID sumber daya identitas yang ditetapkan pengguna. Untuk identitas yang ditetapkan sistem, gunakan system alih-alih ID sumber daya.
Catatan
Identitas yang ditetapkan pengguna harus memiliki akses untuk membaca rahasia di Key Vault. Identitas yang ditetapkan sistem tidak dapat digunakan dengan perintah buat karena tidak tersedia sampai setelah aplikasi kontainer dibuat.
Referensi Key Vault Rahasia tidak didukung di PowerShell.
URI rahasia Key Vault harus dalam salah satu format berikut:
https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931: Mereferensikan versi rahasia tertentu.
https://myvault.vault.azure.net/secrets/mysecret: Referensikan versi terbaru rahasia.
Jika versi tidak ditentukan dalam URI, maka aplikasi menggunakan versi terbaru yang ada di brankas kunci. Saat versi yang lebih baru tersedia, aplikasi secara otomatis mengambil versi terbaru dalam waktu 30 menit. Setiap revisi aktif yang mereferensikan rahasia dalam variabel lingkungan secara otomatis dimulai ulang untuk mengambil nilai baru.
Untuk kontrol penuh dari versi rahasia mana yang digunakan, tentukan versi dalam URI.
Mereferensikan rahasia dalam variabel lingkungan
Setelah mendeklarasikan rahasia di tingkat aplikasi seperti yang dijelaskan di bagian menentukan rahasia , Anda dapat mereferensikannya dalam variabel lingkungan saat membuat revisi baru di aplikasi kontainer Anda. Ketika variabel lingkungan mereferensikan rahasia, nilainya diisi dengan nilai yang ditentukan dalam rahasia.
Contoh
Contoh berikut menunjukkan aplikasi yang mendeklarasikan string koneksi di tingkat aplikasi. Koneksi ini dirujuk dalam variabel lingkungan kontainer dan dalam aturan skala.
Di sini, variabel lingkungan bernama connection-string mendapatkan nilainya dari rahasia queue-connection-string tingkat aplikasi. Selain itu, konfigurasi autentikasi aturan skala Azure Queue Storage menggunakan queue-connection-string rahasia untuk menentukan koneksinya.
Untuk menghindari penerapan nilai rahasia ke kontrol sumber dengan templat ARM Anda, teruskan nilai rahasia sebagai parameter templat ARM.
Dalam contoh ini, Anda membuat aplikasi kontainer menggunakan Azure CLI dengan rahasia yang direferensikan dalam variabel lingkungan. Untuk mereferensikan rahasia dalam variabel lingkungan di Azure CLI, atur nilainya ke secretref:, diikuti dengan nama rahasia.
Di sini, variabel lingkungan bernama connection-string mendapatkan nilainya dari rahasia queue-connection-string tingkat aplikasi.
Dalam contoh ini, Anda membuat kontainer menggunakan Azure PowerShell dengan rahasia yang direferensikan dalam variabel lingkungan. Untuk mereferensikan rahasia dalam variabel lingkungan di PowerShell, atur nilainya ke secretref:, diikuti dengan nama rahasia.
Di sini, variabel lingkungan bernama ConnectionString mendapatkan nilainya dari rahasia $QueueConnectionString tingkat aplikasi.
Memasang rahasia dalam volume
Setelah mendeklarasikan rahasia di tingkat aplikasi seperti yang dijelaskan di bagian menentukan rahasia , Anda dapat mereferensikannya dalam pemasangan volume saat membuat revisi baru di aplikasi kontainer Anda. Saat Anda memasang rahasia dalam volume, setiap rahasia dipasang sebagai file dalam volume. Nama file adalah nama rahasia, dan konten file adalah nilai rahasia. Anda dapat memuat semua rahasia dalam pemasangan volume, atau Anda dapat memuat rahasia tertentu.
Di bagian Pemasangan volume, perluas bagian Rahasia .
Pilih Buat volume baru.
Masukkan informasi berikut:
Nama: mysecrets
Pasang semua rahasia: diaktifkan
Catatan
Jika Anda ingin memuat rahasia tertentu, nonaktifkan Pasang semua rahasia dan pilih rahasia yang ingin Anda muat.
Pilih Tambahkan.
Di bawah Nama volume, pilih mysecrets.
Di bawah Jalur pemasangan, masukkan /mnt/secrets.
Pilih Simpan.
Pilih Buat untuk membuat revisi baru dengan pemasangan volume.
Dalam contoh ini, dua rahasia dideklarasikan di tingkat aplikasi. Rahasia ini dipasang dalam volume bernama mysecrets jenis Secret. Volume dipasang di jalur /mnt/secrets. Aplikasi kemudian dapat mereferensikan rahasia dalam pemasangan volume.
Untuk memuat rahasia tertentu dan menentukan jalurnya dalam volume yang dipasang, Anda menentukan rahasia dalam secrets array objek volume. Contoh berikut menunjukkan cara memuat hanya queue-connection-string rahasia dalam mysecrets pemasangan volume dengan nama connection-string.txtfile .
Di aplikasi, Anda dapat membaca rahasia dari file yang terletak di /mnt/secrets/connection-string.txt.
Dalam contoh ini, dua rahasia dideklarasikan di tingkat aplikasi. Rahasia ini dipasang dalam volume bernama mysecrets jenis Secret. Volume dipasang di jalur /mnt/secrets. Aplikasi kemudian dapat membaca rahasia sebagai file dalam pemasangan volume.