Encriptação inativa com chaves geridas pelo cliente

Encriptar os dados da aplicação Web 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 Web 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 Web seja reiniciada. 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.

  1. 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    
    
  2. Siga estas instruções para conceder acesso à sua aplicação ao cofre de chaves:

  3. 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>"    
    
  4. Utilize o seguinte az webapp config appsettings set comando para criar a definição da aplicação WEBSITE_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 anterior az keyvault secret set .

A atualização desta definição de aplicação faz com que a aplicação Web 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 Web não perde inadvertidamente o acesso, também tem de atualizar o URL de SAS no Key Vault.

  1. 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.

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

Como revogar o acesso aos dados da aplicação Web

Existem dois métodos para revogar o acesso da aplicação Web à 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 Web 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 Web para limpar a última versão transferida.

Remover o acesso da aplicação Web ao Key Vault

Pode revogar o acesso da aplicação Web aos dados do site ao desativar o acesso da aplicação Web ao Key Vault. Para tal, remova a política de acesso da identidade da aplicação Web. 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 Web é iniciada, obtém o URL de SAS do cofre de chaves. Por fim, a aplicação Web carrega os ficheiros da aplicação a partir da conta de armazenamento.

Se precisar de revogar o acesso da aplicação Web à 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 Web 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 Web?

  • 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