Criptografar os dados inativos do aplicativo usando chaves gerenciadas pelo cliente

Criptografar os dados inativos de aplicativo do aplicativo de funções requer uma Conta de Armazenamento do Azure e um Azure Key Vault. Esses serviços são usados quando você executa o aplicativo a partir de um pacote de implantação.

  • O Armazenamento do Microsoft Azure fornece criptografia em repouso. Você pode usar chaves fornecidas pelo sistema ou as suas próprias chaves gerenciadas pelo cliente. Os dados do aplicativo são armazenados nesse local quando não estão em execução em um aplicativo de funções no Azure.
  • A execução de um pacote de implantação é um recurso de implantação do Serviço de Aplicativo do Azure. Ele permite implantar o conteúdo do site de uma conta do Armazenamento do Microsoft Azure usando uma URL de SAS (Assinatura de Acesso Compartilhado).
  • As referências do Key Vault são um recurso de segurança do Serviço de Aplicativo do Azure. Elas permitem importar segredos em runtime como configurações de aplicativo. Use isso para criptografar a URL de SAS da sua conta do Armazenamento do Microsoft Azure.

Configurar a criptografia em repouso

Criar uma conta do Armazenamento do Azure

Primeiro, crie uma conta do Armazenamento do Microsoft Azure e criptografe-a com chaves gerenciadas pelo cliente. Assim que a conta de armazenamento for criada, use o Gerenciador de Armazenamento do Azure para carregar arquivos de pacote.

Depois, use o Gerenciador de Armazenamento para gerar uma SAS.

Observação

Salve essa URL de SAS, que será usada posteriormente para habilitar o acesso seguro do pacote de implantação no runtime.

Configurar a execução de um pacote da sua conta de armazenamento

Depois de carregar o arquivo no armazenamento de blobs e estar com a URL de SAS do arquivo, defina a configuração de aplicativo WEBSITE_RUN_FROM_PACKAGE como a URL de SAS. Veja como fazer isso 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 essa configuração de aplicativo faz com que o aplicativo de funções seja reiniciado. Depois que o aplicativo for reiniciado, navegue até ele e verifique se o ele foi iniciado corretamente usando o pacote de implantação. Se o aplicativo não tiver sido iniciado corretamente, confira o Guia de solução de problemas de execução do pacote.

Criptografar a configuração do aplicativo usando referências do Key Vault

Agora você pode substituir o valor da configuração de aplicativo WEBSITE_RUN_FROM_PACKAGE por uma referência de Key Vault à URL codificada para SAS. Isso mantém a URL de SAS criptografada no Key Vault, que fornece uma camada extra de segurança.

  1. Use o comando a seguir az keyvault create para criar uma instância do Key Vault.

    az keyvault create --name "Contoso-Vault" --resource-group <group-name> --location eastus    
    
  2. Siga estas instruções para conceder ao aplicativo aceso ao cofre de chaves:

  3. Use o seguinte comando az keyvault secret set para adicionar a URL externa como um segredo no cofre de chaves:

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  4. Use o comando a seguir az webapp config appsettings set para criar a configuração de aplicativo WEBSITE_RUN_FROM_PACKAGE com o valor como uma referência de Key Vault à URL externa:

    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 anterior az keyvault secret set.

Atualizar essa configuração de aplicativo faz com que o aplicativo de funções seja reiniciado. Depois que o aplicativo for reiniciado, navegue até ele para verificar se ele foi iniciado corretamente usando a referência do Key Vault.

Como girar o token de acesso

É uma prática recomendada girar periodicamente a chave de SAS da sua conta de armazenamento. Para garantir que o aplicativo de funções não perca acesso inadvertidamente, você também deve atualizar a URL de SAS no Key Vault.

  1. Gire a chave de SAS navegando até a sua conta de armazenamento no portal do Azure. Em Configurações>Chaves de acesso, selecione o ícone para girar a chave de SAS.

  2. Copie a nova URL de SAS e use o comando a seguir para definir a URL de SAS atualizada no cofre de chaves:

    az keyvault secret set --vault-name "Contoso-Vault" --name "external-url" --value "<SAS-URL>"    
    
  3. Atualize a referência do cofre de chaves em sua configuração de aplicativo 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 anterior az keyvault secret set.

Como revogar o acesso a dados do aplicativo de funções

Há dois métodos para revogar o acesso do aplicativo de funções à conta de armazenamento.

Gire a chave de SAS da conta do Armazenamento do Microsoft Azure

Se a chave de SAS para a conta de armazenamento for girada, o aplicativo de funções não terá mais acesso à conta de armazenamento, mas continuará a ser executado com a última versão baixada do arquivo de pacote. Reinicie o aplicativo de funções para limpar a última versão baixada.

Remover o acesso do aplicativo de funções ao Key Vault

Você pode revogar o acesso do aplicativo de funções aos dados do site. Para isso, desabilite o acesso do aplicativo de funções ao Key Vault. Para fazer isso, remova a política de acesso para a identidade do aplicativo de funções. Essa é a mesma identidade que você criou anteriormente ao configurar referências do cofre de chaves.

Resumo

Os arquivos de aplicativo agora são criptografados em repouso na sua conta de armazenamento. Quando o seu aplicativo de funções é iniciado, ele recupera a URL SAS do cofre de chaves. Por fim, o aplicativo de funções carrega os arquivos de aplicativo da conta de armazenamento.

Se precisar revogar o acesso do aplicativo de funções à sua conta de armazenamento, você poderá revogar o acesso ao cofre de chaves ou girar as chaves da conta de armazenamento, o que invalida a URL da SAS.

Perguntas frequentes

Há algum custo adicional para executar meu aplicativo de funções a partir do pacote de implantação?

Somente o custo associado à conta do Armazenamento do Microsoft Azure e quaisquer encargos de saída aplicáveis.

Como a execução a partir do pacote de implantação afeta o meu aplicativo de funções?

  • Executar seu aplicativo a partir do pacote de implantação torna wwwroot/ somente leitura. Seu aplicativo recebe um erro ao tentar gravar nesse diretório.
  • Não há suporte para formatos TAR e GZIP.
  • Este recurso não é compatível com o cache local.

Próximas etapas