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.

  1. 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    
    
  2. Volg deze instructies om uw app toegang te verlenen tot uw sleutelkluis:

  3. 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>"    
    
  4. Gebruik de volgende az webapp config appsettings set opdracht om de WEBSITE_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 vorige az 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.

  1. 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.

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

Volgende stappen