Penghentian TLS dengan sertifikat Key Vault

Azure Key Vault adalah penyimpanan rahasia yang dikelola platform yang bisa Anda gunakan untuk melindungi rahasia, kunci, dan sertifikat TLS/SSL. Azure Application Gateway mendukung integrasi dengan Azure Key Vault untuk sertifikat server yang dilampirkan ke listener dengan HTTP aktif. Dukungan ini terbatas pada v2 SKU App Gateway.

Application Gateway menawarkan dua model untuk penghentian TLS:

  • Berikan sertifikat TLS/SSL yang dilampirkan ke pendengar. Model ini adalah cara tradisional untuk meneruskan sertifikat TLS/SSL ke App Gateway untuk penghentian TLS.
  • Berikan referensi ke sertifikat atau rahasia Key Vault yang ada saat Anda membuat pendengar yang diaktifkan HTTPS.

Integrasi App Gateway dengan Key Vault menawarkan banyak manfaat, termasuk:

  • Keamanan yang lebih kuat, karena sertifikat TLS/SSL tidak ditangani langsung oleh tim pengembangan aplikasi. Integrasi memungkinkan tim keamanan terpisah untuk:
    • Menyiapkan App Gateway.
    • Mengontrol siklus hidup app gateway.
    • Berikan izin ke gateway aplikasi yang dipilih untuk mengakses sertifikat yang disimpan di Key Vault Anda.
  • Dukungan untuk mengimpor sertifikat yang ada ke Key Vault Anda. Atau gunakan API Key Vault untuk membuat dan mengelola sertifikat baru dengan salah satu mitra Key Vault yang tepercaya.
  • Dukungan untuk perpanjangan sertifikat otomatis yang disimpan di Key Vault Anda.

Sertifikat yang didukung

App Gateway saat ini hanya mendukung sertifikat yang divalidasi perangkat lunak. Sertifikat yang divalidasi modul keamanan perangkat keras (HSM) tidak didukung.

Setelah App Gateway dikonfigurasi untuk menggunakan sertifikat Key Vault,intans nya mengambil sertifikat dari Key Vault dan menginstalnya secara lokal untuk menghentikan TLS. Instans juga melakukan polling Key Vault pada interval empat jam untuk mengambil versi sertifikat yang diperbarui, jika ada. Jika sertifikat yang diperbarui ditemukan, sertifikat TLS/SSL yang terkait dengan pendengar HTTPS secara otomatis diputar.

Tip

Setiap perubahan pada Application Gateway memaksa pemeriksaan terhadap Key Vault untuk melihat apakah ada versi sertifikat baru yang tersedia. Ini termasuk, tetapi tidak terbatas pada, perubahan pada Konfigurasi IP Frontend, Pendengar, Aturan, Kumpulan Backend, Tag Sumber Daya, dan banyak lagi. Jika sertifikat yang diperbarui ditemukan, sertifikat baru segera disajikan.

Application Gateway menggunakan pengenal rahasia di Key Vault untuk mereferensikan sertifikat. Untuk Azure PowerShell, CLI Azure, atau Azure Resource Manager, kami sangat menyarankan Anda menggunakan pengidentifikasi rahasia yang tidak menentukan sebuah versi. Dengan cara ini, Application Gateway secara otomatis memutar sertifikat jika versi yang lebih baru tersedia di Key Vault Anda. Contoh URI rahasia tanpa versi adalah https://myvault.vault.azure.net/secrets/mysecret/. Anda dapat merujuk ke langkah-langkah PowerShell yang disediakan di bagian berikut.

Portal Microsoft Azure hanya mendukung sertifikat Key Vault, bukan rahasia. Application Gateway masih mendukung rahasia referensi dari Key Vault, tetapi hanya melalui sumber daya non-portal seperti PowerShell, CLI Azure, API, dan template Azure Resource Manager (template ARM).

