Partilhar via


Usar chaves gerenciadas pelo cliente para criptografar seus dados de Configuração do Aplicativo

A Configuração de Aplicativo do Azure criptografa informações confidenciais em repouso. O uso de chaves gerenciadas pelo cliente fornece proteção de dados aprimorada, permitindo que você gerencie suas chaves de criptografia. Quando a criptografia de chave gerenciada é usada, todas as informações confidenciais na Configuração do Aplicativo são criptografadas com uma chave do Cofre de Chaves do Azure fornecida pelo usuário. Isso fornece a capacidade de girar a chave de criptografia sob demanda. Ele também fornece a capacidade de revogar o acesso da Configuração do Aplicativo do Azure a informações confidenciais revogando o acesso da instância de Configuração do Aplicativo à chave.

Descrição geral

A Configuração de Aplicativo do Azure criptografa informações confidenciais em repouso usando uma chave de criptografia AES de 256 bits fornecida pela Microsoft. Cada instância de Configuração de Aplicativo tem sua própria chave de criptografia gerenciada pelo serviço e usada para criptografar informações confidenciais. As informações confidenciais incluem os valores encontrados em pares chave-valor. Quando o recurso de chave gerenciada pelo cliente está habilitado, a Configuração do Aplicativo usa uma identidade gerenciada atribuída à instância de Configuração do Aplicativo para autenticar com o ID do Microsoft Entra. Em seguida, a identidade gerenciada chama o Azure Key Vault e encapsula a chave de criptografia da instância de Configuração do Aplicativo. A chave de criptografia encapsulada é então armazenada e a chave de criptografia desempacotada é armazenada em cache na Configuração do Aplicativo por uma hora. A cada hora, a Configuração do Aplicativo atualiza a versão desempacotada da chave de criptografia da instância de Configuração do Aplicativo. Este processo garante a disponibilidade em condições normais de funcionamento.

Importante

Se a identidade atribuída à instância de Configuração do Aplicativo não estiver mais autorizada a desempacotar a chave de criptografia da instância, ou se a chave gerenciada for excluída permanentemente, não será mais possível descriptografar informações confidenciais armazenadas na instância de Configuração do Aplicativo. Ao usar a função de exclusão suave do Azure Key Vault, você reduz a chance de excluir acidentalmente sua chave de criptografia.

Quando os usuários habilitam o recurso de chave gerenciada pelo cliente em sua instância de Configuração de Aplicativo do Azure, eles controlam a capacidade do serviço de acessar suas informações confidenciais. A chave gerenciada serve como uma chave de criptografia raiz. Os usuários podem revogar o acesso da instância de Configuração do Aplicativo à chave gerenciada alterando a política de acesso ao cofre de chaves. Quando esse acesso for revogado, a Configuração do Aplicativo perderá a capacidade de descriptografar os dados do usuário dentro de uma hora. Neste ponto, a instância de Configuração do Aplicativo proibirá todas as tentativas de acesso. Essa situação é recuperável concedendo ao serviço acesso à chave gerenciada mais uma vez. Dentro de uma hora, a Configuração da Aplicação será capaz de desencriptar os dados do utilizador e operar em condições normais.

Nota

Todos os dados da Configuração do Aplicativo do Azure são armazenados por até 24 horas em um backup isolado. Isso inclui a chave de criptografia desempacotada. Esses dados não estão imediatamente disponíveis para o serviço ou a equipe de serviço. No caso de uma restauração de emergência, a Configuração do Aplicativo do Azure será revogada novamente dos dados de chave gerenciados.

Requisitos

Os seguintes componentes são necessários para habilitar com êxito o recurso de chave gerenciada pelo cliente para a Configuração do Aplicativo do Azure:

  • Instância de Configuração de Aplicativo do Azure de camada padrão.
  • Azure Key Vault com recursos de exclusão suave e proteção contra limpeza habilitados.
  • Uma chave RSA ou RSA-HSM dentro do Cofre de Chaves.
    • A chave não deve ter expirado, deve estar habilitada e deve ter os recursos de encapsulamento e desempacotamento habilitados.

Depois que esses recursos forem configurados, use as seguintes etapas para que a Configuração do Aplicativo do Azure possa usar a chave do Cofre da Chave:

  1. Atribua uma identidade gerenciada à instância de Configuração do Aplicativo do Azure.
  2. Conceda permissões à identidade para poder acessar a chave do Cofre da Chave.
    • Para Cofres de Chaves com o RBAC do Azure habilitado, atribua a identidade à Key Vault Crypto Service Encryption User função no Cofre de Chaves de destino.
    • Para autorização de política de acesso do Key Vault, conceda a identidade GETe WRAPUNWRAP as permissões na política de acesso do Key Vault de destino.

