Udostępnij za pośrednictwem


Szyfrowanie danych aplikacji magazynowanych przy użyciu kluczy zarządzanych przez klienta

Szyfrowanie danych aplikacji funkcji magazynowanych wymaga konta usługi Azure Storage i usługi Azure Key Vault. Te usługi są używane podczas uruchamiania aplikacji z pakietu wdrożeniowego.

  • Usługa Azure Storage zapewnia szyfrowanie danych magazynowanych. Możesz użyć kluczy dostarczonych przez system lub własnych kluczy zarządzanych przez klienta. W tym miejscu dane aplikacji są przechowywane, gdy nie są uruchomione w aplikacji funkcji na platformie Azure.
  • Uruchamianie z pakietu wdrożeniowego to funkcja wdrażania App Service. Umożliwia ona wdrażanie zawartości witryny z konta usługi Azure Storage przy użyciu adresu URL sygnatury dostępu współdzielonego (SAS).
  • Key Vault odwołania to funkcja zabezpieczeń App Service. Umożliwia importowanie wpisów tajnych w czasie wykonywania jako ustawień aplikacji. Służy do szyfrowania adresu URL sygnatury dostępu współdzielonego konta usługi Azure Storage.

Konfigurowanie szyfrowania magazynowanych

Tworzenie konta usługi Azure Storage

Najpierw utwórz konto usługi Azure Storage i zaszyfruj je przy użyciu kluczy zarządzanych przez klienta. Po utworzeniu konta magazynu użyj Eksplorator usługi Azure Storage, aby przekazać pliki pakietu.

Następnie użyj Eksplorator usługi Storage, aby wygenerować sygnaturę dostępu współdzielonego.

Uwaga

Zapisz ten adres URL sygnatury dostępu współdzielonego. Zostanie on użyty później w celu umożliwienia bezpiecznego dostępu do pakietu wdrożeniowego w czasie wykonywania.

Konfigurowanie uruchamiania z pakietu z konta magazynu

Po przekazaniu pliku do usługi Blob Storage i utworzeniu adresu URL sygnatury dostępu współdzielonego dla pliku ustaw WEBSITE_RUN_FROM_PACKAGE ustawienie aplikacji na adres URL sygnatury dostępu współdzielonego. W poniższym przykładzie jest on używany przy użyciu interfejsu wiersza polecenia platformy Azure:

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

Dodanie tego ustawienia aplikacji powoduje ponowne uruchomienie aplikacji funkcji. Po ponownym uruchomieniu aplikacji przejdź do niej i upewnij się, że aplikacja została uruchomiona prawidłowo przy użyciu pakietu wdrożeniowego. Jeśli aplikacja nie uruchomiła się poprawnie, zobacz przewodnik rozwiązywania problemów Uruchom z pakietu.

Szyfrowanie ustawienia aplikacji przy użyciu odwołań Key Vault

Teraz możesz zastąpić wartość WEBSITE_RUN_FROM_PACKAGE ustawienia aplikacji odwołaniem Key Vault do adresu URL zakodowanego przy użyciu sygnatury dostępu współdzielonego. Dzięki temu adres URL sygnatury dostępu współdzielonego jest szyfrowany w Key Vault, co zapewnia dodatkową warstwę zabezpieczeń.

  1. Użyj następującego az keyvault create polecenia, aby utworzyć wystąpienie Key Vault.

    az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus    
    
  2. Postępuj zgodnie z tymi instrukcjami, aby udzielić aplikacji dostępu do magazynu kluczy:

  3. Użyj następującego az keyvault secret set polecenia, aby dodać zewnętrzny adres URL jako wpis tajny w magazynie kluczy:

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  4. Użyj następującego az webapp config appsettings set polecenia, aby utworzyć WEBSITE_RUN_FROM_PACKAGE ustawienie aplikacji z wartością jako Key Vault odwołaniem do zewnętrznego adresu 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>"    
    

    Element <secret-version> będzie znajdować się w danych wyjściowych poprzedniego az keyvault secret set polecenia.

Zaktualizowanie tego ustawienia aplikacji powoduje ponowne uruchomienie aplikacji funkcji. Po ponownym uruchomieniu aplikacji przejdź do niej, aby upewnić się, że została uruchomiona prawidłowo przy użyciu odwołania Key Vault.

Jak obrócić token dostępu

Najlepszym rozwiązaniem jest okresowe obracanie klucza sygnatury dostępu współdzielonego konta magazynu. Aby upewnić się, że aplikacja funkcji nie utraci dostępu przypadkowo, należy również zaktualizować adres URL sygnatury dostępu współdzielonego w Key Vault.

  1. Obracanie klucza sygnatury dostępu współdzielonego przez przejście do konta magazynu w Azure Portal. W obszarze Ustawienia>Klucze dostępu wybierz ikonę, aby obrócić klucz SAS.

  2. Skopiuj nowy adres URL sygnatury dostępu współdzielonego i użyj następującego polecenia, aby ustawić zaktualizowany adres URL sygnatury dostępu współdzielonego w magazynie kluczy:

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  3. Zaktualizuj odwołanie do magazynu kluczy w ustawieniu aplikacji na nową wersję wpisu tajnego:

    az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"    
    

    Element <secret-version> będzie znajdować się w danych wyjściowych poprzedniego az keyvault secret set polecenia.

Jak odwołać dostęp do danych aplikacji funkcji

Istnieją dwie metody odwoływanie dostępu aplikacji funkcji do konta magazynu.

Obracanie klucza sygnatury dostępu współdzielonego dla konta usługi Azure Storage

Jeśli klucz SYGNATURy dostępu współdzielonego dla konta magazynu zostanie obrócony, aplikacja funkcji nie będzie już mieć dostępu do konta magazynu, ale będzie nadal działać z ostatnią pobraną wersją pliku pakietu. Uruchom ponownie aplikację funkcji, aby wyczyścić ostatnią pobraną wersję.

Usuwanie dostępu aplikacji funkcji do Key Vault

Dostęp aplikacji funkcji do danych lokacji można odwołać, wyłączając dostęp aplikacji funkcji do Key Vault. Aby to zrobić, usuń zasady dostępu dla tożsamości aplikacji funkcji. Jest to ta sama tożsamość, która została utworzona wcześniej podczas konfigurowania odwołań do magazynu kluczy.

Podsumowanie

Pliki aplikacji są teraz szyfrowane podczas magazynowania na koncie magazynu. Po uruchomieniu aplikacji funkcji pobiera ona adres URL sygnatury dostępu współdzielonego z magazynu kluczy. Na koniec aplikacja funkcji ładuje pliki aplikacji z konta magazynu.

Jeśli musisz odwołać dostęp aplikacji funkcji do konta magazynu, możesz odwołać dostęp do magazynu kluczy lub obrócić klucze konta magazynu, z których oba unieważniają adres URL sygnatury dostępu współdzielonego.

Często zadawane pytania

Czy z pakietu wdrożeniowego są naliczane dodatkowe opłaty za uruchomienie aplikacji funkcji?

Tylko koszt związany z kontem usługi Azure Storage i wszelkimi odpowiednimi opłatami za ruch wychodzący.

Jak działa z pakietu wdrożeniowego wpływa na moją aplikację funkcji?

  • Uruchomienie aplikacji z pakietu wdrożeniowego powoduje, że wwwroot/ jest tylko do odczytu. Aplikacja otrzymuje błąd podczas próby zapisania w tym katalogu.
  • Formaty TAR i GZIP nie są obsługiwane.
  • Ta funkcja nie jest zgodna z lokalną pamięcią podręczną.

Następne kroki