Referensi ke Key Vault di langganan Azure lainnya didukung, tetapi harus dikonfigurasi melalui Templat ARM, Azure PowerShell, CLI, Bicep, dll. Konfigurasi brankas kunci lintas langganan tidak didukung oleh Application Gateway melalui portal Azure hari ini.

Pengaturan sertifikat di Key Vault

Untuk penghentian TLS, Application Gateway mendukung sertifikat dalam format Personal Information Exchange (PFX). Anda dapat mengimpor sertifikat yang sudah ada atau membuat sertifikat baru di Key Vault Anda. Untuk menghindari kegagalan, pastikan status sertifikat disetel ke Diaktifkan di Key Vault.

Cara kerja integrasi

Integrasi Application Gateway dengan Key Vault adalah proses konfigurasi tiga langkah:

Diagram that shows three steps for integrating Application Gateway with Key Vault.

Catatan

Integrasi Azure Application Gateway dengan Key Vault mendukung kebijakan akses Vault dan model izin kontrol akses berbasis peran Azure.

Mendapatkan identitas terkelola yang ditetapkan pengguna

Application Gateway menggunakan identitas terkelola untuk mengambil sertifikat dari Key Vault atas nama Anda.

Anda dapat membuat identitas terkelola baru yang ditetapkan pengguna atau menggunakan kembali yang sudah ada dengan integrasi. Untuk membuat identitas terkelola baru yang ditetapkan pengguna, lihat Membuat identitas terkelola yang ditetapkan pengguna menggunakan portal Azure.

Mendelegasikan identitas terkelola yang ditetapkan pengguna ke Key Vault

Tentukan kebijakan akses untuk menggunakan identitas terkelola yang ditetapkan pengguna dengan Key Vault Anda:

  1. Di portal Microsoft Azure, buka Key Vault.

  2. Pilih Key Vault yang berisi sertifikat Anda.

  3. Jika Anda menggunakan kebijakan akses Vault model izin: Pilih Kebijakan Akses, pilih + Tambahkan Kebijakan Akses, pilih Dapatkan untuk Izin rahasia, dan pilih identitas terkelola yang ditetapkan pengguna untuk Pilih prinsipal. Kemudian pilih Simpan.

    Jika Anda menggunakan kontrol akses berbasis peran Azure, ikuti artikel Menetapkan akses identitas terkelola ke sumber daya dan menetapkan identitas terkelola yang ditetapkan pengguna peran Pengguna Rahasia Key Vault ke Azure Key Vault.

Verifikasi Izin Firewall ke Key Vault

Mulai 15 Maret 2021, Key Vault mengakui Application Gateway sebagai layanan tepercaya dengan memanfaatkan Identitas yang Dikelola Pengguna untuk autentikasi ke Azure Key Vault. Dengan penggunaan titik akhir layanan dan mengaktifkan opsi layanan tepercaya untuk firewall Key Vault, Anda dapat membangun batas jaringan yang aman di Azure. Anda dapat menolak akses ke lalu lintas dari semua jaringan (termasuk lalu lintas internet) ke Key Vault tetapi tetap membuat Key Vault dapat diakses untuk sumber daya Application Gateway di bagian langganan Anda.

Saat Anda menggunakan Key Vault terbatas, gunakan langkah-langkah berikut untuk mengonfigurasi Application Gateway untuk menggunakan firewall dan jaringan virtual:

Tip

Langkah 1-3 tidak diperlukan jika Key Vault Anda mengaktifkan Titik Akhir Privat. Gateway aplikasi dapat mengakses Key Vault menggunakan alamat IP privat.

Penting

