Enkripsi data aplikasi Anda saat tidak digunakan menggunakan kunci yang dikelola pelanggan
Mengenkripsi data aplikasi fungsi Anda saat istirahat memerlukan Akun Azure Storage dan Azure Key Vault. Layanan ini digunakan saat Anda menjalankan aplikasi dari paket penyebaran.
- Azure Storage menyediakan enkripsi at rest. Anda dapat menggunakan kunci yang disediakan sistem atau kunci Anda sendiri yang dikelola pelanggan. Di sinilah data aplikasi Anda disimpan saat data tidak berjalan di aplikasi fungsi di Azure.
- Berjalan dari paket penyebaran adalah fitur penyebaran App Service. Ini memungkinkan Anda untuk menyebarkan konten situs dari Akun Azure Storage menggunakan URL Tanda Tangan Akses Bersama (Shared Access Signature/SAS).
- Referensi Key Vault adalah fitur keamanan App Service. Ini memungkinkan Anda untuk mengimpor rahasia pada runtime sebagai pengaturan aplikasi. Gunakan referensi ini untuk mengenkripsi URL SAS Akun Azure Storage Anda.
Menyiapkan enkripsi at rest
Buat akun Azure Storage
Pertama, buat akun Azure Storage dan enkripsikan dengan kunci yang dikelola pelanggan. Setelah akun penyimpanan dibuat, gunakan Azure Storage Explorer untuk mengunggah file paket.
Selanjutnya, gunakan Storage Explorer untuk menghasilkan SAS.
Catatan
Simpan URL SAS ini untuk digunakan nanti saat mengaktifkan akses aman paket penyebaran pada runtime.
Konfigurasikan menjalankan dari paket dari akun penyimpanan Anda
Setelah mengunggah file Anda ke penyimpanan Blob dan memiliki URL SAS untuk file itu, atur pengaturan aplikasi WEBSITE_RUN_FROM_PACKAGE
ke URL SAS. Contoh berikut melakukannya dengan menggunakan Azure CLI:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="<your-SAS-URL>"
Menambahkan pengaturan aplikasi ini menyebabkan aplikasi fungsi Anda dihidupkan ulang. Setelah aplikasi dihidupkan ulang, telusuri dan pastikan bahwa aplikasi telah mulai dengan benar menggunakan paket penyebaran. Jika aplikasi tidak memulai dengan benar, lihat Panduan pemecahan masalah menjalankan dari paket.
Mengenkripsi pengaturan aplikasi menggunakan referensi Key Vault
Sekarang Anda dapat mengganti nilai pengaturan aplikasi WEBSITE_RUN_FROM_PACKAGE
dengan referensi Key Vault ke URL yang dikodekan SAS. Ini membuat URL SAS dienkripsi di Key Vault, yang memberikan lapisan keamanan tambahan.
Gunakan perintah
az keyvault create
berikut untuk membuat instans Key Vault.az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus
Ikuti petunjuk berikut untuk memberi aplikasi Anda akses ke brankas kunci:
Gunakan perintah
az keyvault secret set
berikut untuk menambahkan URL eksternal Anda sebagai rahasia di brankas kunci:az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Gunakan perintah
az webapp config appsettings set
berikut untuk membuat pengaturan aplikasiWEBSITE_RUN_FROM_PACKAGE
dengan nilai sebagai referensi Key Vault ke URL eksternal:az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"
<secret-version>
akan berada di output dari perintahaz keyvault secret set
sebelumnya.
Memperbarui pengaturan aplikasi ini menyebabkan aplikasi fungsi Anda dihidupkan ulang. Setelah aplikasi dimulai ulang, telusuri untuk memastikan aplikasi telah dimulai dengan benar menggunakan referensi Key Vault.
Cara memutar token akses
Memutar kunci SAS dari akun penyimpanan Anda secara berkala merupakan praktik terbaik untuk dilakukan. Untuk memastikan aplikasi fungsi tidak secara tidak sengaja kehilangan akses, Anda juga harus memperbarui URL SAS di Key Vault.
Putar kunci SAS dengan membuka akun penyimpanan Anda di portal Microsoft Azure. Di bawah Pengaturan>Tombol akses, pilih ikon untuk memutar kunci SAS.
Salin URL SAS yang baru, dan gunakan perintah berikut untuk mengatur URL SAS yang diperbarui di brankas kunci Anda:
az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Perbarui referensi brankas kunci dalam pengaturan aplikasi Anda ke versi rahasia baru:
az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"
<secret-version>
akan berada di output dari perintahaz keyvault secret set
sebelumnya.
Cara mencabut akses data aplikasi fungsi
Ada dua metode untuk mencabut akses aplikasi fungsi ke akun penyimpanan.
Putar kunci SAS untuk akun Azure Storage
Jika kunci SAS untuk akun penyimpanan diputar, aplikasi fungsi tidak akan lagi memiliki akses ke akun penyimpanan, tetapi akan terus berjalan dengan versi terakhir yang diunduh dari file paket. Hidupkan ulang aplikasi fungsi untuk menghapus versi terakhir yang diunduh.
Hapus akses aplikasi fungsi ke Key Vault
Anda dapat mencabut akses aplikasi fungsi ke data situs dengan menonaktifkan akses aplikasi fungsi ke Key Vault. Untuk melakukan ini, hapus kebijakan akses untuk identitas aplikasi fungsi. Ini adalah identitas sama yang Anda buat sebelumnya saat mengonfigurasi referensi brankas kunci.
Ringkasan
File aplikasi Anda sekarang dienkripsi saat tidak digunakan di akun penyimpanan Anda. Saat aplikasi fungsi Anda dimulai, aplikasi akan mengambil URL SAS dari brankas kunci. Terakhir, aplikasi fungsi memuat file aplikasi dari akun penyimpanan.
Jika Anda perlu mencabut akses aplikasi fungsi ke akun penyimpanan, Anda dapat mencabut akses ke brankas kunci atau memutar kunci akun penyimpanan, yang keduanya membatalkan URL SAS.
Pertanyaan Umum
Apakah ada biaya tambahan untuk menjalankan aplikasi fungsi saya dari paket penyebaran?
Hanya biaya yang terkait dengan Akun Azure Storage dan biaya keluar yang berlaku.
Bagaimana cara berjalan dari paket penyebaran memengaruhi aplikasi fungsi saya?
- Menjalankan aplikasi Anda dari paket penyebaran menjadikan
wwwroot/
baca-saja. Aplikasi Anda mendapatkan kesalahan saat mencoba menulis ke direktori ini. - Format TAR dan GZIP tidak didukung.
- Fitur ini tidak kompatibel dengan cache lokal.