Compartilhar via


Usar chaves gerenciadas pelo cliente para criptografar seus dados de configuração

A Configuração de Aplicativos do Azure criptografa informações confidenciais em repouso. O uso de chaves gerenciadas pelo cliente oferece 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 de Azure Key Vault 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 de Azure App configuração a informações confidenciais revogando o acesso da instância de configuração de aplicativo à chave.

Visão geral

A Configuração de Aplicativos 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. Informações confidenciais incluem os valores encontrados em pares chave-valor. Quando o recurso de chave gerenciada pelo cliente está habilitado, a Configuração de Aplicativos usa uma identidade gerenciada atribuída à instância de Configuração de Aplicativos para autenticar junto ao Microsoft Entra ID. Em seguida, a identidade gerenciada chama Azure Key Vault e encapsula a chave de criptografia da instância de configuração do aplicativo. Depois, a chave de criptografia encapsulada é armazenada e a chave de criptografia desencapsulada é armazenada em cache na Configuração de Aplicativos por uma hora. A cada hora, a Configuração de Aplicativos atualiza a versão desencapsulada da chave de criptografia da instância de Configuração de Aplicativos. Esse processo garante a disponibilidade em condições normais de operação.

Importante

Se a identidade atribuída à instância de configuração do aplicativo não estiver mais autorizada a desencapsular 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. Usando a função de exclusão reversível do Azure Key Vault, você reduz a chance de excluir acidentalmente a chave de criptografia.

Quando os usuários habilitam a capacidade de chave gerenciada pelo cliente na instância de Configuração de Aplicativos do Azure deles, eles controlam a capacidade do serviço de acessar as informações confidenciais deles. A chave gerenciada serve como uma chave de criptografia raiz. Os usuários podem revogar o acesso da instância da Configuração de Aplicativos à chave gerenciada alterando a política de acesso do cofre de chaves. Quando esse acesso for revogado, a configuração do aplicativo perderá a capacidade de descriptografar os dados do usuário em 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 novamente. Dentro de uma hora, a configuração do aplicativo poderá descriptografar os dados do usuário e operar em condições normais.

Observação

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

Requisitos

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

  • Uma instância do Configuração de Aplicativos do Azure de camada Standard ou Premium.
  • Um Azure Key Vault com os recursos de exclusão temporária e proteção contra limpeza habilitados.
  • Uma chave RSA ou RSA-HSM dentro do Key Vault.
    • A chave não pode estar expirada, ela precisa ser habilitada e ter as funcionalidades de encapsulamento e desencapsulamento habilitadas.

Depois que esses recursos forem configurados, use as seguintes etapas para que a Configuração de Aplicativos do Azure possa usar a chave do Key Vault:

  1. Atribua uma identidade gerenciada à instância de Configuração de Aplicativos do Azure.
  2. Conceda permissões à identidade para poder acessar a chave do Key Vault.
    • Quanto ao Key Vault com RBAC do Azure habilitado, atribua a identidade à função Key Vault Crypto Service Encryption User no Key Vault de destino.
    • Para que o Key Vault use a autorização de política de acesso, conceda as permissões GET, WRAPe UNWRAP de identidade na política de acesso do Key Vault de destino.

Habilitar a criptografia de chave gerenciada pelo cliente para seu repositório de Configuração de Aplicativos

  1. Crie um repositório de Configuração de Aplicativos nas camadas Standard ou Premium, se você ainda não tiver um.

  2. Usando a CLI do Azure, crie um Azure Key Vault com a proteção de limpeza habilitada. A exclusão suave está habilitada por padrão. Observe que vault-name e resource-group-name são fornecidos pelo usuário e precisam ser exclusivos. Usamos contoso-vault e contoso-resource-group nesses exemplos.

    az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
    
  3. Crie uma chave de Key Vault. Forneça um key-name exclusivo para essa chave e substitua os nomes do Key Vault (contoso-vault) criado na etapa 2. Especifique se você prefere criptografia RSA ou RSA-HSM (RSA-HSM só está disponível na camada Premium).

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

    A saída desse comando mostra a ID da chave (kid) para a chave gerada. Anote o resultado para uso posterior neste exercício. A ID da chave tem o formulário: https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version} . A ID da chave tem três componentes importantes:

    1. URI do Key Vault: https://{my key vault}.vault.azure.net
    2. Nome da chave do Key Vault: {key-name}
    3. Versão da chave do Key Vault: {key-version}
  4. Crie uma identidade gerenciada atribuída pelo sistema usando a CLI do Azure, substituindo o nome da instância da Configuração de Aplicativos 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 desse comando inclui a ID da entidade de segurança ("principalId") e a ID do locatário ("tenantId") da identidade atribuída pelo sistema. Essas IDs serão usadas para conceder o 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 Azure App precisa acessar a chave para executar a validação, criptografia e descriptografia da chave. O conjunto específico de ações às quais ele precisa de acesso inclui: GET , WRAP e UNWRAP para chaves. Essas permissões podem ser concedidas atribuindo a função Key Vault Crypto Service Encryption User nos Key Vaults habilitados para RBAC do Azure. Quanto aos key vaults usando a autorização de política de acesso, defina a política para as permissões de chave acima mencionadas. A permissão do acesso exige a ID da entidade de segurança da identidade gerenciada da instância da Configuração de Aplicativos. Substitua o valor mostrado abaixo como contoso-principalId pela ID da entidade de segurança obtida na etapa anterior. Conceda permissão para a chave gerenciada usando a linha de comando:

    Quanto aos Key Vaults com o RBAC do Azure habilitado, use o comando a seguir.

    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 da Configuração de Aplicativos do Azure puder acessar a chave gerenciada, poderemos habilitar a funcionalidade de chave gerenciada pelo cliente no serviço usando a CLI do Azure. Relembre as seguintes propriedades registradas durante as etapas de criação de chave: 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 de Aplicativos do Azure agora está configurada para usar uma chave gerenciada pelo cliente armazenada no Azure Key Vault.

Próximas etapas

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