Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Configuração de Aplicativos do Azure criptografa informações confidenciais em repouso. O uso de chaves gerenciadas pelo cliente fornece proteção de dados aprimorada, proporcionando maior controle sobre suas chaves de criptografia. Quando você usa criptografia de chave gerenciada, todas as informações confidenciais na Configuração de Aplicativos são criptografadas com uma chave do Azure Key Vault que você fornece. Como resultado, você pode girar a chave de criptografia sob demanda. Você também pode revogar o acesso do repositório de Configuração de Aplicativos a informações confidenciais revogando o acesso do repositório à chave.
Visão geral
A Configuração de Aplicativos criptografa informações confidenciais em repouso usando uma chave de criptografia AES (Advanced Encryption Standard) de 256 bits fornecida pela Microsoft. Cada repositório de Configuração de Aplicativos 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 você usa uma chave gerenciada pelo cliente na Configuração de Aplicativos, os seguintes eventos ocorrem:
- A Configuração de Aplicativo usa uma identidade gerenciada atribuída ao repositório de Configuração de Aplicativos para autenticar com o Microsoft Entra ID.
- A identidade gerenciada chama o Key Vault e encapsula a chave de criptografia do repositório de Configuração de Aplicativos.
- A chave de criptografia encapsulada é armazenada.
- A chave de criptografia desembrulhada é armazenada em cache na Configuração de Aplicativos por uma hora.
- A cada hora, a Configuração de Aplicativos atualiza a versão desembrulhada da chave de criptografia do repositório de Configuração de Aplicativos.
Esse processo garante a disponibilidade em condições normais de operação.
Importante
Quando qualquer uma das seguintes condições for atendida, as informações confidenciais armazenadas no repositório de Configuração de Aplicativos não poderão ser descriptografadas:
- A identidade atribuída ao repositório de Configuração de Aplicativos não está mais autorizada a desencapsular a chave de criptografia do repositório.
- A chave gerenciada é excluída permanentemente.
- A versão da chave gerenciada que está em uso expira.
Você pode usar a função de exclusão reversível no Key Vault para atenuar a chance de excluir acidentalmente sua chave de criptografia. Para atenuar a possibilidade da expiração da chave gerenciada subjacente, você pode omitir a versão da chave ao configurar a criptografia de chave gerenciada e configurar a rotação automática de chaves no Key Vault. Para obter mais informações, consulte a rotação de chaves, mais adiante neste artigo.
Requisitos
Os componentes a seguir são necessários para habilitar com êxito a funcionalidade de chave gerenciada pelo cliente para a Configuração de Aplicativos. Este artigo mostra como configurar esses componentes.
- Um repositório de Configuração de Aplicativos da camada Standard ou Premium.
- Uma instância do Key Vault que tem os recursos de exclusão suave e proteção contra eliminação habilitados.
- Uma chave no cofre de chaves que atende aos seguintes requisitos:
- Ele usa criptografia RSA (Rivest-Shamir-Adleman) ou criptografia RSA que usa um módulo de segurança de hardware (RSA-HSM).
- Ainda não expirou.
- Está habilitado.
- Ele tem recursos de encapsulamento e desembrulhamento habilitados.
Depois que este artigo mostra como configurar esses recursos, ele orienta você pelas seguintes etapas para que o repositório de Configuração de Aplicativos possa usar a chave do Key Vault:
- Atribua uma identidade gerenciada ao repositório de Configuração de Aplicativos.
- Conceda permissões à identidade para que ela possa acessar a chave do Key Vault:
- Para cofres de chaves que usam o RBAC (controle de acesso baseado em função) do Azure, atribua à identidade a função Usuário de Criptografia do Serviço Cripto do Key Vault no cofre de chaves de destino.
- Para que os cofres de chaves usem a autorização de política de acesso, conceda as permissões
GET,WRAPeUNWRAPà identidade na política de acesso do cofre de chaves de destino.
Habilitar a criptografia de chave gerenciada pelo cliente
Para usar a criptografia de chave gerenciada pelo cliente, execute as etapas nas seções a seguir.
Criar recursos
Crie um repositório de Configuração de Aplicativos na camada Standard ou Premium se você não tiver um. Para obter instruções, consulte Início Rápido: Criar um repositório de Configuração de Aplicativos do Azure.
Execute o seguinte comando da CLI do Azure para criar uma instância do Key Vault que tenha a proteção de limpeza habilitada. A exclusão reversível está habilitada por padrão. Substitua
<vault-name>e<resource-group-name>com seus próprios valores exclusivos.az keyvault create --name <vault-name> --resource-group <resource-group-name> --enable-purge-protectionA saída desse comando lista a ID do recurso,
id, do cofre de chaves. Observe seu valor, que tem o seguinte formato:/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<vault-name>Use o CLI do Azure para atribuir para si mesmo o acesso necessário ao seu cofre de chaves para criar uma chave. O comando que você usa depende do sistema de autorização que o cofre de chaves utiliza. Dois modelos estão disponíveis:
- O modelo RBAC do Azure
- O modelo de política de acesso
Para ambos os modelos, você precisa da ID do objeto de usuário para executar o comando. Você pode encontrar sua ID de objeto de usuário usando um dos seguintes métodos:
Use o comando
az ad user show --id <user-principal-name>na CLI do Azure, onde<user-principal-name>é seu nome principal de usuário (UPN).Use o portal do Azure:
- Selecione a ID do Microsoft Entra e selecione Gerenciar>Usuários.
- Insira seu nome na caixa de pesquisa e selecione seu nome de usuário nos resultados.
- Copie o valor da ID do objeto .
Atribua acesso a si mesmo executando o comando apropriado para o sistema de autorização do cofre de chaves:
Substitua os marcadores pelos seguintes valores:
- Para
<user-object-ID>, use a ID do objeto que você acabou de encontrar. - Para
<role>, use uma função como Key Vault Crypto Officer, que oferece o acesso necessário para criar uma chave. Coloque a função entre aspas. - Para
<vault-resource-ID>, use a ID do recurso do cofre de chaves da etapa anterior.
az role assignment create --assignee <user-object-ID> --role <role> --scope <vault-resource-ID>Crie uma chave do Key Vault executando o comando a seguir. Substitua os marcadores pelos seguintes valores:
- Para
<key-name>, use seu próprio valor exclusivo. - Para
<key-type>:- Usar
RSApara criptografia RSA. - Use
RSA-HSMpara criptografia de RSA-HSM. A criptografia RSA-HSM está disponível apenas na camada Premium.
- Usar
- Para
<vault-name>, utilize o nome do cofre de chaves da etapa 2.
az keyvault key create --name <key-name> --kty <key-type> --vault-name <vault-name>A saída desse comando lista a ID
kidda chave gerada. Observe seu valor, que tem o seguinte formato:https://<vault-name>.vault.azure.net/keys/<key-name>/<key-version>A ID da chave contém os seguintes componentes:
- O URI do cofre de chaves:
https://<vault-name>.vault.azure.net - O nome da chave do cofre de chaves:
<key-name> - Versão da chave do cofre de chaves:
<key-version>
- Para
Crie uma identidade gerenciada para o repositório de Configuração de Aplicativos usando uma das seguintes opções:
Para criar uma identidade gerenciada atribuída pelo usuário, siga as etapas em Adicionar uma identidade atribuída pelo usuário. Observe os valores das propriedades
clientIdeprincipalIdda identidade.Para criar uma identidade gerenciada atribuída pelo sistema, use o seguinte comando da CLI do Azure. Substitua os marcadores pelos seguintes valores:
- Para
<App-Configuration-store-name>, use o nome do repositório de Configuração de Aplicativos da etapa 1. - Para
<resource-group-name>, use o nome do grupo de recursos que contém o repositório de Configuração de Aplicativos.
- Para
az appconfig identity assign --name <App-Configuration-store-name> --resource-group <resource-group-name> --identities [system]A saída desse comando inclui a ID principal
principalIde a ID do inquilinotenantIdda identidade atribuída pelo sistema. Observe o valor da propriedadeprincipalID.{ "principalId": <principal-ID>, "tenantId": <tenant-ID>, "type": "SystemAssigned", "userAssignedIdentities": null }
Conceder acesso e habilitar a chave
A identidade gerenciada do repositório de Configuração de Aplicativos precisa de acesso à chave para executar validação da chave, criptografia e descriptografia. Especificamente, a identidade gerenciada precisa de acesso às ações GET, WRAP e UNWRAP relacionadas a chaves.
- Para cofres de chaves que usam o RBAC do Azure, você pode conceder essas permissões atribuindo a função de Usuário de Criptografia do Serviço de Criptografia do Key Vault à identidade gerenciada.
- Para cofres de chaves que usam autorização de política de acesso, você pode definir uma política para essas permissões de chaves.
Conceda à identidade gerenciada acesso à chave gerenciada usando o comando apropriado para o sistema de autorização do seu cofre de chaves. Para ambos os sistemas, substitua
<managed-identity-principal-ID>pela ID principal da etapa anterior.Substitua
<key-vault-resource-id>pela ID do recurso do cofre de chaves da etapa 2 de Criar recursos.az role assignment create --assignee <managed-identity-principal-ID> --role "Key Vault Crypto Service Encryption User" --scope <key-vault-resource-id>Habilite a funcionalidade de chave gerenciada pelo cliente no serviço executando um dos seguintes comandos da CLI do Azure. Substitua os marcadores pelos seguintes valores:
- Para
<resource-group-name>, use o nome do grupo de recursos que contém o repositório de Configuração de Aplicativos. - Para
<App-Configuration-store-name>, use o nome do repositório de Configuração de Aplicativos. - Para
<key-name>e<key-vault-URI>, use os valores da etapa 4 de Criar recursos.
Por padrão, o comando usa a identidade gerenciada atribuída pelo sistema para a autenticação no cofre de chaves.
Se você usar uma identidade gerenciada atribuída pelo sistema para acessar a chave gerenciada pelo cliente, execute o seguinte comando:
az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name <key-name> --encryption-key-vault <key-vault-URI>Se você usar uma identidade gerenciada atribuída pelo usuário para acessar a chave gerenciada pelo cliente, execute o comando a seguir, que especifica explicitamente a ID do cliente. Substitua
<user-assigned-managed-identity-client-ID>peloclientIdvalor da etapa 5 de Criar recursos.az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name <key-name> --encryption-key-vault <key-vault-URI> --identity-client-id <user-assigned-managed-identity-client-ID>
- Para
Seu repositório de Configuração de Aplicativos agora está configurado para usar uma chave gerenciada pelo cliente armazenada no Key Vault.
Desabilitar a criptografia de chave gerenciada pelo cliente
Quando você desabilitar a criptografia de chave gerenciada pelo cliente, o repositório de Configuração de Aplicativos será revertido para o uso de chaves gerenciadas pela Microsoft. Mas antes de reverter para chaves gerenciadas pela Microsoft, a Configuração de Aplicativos usa a chave atual para descriptografar todos os dados existentes. Se a chave atual tiver expirado ou o acesso a ela for revogado, primeiro você deverá restaurar o acesso a essa chave.
Observação
Antes de configurar o repositório de Configuração de Aplicativos para usar uma chave gerenciada pela Microsoft em vez de uma chave gerenciada pelo cliente para criptografia, verifique se essa alteração está alinhada com as políticas de segurança e os requisitos de conformidade da sua organização.
Verifique se a chave gerenciada pelo cliente atual é válida e operacional.
Use o seguinte comando da CLI do Azure para atualizar o repositório de Configuração de Aplicativos removendo a configuração de chave gerenciada pelo cliente. Substitua
<resource-group-name>e<App-Configuration-store-name>pelos valores em seu ambiente.az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name ""Para verificar se a configuração de chave gerenciada pelo cliente está desabilitada, verifique as propriedades do repositório de Configuração de Aplicativos.
az appconfig show -g <resource-group-name> -n <App-Configuration-store-name> --query "encryption"Na saída desse comando, a
encryption.keyVaultPropertiespropriedade deve ter um valor denull.
Seu repositório de Configuração de Aplicativos agora está configurado para usar chaves gerenciadas pela Microsoft para criptografia.
Revogação de acesso
Ao habilitar a funcionalidade de chave gerenciada pelo cliente em seu repositório de Configuração de Aplicativos, você controla a capacidade do serviço de acessar suas informações confidenciais. A chave gerenciada serve como uma chave de criptografia raiz.
Você pode revogar o acesso do repositório de Configuração de Aplicativos à sua chave gerenciada alterando a política de acesso do cofre de chaves. Quando você revoga esse acesso, a Configuração de Aplicativos perde a capacidade de descriptografar dados do usuário dentro de uma hora. Neste ponto, o repositório de Configuração de Aplicativos proíbe todas as tentativas de acesso.
Essa situação é recuperável concedendo ao serviço de Configuração de Aplicativos acesso à chave gerenciada novamente. Dentro de uma hora, a Configuração de Aplicativos será capaz de descriptografar dados do usuário e operar em condições normais.
Observação
Todos os dados de Configuração de Aplicativo são armazenados por até 24 horas em um backup isolado. Esses dados incluem a chave de criptografia desembrulhada. Esses dados não ficam disponíveis imediatamente para a equipe de serviço ou o serviço. Durante uma restauração de emergência, a Configuração do Aplicativo se dissocia novamente dos dados de chave gerenciada.
Alteração de chaves
Ao configurar uma chave gerenciada pelo cliente em um repositório de Configuração de Aplicativos, você precisará girar periodicamente a chave gerenciada para que ela não expire. Para uma rotação de chave bem-sucedida, a chave atual deve ser válida e operacional. Se a chave atual tiver expirado ou se o acesso à Configuração de Aplicativos for revogado, o repositório de Configuração de Aplicativos não poderá descriptografar dados e a rotação falhará.
Rotação automática
Uma prática recomendada é configurar a rotação automática no Key Vault para sua chave gerenciada pelo cliente. Girar chaves frequentemente melhora a segurança. E quando você usa a rotação automática, evita perder o acesso devido à falta de rotação. Você também elimina a necessidade de girar manualmente as chaves de criptografia.
Chaves sem versão
Outra prática recomendada para rotação automática na criptografia com chaves gerenciadas pelo cliente é omitir a versão da chave do cofre de chaves. Quando você não configura uma versão de chave específica, a Configuração de Aplicativos pode passar para a versão mais recente da chave quando ela é girada automaticamente. Como resultado, o repositório de Configuração de Aplicativos evita perder o acesso quando uma versão de chave gerenciada expira que está em uso no momento.
Ao configurar a criptografia de chave gerenciada pelo cliente, você fornece o identificador de uma chave no cofre de chaves. Um identificador de chave do cofre de chaves pode ter os seguintes formatos:
- Identificador de chave sem versão:
https://<vault-name>.vault.azure.net/keys/<key-name> - Identificador de chave com versão (não recomendado):
https://<vault-name>.vault.azure.net/keys/<key-name>/<key-version>
Para configurar uma chave sem versão, use o formato do identificador que omite a versão.
Próxima etapa
Neste artigo, você configurou o repositório de Configuração de Aplicativos 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.