Dela via


Kryptering i vila med kundhanterade nycklar

Kryptering av webbappens programdata i vila kräver ett Azure Storage-konto och en Azure-Key Vault. Dessa tjänster används när du kör din app från ett distributionspaket.

  • Azure Storage tillhandahåller kryptering i vila. Du kan använda systemspecifika nycklar eller egna kundhanterade nycklar. Det är här dina programdata lagras när de inte körs i en webbapp i Azure.
  • Att köra från ett distributionspaket är en distributionsfunktion i App Service. Det gör att du kan distribuera webbplatsinnehållet från ett Azure Storage-konto med hjälp av en URL för signatur för delad åtkomst (SAS).
  • Key Vault referenser är en säkerhetsfunktion i App Service. Det gör att du kan importera hemligheter vid körning som programinställningar. Använd detta för att kryptera SAS-URL:en för ditt Azure Storage-konto.

Konfigurera kryptering i vila

Skapa ett Azure Storage-konto

Skapa först ett Azure Storage-konto och kryptera det med kundhanterade nycklar. När lagringskontot har skapats använder du Azure Storage Explorer för att ladda upp paketfiler.

Använd sedan Storage Explorer för att generera en SAS.

Anteckning

Spara den här SAS-URL:en. Den används senare för att aktivera säker åtkomst till distributionspaketet vid körning.

Konfigurera körning från ett paket från ditt lagringskonto

När du har laddat upp filen till Blob Storage och har en SAS-URL för filen ställer du in programinställningen WEBSITE_RUN_FROM_PACKAGE på SAS-URL:en. I följande exempel används Azure CLI:

az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="<your-SAS-URL>"

Om du lägger till den här programinställningen startas webbappen om. När appen har startats om bläddrar du till den och kontrollerar att appen har startats korrekt med hjälp av distributionspaketet. Om programmet inte startades korrekt kan du läsa felsökningsguiden Kör från paket.

Kryptera programinställningen med hjälp av Key Vault referenser

Nu kan du ersätta värdet för programinställningen WEBSITE_RUN_FROM_PACKAGE med en Key Vault referens till DEN SAS-kodade URL:en. Detta håller SAS-URL:en krypterad i Key Vault, vilket ger ett extra säkerhetslager.

  1. Använd följande az keyvault create kommando för att skapa en Key Vault-instans.

    az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus    
    
  2. Följ de här anvisningarna för att ge din app åtkomst till ditt nyckelvalv:

  3. Använd följande az keyvault secret set kommando för att lägga till din externa URL som en hemlighet i nyckelvalvet:

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  4. Använd följande az webapp config appsettings set kommando för att skapa programinställningen WEBSITE_RUN_FROM_PACKAGE med värdet som en Key Vault referens till den externa URL:en:

    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> kommer att finnas i utdata från föregående az keyvault secret set kommando.

Om du uppdaterar den här programinställningen startas webbappen om. När appen har startats om bläddrar du till den och kontrollerar att den har startats korrekt med hjälp av referensen Key Vault.

Så här roterar du åtkomsttoken

Det är bästa praxis att regelbundet rotera SAS-nyckeln för ditt lagringskonto. För att säkerställa att webbappen inte oavsiktligt förlorar åtkomst måste du även uppdatera SAS-URL:en i Key Vault.

  1. Rotera SAS-nyckeln genom att gå till ditt lagringskonto i Azure Portal. Under Inställningar>Åtkomstnycklar väljer du ikonen för att rotera SAS-nyckeln.

  2. Kopiera den nya SAS-URL:en och använd följande kommando för att ange den uppdaterade SAS-URL:en i nyckelvalvet:

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  3. Uppdatera key vault-referensen i programinställningen till den nya hemliga versionen:

    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> kommer att finnas i utdata från föregående az keyvault secret set kommando.

Återkalla webbappens dataåtkomst

Det finns två metoder för att återkalla webbappens åtkomst till lagringskontot.

Rotera SAS-nyckeln för Azure Storage-kontot

Om SAS-nyckeln för lagringskontot roteras har webbappen inte längre åtkomst till lagringskontot, men den fortsätter att köras med den senast nedladdade versionen av paketfilen. Starta om webbappen för att rensa den senast nedladdade versionen.

Ta bort webbappens åtkomst till Key Vault

Du kan återkalla webbappens åtkomst till webbplatsdata genom att inaktivera webbappens åtkomst till Key Vault. Det gör du genom att ta bort åtkomstprincipen för webbappens identitet. Det här är samma identitet som du skapade tidigare när du konfigurerade key vault-referenser.

Sammanfattning

Programfilerna krypteras nu i vila på ditt lagringskonto. När webbappen startar hämtar den SAS-URL:en från ditt nyckelvalv. Slutligen läser webbappen in programfilerna från lagringskontot.

Om du behöver återkalla webbappens åtkomst till ditt lagringskonto kan du antingen återkalla åtkomsten till nyckelvalvet eller rotera lagringskontonycklarna, som båda ogiltigförklarar SAS-URL:en.

Vanliga frågor och svar

Tillkommer någon extra avgift för att köra min webbapp från distributionspaketet?

Endast kostnaden som är kopplad till Azure Storage-kontot och eventuella tillämpliga avgifter för utgående trafik.

Hur påverkar körningen från distributionspaketet min webbapp?

  • Om du kör appen från distributionspaketet blir wwwroot/ den skrivskyddad. Appen får ett felmeddelande när den försöker skriva till den här katalogen.
  • TAR- och GZIP-format stöds inte.
  • Den här funktionen är inte kompatibel med lokal cache.

Nästa steg