Bagikan melalui


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.

  1. Gunakan perintah az keyvault create berikut untuk membuat instans Key Vault.

    az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus    
    
  2. Ikuti petunjuk berikut untuk memberi aplikasi Anda akses ke brankas kunci:

  3. 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>"    
    
  4. Gunakan perintah az webapp config appsettings set berikut untuk membuat pengaturan aplikasi WEBSITE_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 perintah az 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.

  1. Putar kunci SAS dengan membuka akun penyimpanan Anda di portal Microsoft Azure. Di bawah Pengaturan>Tombol akses, pilih ikon untuk memutar kunci SAS.

  2. 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>"    
    
  3. 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 perintah az 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.

Langkah berikutnya