Habilite a criptografia de chave gerenciada pelo cliente para sua loja de configuração de aplicativos

  1. Crie uma loja de Configuração de Aplicações no escalão Padrão, se não tiver uma.

  2. Usando a CLI do Azure, crie um Cofre da Chave do Azure com a proteção contra limpeza habilitada. A exclusão suave está habilitada por padrão. Ambos vault-name são resource-group-name fornecidos pelo usuário e devem ser exclusivos. Usamos contoso-vault e contoso-resource-group nestes exemplos.

    az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
    
  3. Crie uma chave do Cofre da Chave. Forneça um exclusivo key-name para essa chave e substitua o nome do Cofre da Chave (contoso-vault) criado na etapa 2. Especifique se prefere RSA ou RSA-HSM encriptação (RSA-HSM só está disponível no escalão Premium).

    az keyvault key create --name key-name --kty {RSA or RSA-HSM} --vault-name contoso-vault
    

    A saída deste comando mostra o ID da chave (kid) para a chave gerada. Anote o ID da chave para usar mais tarde neste exercício. O ID da chave tem o formato: https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}. O ID de chave tem três componentes importantes:

    1. URI do Cofre de Chaves: https://{my key vault}.vault.azure.net
    2. Nome da chave do Cofre da Chave: {key-name}
    3. Versão da chave do Cofre da Chave: {key-version}
  4. Crie uma identidade gerenciada atribuída ao sistema usando a CLI do Azure, substituindo o nome da instância de Configuração do Aplicativo e do grupo de recursos usados nas etapas anteriores. A identidade gerenciada será usada para acessar a chave gerenciada. Usamos contoso-app-config para ilustrar o nome de uma instância de Configuração de Aplicativo:

    az appconfig identity assign --name contoso-app-config --resource-group contoso-resource-group --identities [system]
    

    A saída deste comando inclui o ID principal ("principalId") e o ID do locatário ("tenandId") da identidade atribuída ao sistema. Esses IDs serão usados para conceder acesso de identidade à chave gerenciada.

    {
        "principalId": {Principal Id},
        "tenantId": {Tenant Id},
        "type": "SystemAssigned",
        "userAssignedIdentities": null
    }
    
  5. A identidade gerenciada da instância de Configuração do Aplicativo do Azure precisa de acesso à chave para executar a validação, criptografia e descriptografia da chave. O conjunto específico de ações a que precisa de acesso inclui: GET, WRAP, e UNWRAP para chaves. Essas permissões podem ser concedidas atribuindo a função para os Cofres de Chaves habilitados Key Vault Crypto Service Encryption User para RBAC do Azure. Para Cofres de Chaves usando autorização de política de acesso, defina a política para as permissões de chave acima mencionadas. A concessão de acesso requer a ID principal da identidade gerenciada da instância de Configuração do Aplicativo. Substitua o valor mostrado abaixo como contoso-principalId pelo ID principal obtido na etapa anterior. Conceda permissão à chave gerenciada usando a linha de comando:

    Para Cofres de Chaves com o RBAC do Azure habilitado, use o seguinte comando.

    az role assignment create --assignee contoso-principalId --role "Key Vault Crypto Service Encryption User" --scope key-vault-resource-id
    
  6. Agora que a instância de Configuração do Aplicativo do Azure pode acessar a chave gerenciada, podemos habilitar o recurso de chave gerenciada pelo cliente no serviço usando a CLI do Azure. Lembre-se das seguintes propriedades registradas durante as principais etapas de criação: key name key vault URI.

    az appconfig update -g contoso-resource-group -n contoso-app-config --encryption-key-name key-name --encryption-key-version key-version --encryption-key-vault key-vault-Uri
    

Sua instância de Configuração do Aplicativo do Azure agora está configurada para usar uma chave gerenciada pelo cliente armazenada no Cofre de Chaves do Azure.

Passos Seguintes

Neste artigo, você configurou sua instância de Configuração de Aplicativo do Azure para usar uma chave gerenciada pelo cliente para criptografia. Para saber mais sobre como integrar seu serviço de aplicativo com identidades gerenciadas do Azure, continue para a próxima etapa.