Шифрование неактивных данных приложения с помощью ключей, управляемых клиентом
Для шифрования неактивных данных приложения-функции требуется учетная запись службы хранилища Azure и Azure Key Vault. Эти службы используются при запуске приложения из пакета развертывания.
- Служба хранилища Azure обеспечивает шифрование неактивных данных. Вы можете использовать ключи, предоставляемые системой, или собственные ключи, управляемые клиентом. Именно здесь хранятся данные приложения, когда они не выполняются в приложении-функции Azure.
- Запуск из пакета развертывания — это функция развертывания Службы приложений. Эта функция позволяет развертывать содержимое сайта из учетной записи службы хранилища Azure, используя подписанный URL-адрес (SAS).
- Ссылки на Key Vault — это функция безопасности Службы приложений. Она позволяет импортировать секреты в качестве параметров приложения во время его выполнения. Используйте эту возможность, чтобы зашифровать подписанный URL-адрес учетной записи службы хранилища Azure.
Настройка шифрования неактивных данных
Создание учетной записи хранения Azure
Сначала создайте учетную запись службы хранилища Azure и зашифруйте ее с помощью ключей, управляемых клиентом. После создания учетной записи хранения отправьте файлы пакета с помощью Обозревателя службы хранилища Azure.
Затем с помощью Обозревателя службы хранилища создайте SAS.
Примечание
Сохраните этот подписанный URL-адрес. Он будет использоваться позже для обеспечения безопасного доступа к пакету развертывания во время выполнения.
Настройка запуска из пакета из учетной записи хранения
Когда вы отправите файл в хранилище BLOB-объектов и получите для него подписанный URL-адрес, установите для параметра приложения WEBSITE_RUN_FROM_PACKAGE
значение этого URL-адреса. В приведенном ниже примере показано, как сделать это с помощью Azure CLI.
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="<your-SAS-URL>"
Добавление этого параметра приложения приводит к перезапуску приложения-функции. После перезапуска приложения перейдите к нему и убедитесь, что оно запустилось правильно с помощью пакета развертывания. Если приложение запустилось неправильно, обратитесь к руководству по устранению неполадок с запуском из пакета.
Шифрование параметров приложения с помощью ссылок на Key Vault
Теперь вы можете заменить значение параметра приложения WEBSITE_RUN_FROM_PACKAGE
со ссылкой на Key Vault на URL-адрес в кодировке SAS. При этом подписанный URL-адрес будет зашифрован в Key Vault, что обеспечит дополнительный уровень безопасности.
Создайте экземпляр Key Vault, используя следующую команду
az keyvault create
.az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus
Следуйте приведенным ниже инструкциям, чтобы предоставить приложению доступ к хранилищу ключей.
С помощью команды
az keyvault secret set
добавьте внешний URL-адрес в качестве секрета в хранилище ключей:az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Используйте следующую команду
az webapp config appsettings set
, чтобы создать параметр приложенияWEBSITE_RUN_FROM_PACKAGE
со значением в качестве ссылки Key Vault на внешний 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>"
<secret-version>
будет находиться в выходных данных предыдущей командыaz keyvault secret set
.
Обновление этого параметра приложения приведет к перезапуску приложения-функции. После перезапуска приложения перейдите к нему и убедитесь, что оно запустилось правильно, используя ссылку на Key Vault.
Смена маркера доступа
Рекомендуется периодически менять ключ SAS учетной записи хранения. Чтобы приложение-функция не потеряло доступ случайно, необходимо также обновить URL-адрес SAS в Key Vault.
Чтобы сменить ключ SAS, перейдите к учетной записи хранения на портале Azure. В разделе Параметры Ключи>доступа щелкните значок, чтобы сменить ключ SAS.
Скопируйте новый подписанный URL-адрес и используйте следующую команду, чтобы задать обновленный подписанный URL-адрес в хранилище ключей:
az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-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>"
<secret-version>
будет находиться в выходных данных предыдущей командыaz keyvault secret set
.
Отмена доступа к данным приложения-функции
Отменить доступ приложения-функции к учетной записи хранения можно двумя способами.
Смена ключа SAS для учетной записи службы хранилища Azure
Если ключ SAS для учетной записи хранения меняется, приложение-функция больше не будет иметь доступа к учетной записи хранения, но продолжит работу с последней скачанной версией файла пакета. Перезапустите приложение-функцию, чтобы удалить последнюю скачанную версию.
Удаление доступа приложения-функции к Key Vault
Вы можете отменить доступ приложения-функции к данным сайта, отключив доступ приложения-функции к Key Vault. Для этого удалите политику доступа для удостоверения приложения-функции. Это то же удостоверение, которое вы создали ранее в процессе настройки ссылок на хранилище ключей.
Сводка
Файлы приложения теперь хранятся в зашифрованном виде в учетной записи хранения. Когда приложение-функция запускается, оно извлекает подписанный URL-адрес из хранилища ключей. Наконец, приложение-функция загружает файлы приложения из учетной записи хранения.
Если необходимо отменить доступ приложения-функции к учетной записи хранения, можно либо отозвать доступ к хранилищу ключей, либо сменить ключи учетной записи хранения, причем URL-адрес SAS будет недействительным.
Вопросы и ответы
Взимается ли дополнительная плата за запуск приложения-функции из пакета развертывания?
Взимается только плата за учетную запись службы хранилища Azure и любая применимая плата за исходящий трафик.
Как запуск из пакета развертывания влияет на приложение-функцию?
- При запуске приложения из пакета развертывания каталог
wwwroot/
становится доступным только для чтения. При попытке записи в этот каталог ваше приложение получит ошибку. - Форматы TAR и GZIP не поддерживаются.
- Эта функция несовместима с локальным кэшем.