Uw toepassingsgegevens in rust versleutelen met behulp van door de klant beheerde sleutels
Voor het versleutelen van de toepassingsgegevens van uw functie-app zijn een Azure Storage-account en een Azure-Key Vault vereist. Deze services worden gebruikt wanneer u uw app uitvoert vanuit een implementatiepakket.
- Azure Storage biedt versleuteling at rest. U kunt door het systeem geleverde sleutels of uw eigen, door de klant beheerde sleutels gebruiken. Hier worden uw toepassingsgegevens opgeslagen wanneer deze niet worden uitgevoerd in een functie-app in Azure.
- Het uitvoeren vanuit een implementatiepakket is een implementatiefunctie van App Service. Hiermee kunt u uw site-inhoud implementeren vanuit een Azure Storage-account met behulp van een SAS-URL (Shared Access Signature).
- Key Vault verwijzingen zijn een beveiligingsfunctie van App Service. Hiermee kunt u geheimen tijdens runtime importeren als toepassingsinstellingen. Gebruik dit om de SAS-URL van uw Azure Storage-account te versleutelen.
Versleuteling at rest instellen
Een Azure Storage-account maken
Maak eerst een Azure Storage-account en versleutel dit met door de klant beheerde sleutels. Zodra het opslagaccount is gemaakt, gebruikt u de Azure Storage Explorer om pakketbestanden te uploaden.
Gebruik vervolgens de Storage Explorer om een SAS te genereren.
Notitie
Sla deze SAS-URL op. Deze wordt later gebruikt om beveiligde toegang tot het implementatiepakket tijdens runtime in te schakelen.
Uitvoering configureren vanuit een pakket vanuit uw opslagaccount
Nadat u het bestand hebt geĆ¼pload naar Blob Storage en een SAS-URL voor het bestand hebt, stelt u de WEBSITE_RUN_FROM_PACKAGE
toepassingsinstelling in op de SAS-URL. In het volgende voorbeeld wordt dit uitgevoerd met behulp van Azure CLI:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="<your-SAS-URL>"
Als u deze toepassingsinstelling toevoegt, wordt uw functie-app opnieuw opgestart. Nadat de app opnieuw is opgestart, bladert u ernaartoe en controleert u of de app correct is gestart met behulp van het implementatiepakket. Als de toepassing niet correct is gestart, raadpleegt u de probleemoplossingsgids Uitvoeren vanuit pakket.
De toepassingsinstelling versleutelen met behulp van Key Vault verwijzingen
U kunt nu de waarde van de WEBSITE_RUN_FROM_PACKAGE
toepassingsinstelling vervangen door een Key Vault verwijzing naar de URL met SAS-codering. Hierdoor blijft de SAS-URL versleuteld in Key Vault, wat een extra beveiligingslaag biedt.
Gebruik de volgende
az keyvault create
opdracht om een Key Vault-exemplaar te maken.az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus
Volg deze instructies om uw app toegang te verlenen tot uw sleutelkluis:
Gebruik de volgende
az keyvault secret set
opdracht om uw externe URL toe te voegen als geheim in uw sleutelkluis:az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Gebruik de volgende
az webapp config appsettings set
opdracht om deWEBSITE_RUN_FROM_PACKAGE
toepassingsinstelling te maken met de waarde als een Key Vault verwijzing naar de externe URL:az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"
De
<secret-version>
wordt weergegeven in de uitvoer van de vorigeaz keyvault secret set
opdracht.
Als u deze toepassingsinstelling bijwerkt, wordt uw functie-app opnieuw opgestart. Nadat de app opnieuw is opgestart, bladert u ernaartoe en controleert u of deze correct is gestart met behulp van de Key Vault-verwijzing.
Het toegangstoken draaien
Het wordt aanbevolen om de SAS-sleutel van uw opslagaccount periodiek te roteren. Om ervoor te zorgen dat de functie-app niet per ongeluk toegang verliest, moet u ook de SAS-URL bijwerken in Key Vault.
Draai de SAS-sleutel door te navigeren naar uw opslagaccount in de Azure Portal. Selecteer onder Instellingen>Toegangssleutels het pictogram om de SAS-sleutel te draaien.
Kopieer de nieuwe SAS-URL en gebruik de volgende opdracht om de bijgewerkte SAS-URL in uw sleutelkluis in te stellen:
az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Werk de sleutelkluisreferentie in uw toepassingsinstelling bij naar de nieuwe geheime versie:
az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"
De
<secret-version>
wordt weergegeven in de uitvoer van de vorigeaz keyvault secret set
opdracht.
De gegevenstoegang van de functie-app intrekken
Er zijn twee methoden om de toegang van de functie-app tot het opslagaccount in te trekken.
De SAS-sleutel voor het Azure Storage-account roteren
Als de SAS-sleutel voor het opslagaccount wordt geroteerd, heeft de functie-app geen toegang meer tot het opslagaccount, maar blijft deze worden uitgevoerd met de laatst gedownloade versie van het pakketbestand. Start de functie-app opnieuw om de laatst gedownloade versie te wissen.
De toegang van de functie-app tot Key Vault verwijderen
U kunt de toegang van de functie-app tot de sitegegevens intrekken door de toegang van de functie-app tot Key Vault uit te schakelen. Hiervoor verwijdert u het toegangsbeleid voor de identiteit van de functie-app. Dit is dezelfde identiteit die u eerder hebt gemaakt tijdens het configureren van sleutelkluisverwijzingen.
Samenvatting
Uw toepassingsbestanden zijn nu versleuteld at rest in uw opslagaccount. Wanneer uw functie-app wordt gestart, wordt de SAS-URL opgehaald uit uw sleutelkluis. Ten slotte laadt de functie-app de toepassingsbestanden uit het opslagaccount.
Als u de toegang van de functie-app tot uw opslagaccount wilt intrekken, kunt u de toegang tot de sleutelkluis intrekken of de sleutels van het opslagaccount roteren. Beide maken de SAS-URL ongeldig.
Veelgestelde vragen
Zijn er extra kosten verbonden aan het uitvoeren van mijn functie-app vanuit het implementatiepakket?
Alleen de kosten die zijn gekoppeld aan het Azure Storage-account en eventuele toepasselijke uitgaande kosten.
Wat is de invloed van het uitvoeren vanuit het implementatiepakket op mijn functie-app?
- Als u uw app uitvoert vanuit het implementatiepakket, wordt alleen-lezen
wwwroot/
. Uw app krijgt een foutmelding wanneer wordt geprobeerd naar deze map te schrijven. - TAR- en GZIP-indelingen worden niet ondersteund.
- Deze functie is niet compatibel met de lokale cache.