Encriptar os dados da aplicação inativos com chaves geridas pelo cliente
Encriptar os dados da aplicação de funções inativos requer uma Conta de Armazenamento do Azure e um Key Vault do Azure. Estes serviços são utilizados quando executa a sua aplicação a partir de um pacote de implementação.
- O Armazenamento do Azure fornece encriptação inativa. Pode utilizar chaves fornecidas pelo sistema ou as suas próprias chaves geridas pelo cliente. É aqui que os dados da aplicação são armazenados quando não estão em execução numa aplicação de funções no Azure.
- Executar a partir de um pacote de implementação é uma funcionalidade de implementação de Serviço de Aplicações. Permite-lhe implementar o conteúdo do site a partir de uma Conta de Armazenamento do Azure com um URL de Assinatura de Acesso Partilhado (SAS).
- Key Vault referências são uma funcionalidade de segurança do Serviço de Aplicações. Permite-lhe importar segredos no runtime como definições da aplicação. Utilize esta opção para encriptar o URL de SAS da sua Conta de Armazenamento do Azure.
Configurar a encriptação inativa
Criar uma conta de Armazenamento do Azure
Primeiro, crie uma conta de Armazenamento do Azure e encripte-a com chaves geridas pelo cliente. Assim que a conta de armazenamento for criada, utilize o Explorador de Armazenamento do Azure para carregar ficheiros de pacote.
Em seguida, utilize o Explorador de Armazenamento para gerar uma SAS.
Nota
Guarde este URL de SAS, que é utilizado mais tarde para ativar o acesso seguro do pacote de implementação no runtime.
Configurar a execução a partir de um pacote a partir da sua conta de armazenamento
Depois de carregar o ficheiro para o Armazenamento de Blobs e de ter um URL de SAS para o ficheiro, defina a definição da aplicação WEBSITE_RUN_FROM_PACKAGE
para o URL de SAS. O exemplo seguinte fá-lo com a CLI do Azure:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="<your-SAS-URL>"
Adicionar esta definição de aplicação faz com que a aplicação de funções reinicie. Depois de a aplicação ser reiniciada, navegue até à mesma e certifique-se de que a aplicação começou a utilizar corretamente o pacote de implementação. Se a aplicação não tiver sido iniciada corretamente, consulte o guia de resolução de problemas Executar a partir do pacote.
Encriptar a definição da aplicação com referências Key Vault
Agora, pode substituir o valor da definição da aplicação WEBSITE_RUN_FROM_PACKAGE
por uma referência Key Vault ao URL codificado por SAS. Isto mantém o URL de SAS encriptado no Key Vault, o que fornece uma camada adicional de segurança.
Utilize o seguinte
az keyvault create
comando para criar uma instância Key Vault.az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus
Siga estas instruções para conceder acesso à sua aplicação ao cofre de chaves:
Utilize o seguinte
az keyvault secret set
comando para adicionar o URL externo como um segredo no cofre de chaves:az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Utilize o seguinte
az webapp config appsettings set
comando para criar a definição da aplicaçãoWEBSITE_RUN_FROM_PACKAGE
com o valor como uma referência Key Vault ao URL externo:az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"
O
<secret-version>
estará na saída do comando anterioraz keyvault secret set
.
A atualização desta definição de aplicação faz com que a aplicação de funções seja reiniciada. Depois de a aplicação ser reiniciada, navegue até à mesma para se certificar de que começou a utilizar corretamente a referência Key Vault.
Como rodar o token de acesso
É melhor prática rodar periodicamente a chave SAS da sua conta de armazenamento. Para garantir que a aplicação de funções não perde inadvertidamente o acesso, também tem de atualizar o URL de SAS no Key Vault.
Rode a chave SAS ao navegar para a sua conta de armazenamento no portal do Azure. Em Definições>Chaves de acesso, selecione o ícone para rodar a chave SAS.
Copie o novo URL de SAS e utilize o seguinte comando para definir o URL de SAS atualizado no cofre de chaves:
az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"
Atualize a referência do cofre de chaves na definição da aplicação para a nova versão secreta:
az webapp config appsettings set --settings WEBSITE_RUN_FROM_PACKAGE="@Microsoft.KeyVault(SecretUri=https://Contoso-Vault.vault.azure.net/secrets/external-url/<secret-version>"
O
<secret-version>
estará na saída do comando anterioraz keyvault secret set
.
Como revogar o acesso aos dados da aplicação de funções
Existem dois métodos para revogar o acesso da aplicação de funções à conta de armazenamento.
Rodar a chave SAS para a conta de Armazenamento do Azure
Se a chave SAS da conta de armazenamento for rodada, a aplicação de funções deixará de ter acesso à conta de armazenamento, mas continuará a ser executada com a última versão transferida do ficheiro de pacote. Reinicie a aplicação de funções para limpar a última versão transferida.
Remover o acesso da aplicação de funções ao Key Vault
Pode revogar o acesso da aplicação de funções aos dados do site ao desativar o acesso da aplicação de funções ao Key Vault. Para tal, remova a política de acesso da identidade da aplicação de funções. Esta é a mesma identidade que criou anteriormente ao configurar referências do cofre de chaves.
Resumo
Os seus ficheiros de aplicação estão agora encriptados inativos na sua conta de armazenamento. Quando a aplicação de funções é iniciada, obtém o URL de SAS do cofre de chaves. Por fim, a aplicação de funções carrega os ficheiros da aplicação a partir da conta de armazenamento.
Se precisar de revogar o acesso da aplicação de funções à sua conta de armazenamento, pode revogar o acesso ao cofre de chaves ou rodar as chaves da conta de armazenamento, ambas invalidam o URL de SAS.
Perguntas Mais Frequentes
Existe algum custo adicional para executar a minha aplicação de funções a partir do pacote de implementação?
Apenas o custo associado à Conta de Armazenamento do Azure e quaisquer custos de saída aplicáveis.
Como é que a execução do pacote de implementação afeta a minha aplicação de funções?
- Executar a aplicação a partir do pacote de implementação torna-se
wwwroot/
só de leitura. A sua aplicação recebe um erro quando tenta escrever neste diretório. - Os formatos TAR e GZIP não são suportados.
- Esta funcionalidade não é compatível com a cache local.
Passos seguintes
- Key Vault referências para Serviço de Aplicações
- Azure Storage encryption for data at rest (Encriptação do Armazenamento do Azure para dados inativos)