Jika menggunakan Titik Akhir Privat untuk mengakses Key Vault, Anda harus menautkan zona DNS privat privatelink.vaultcore.azure.net, yang berisi rekaman yang sesuai ke Key Vault yang direferensikan, ke jaringan virtual yang berisi Application Gateway. Server DNS kustom dapat terus digunakan di jaringan virtual alih-alih penyelesai yang disediakan Azure DNS, namun zona DNS privat juga harus tetap ditautkan ke jaringan virtual.

  1. Di portal Azure, di Key Vault Anda, pilih Jaringan.

  2. Pada tab Firewall dan jaringan virtual, pilih Jaringan yang dipilih.

  3. Untuk Jaringan virtual, pilih + Tambahkan jaringan virtual yang ada, lalu tambahkan jaringan virtual dan subnet untuk instans Application Gateway Anda. Jika diminta, pastikan kotak centang Jangan konfigurasikan titik akhir layanan 'Microsoft.KeyVault' saat ini tidak dicentang untuk memastikan Microsoft.KeyVault titik akhir layanan diaktifkan pada subnet.

  4. Pilih Ya untuk mengizinkan layanan tepercaya melewati firewall Key Vault.

    Screenshot that shows selections for configuring Application Gateway to use firewalls and virtual networks.

Catatan

Jika Anda menyebarkan instans Application Gateway melalui templat ARM dengan menggunakan Azure CLI atau PowerShell, atau melalui aplikasi Azure yang disebarkan dari portal Azure, sertifikat SSL disimpan di Key Vault sebagai file PFX yang dikodekan Base64. Anda harus menyelesaikan langkah-langkah dalam Menggunakan Azure Key Vault untuk meneruskan nilai parameter aman selama penyebaran.

Sangat penting untuk diatur enabledForTemplateDeployment ke true. Sertifikat mungkin atau mungkin tidak memiliki kata sandi. Untuk sertifikat dengan kata sandi, contoh berikut menunjukkan kemungkinan konfigurasi untuk sslCertificates entri untuk properties konfigurasi templat ARM untuk Application Gateway.

"sslCertificates": [
     {
         "name": "appGwSslCertificate",
         "properties": {
             "data": "[parameters('appGatewaySSLCertificateData')]",
            "password": "[parameters('appGatewaySSLCertificatePassword')]"
        }
    }
]

appGatewaySSLCertificateData Nilai dan appGatewaySSLCertificatePassword dicari dari Key Vault, seperti yang dijelaskan dalam Rahasia referensi dengan ID dinamis. Ikuti referensi mundur dari parameters('secretName') untuk melihat bagaimana pencarian terjadi. Jika sertifikat tidak memiliki kata sandi, hilangkan entri password tersebut.

Mengonfigurasi Pendengar Application Gateway

Model kebijakan akses Key Vault izin Vault

Navigasi ke Application Gateway Anda di portal Azure dan pilih tab Listener. Pilih Tambahkan Listener (atau pilih listener yang sudah ada) dan tentukan HTTPS untuk protokol.

Di bawah Pilih sertifikat, pilih Buat baru lalu pilih Pilih sertifikat dari Key Vault di bawah Pengaturan Https.

Untuk nama Cert, ketik nama yang mudah diingat agar sertifikat direferensikan di Key Vault. Pilih Identitas terkelola, Key Vault, dan Sertifikat Anda.

Setelah dipilih, pilih Tambahkan (jika membuat) atau Simpan (jika mengedit) untuk menerapkan sertifikat Key Vault yang dirujuk ke pendengar.

Model izin kontrol akses berbasis peran Azure Key Vault

Application Gateway mendukung sertifikat yang dirujuk di Key Vault melalui model izin kontrol akses berbasis Peran. Beberapa langkah pertama untuk mereferensikan Key Vault harus diselesaikan melalui templat ARM, Bicep, CLI, atau PowerShell.

Catatan

Menentukan sertifikat Azure Key Vault yang tunduk pada model izin kontrol akses berbasis peran tidak didukung melalui portal.

Dalam contoh ini, kita akan menggunakan PowerShell untuk mereferensikan rahasia Key Vault baru.

# Get the Application Gateway we want to modify
$appgw = Get-AzApplicationGateway -Name MyApplicationGateway -ResourceGroupName MyResourceGroup
# Specify the resource id to the user assigned managed identity - This can be found by going to the properties of the managed identity
Set-AzApplicationGatewayIdentity -ApplicationGateway $appgw -UserAssignedIdentityId "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyManagedIdentity"
# Get the secret ID from Key Vault
$secret = Get-AzKeyVaultSecret -VaultName "MyKeyVault" -Name "CertificateName"
$secretId = $secret.Id.Replace($secret.Version, "") # Remove the secret version so Application Gateway uses the latest version in future syncs
# Specify the secret ID from Key Vault 
Add-AzApplicationGatewaySslCertificate -KeyVaultSecretId $secretId -ApplicationGateway $appgw -Name $secret.Name
# Commit the changes to the Application Gateway
Set-AzApplicationGateway -ApplicationGateway $appgw

Setelah perintah dijalankan, Anda dapat menavigasi ke Application Gateway Anda di portal Azure dan memilih tab Listener. Klik Tambahkan Listener (atau pilih yang sudah ada) dan tentukan Protokol ke HTTPS.

Di bawah Pilih sertifikat pilih sertifikat bernama di langkah-langkah sebelumnya. Setelah dipilih, pilih Tambahkan (jika membuat) atau Simpan (jika mengedit) untuk menerapkan sertifikat Key Vault yang dirujuk ke pendengar.

Menyelidiki dan menyelesaikan kesalahan Key Vault

Catatan

Penting untuk mempertimbangkan dampak apa pun pada sumber daya gateway aplikasi Anda saat membuat perubahan atau mencabut akses ke sumber daya Key Vault Anda. Jika gateway aplikasi Anda tidak dapat mengakses brankas kunci terkait atau menemukan objek sertifikat di dalamnya, gateway aplikasi secara otomatis mengatur pendengar ke status dinonaktifkan.

Anda dapat mengidentifikasi peristiwa berbasis pengguna ini dengan melihat Kesehatan Sumber Daya untuk gateway aplikasi Anda. Pelajari selengkapnya.

Azure Application Gateway tidak hanya melakukan polling untuk versi sertifikat yang diperbarui di Key Vault setiap interval empat jam. Ini juga mencatat kesalahan apa pun dan terintegrasi dengan Azure Advisor untuk menampilkan kesalahan konfigurasi dengan rekomendasi untuk perbaikannya.

  1. Masuk ke portal Azure Anda
  2. Pilih Advisor
  3. Pilih Kategori Keunggulan Operasional dari menu sebelah kiri.
  4. Anda menemukan rekomendasi berjudul Mengatasi masalah Azure Key Vault untuk Application Gateway Anda, jika gateway Anda mengalami masalah ini. Pastikan langganan yang benar dipilih dari opsi drop-down di atas.
  5. Pilih untuk melihat detail kesalahan, sumber daya brankas kunci terkait, dan panduan pemecahan masalah untuk memperbaiki masalah anda.

Dengan mengidentifikasi peristiwa tersebut melalui Azure Advisor atau Resource Health, Anda dapat dengan cepat menyelesaikan masalah konfigurasi apa pun dengan Key Vault Anda. Kami sangat menyarankan Anda memanfaatkan pemberitahuan Azure Advisor dan Resource Health untuk tetap mendapatkan informasi saat masalah terdeteksi.

Untuk pemberitahuan Advisor, gunakan "Atasi masalah Azure Key Vault untuk Application Gateway Anda" dalam jenis rekomendasi yang ditampilkan:
Diagram that shows steps for Advisor alert.

Anda dapat mengonfigurasi pemberitahuan Kesehatan sumber daya seperti yang diilustrasikan:
Diagram that shows steps for Resource health alert.

Langkah berikutnya

Mengonfigurasi penghentian TLS dengan sertifikat Key Vault menggunakan Azure PowerShell