Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A Configuração de Aplicativo do Azure criptografa informações confidenciais em repouso. A utilização de chaves geridas pelo cliente proporciona uma proteção de dados melhorada, dando-lhe um maior controlo sobre as suas chaves de encriptação. Quando você usa a criptografia de chave gerenciada, todas as informações confidenciais na Configuração do Aplicativo são criptografadas com uma chave do Cofre da Chave do Azure que você fornece. Como resultado, você pode girar a chave de criptografia sob demanda. Você também pode revogar o acesso da sua loja de Configuração de Aplicativos a informações confidenciais ao revogar o acesso da loja à chave.
Descrição geral
A Configuração do Aplicativo criptografa informações confidenciais em repouso usando uma chave de criptografia AES (Advanced Encryption Standard) de 256 bits fornecida pela Microsoft. Cada loja de configuração de aplicativos tem sua própria chave de criptografia que é gerenciada pelo serviço e usada para criptografar informações confidenciais. As informações confidenciais incluem os valores encontrados em pares chave-valor.
Quando você usa uma chave gerenciada pelo cliente na Configuração do Aplicativo, ocorrem os seguintes eventos:
- A Configuração do Aplicativo usa uma identidade gerida atribuída à loja de Configuração do Aplicativo para autenticar-se com o Microsoft Entra ID.
- A identidade gerenciada chama Key Vault e encapsula a chave de criptografia da App Configuration Store.
- A chave de criptografia encapsulada é armazenada.
- 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 App Configuration Store.
Este processo garante a disponibilidade em condições normais de funcionamento.
Importante
Quando qualquer uma das seguintes condições for atendida, as informações confidenciais armazenadas na App Configuration Store não poderão ser descriptografadas:
- A identidade atribuída à App Configuration Store não está mais autorizada a desembrulhar a chave de criptografia da loja.
- A chave gerenciada é excluída permanentemente.
- A versão de chave gerenciada que está em uso expira.
Você pode usar a função de exclusão suave no Cofre da Chave para reduzir a chance de excluir acidentalmente sua chave de criptografia. Para reduzir a possibilidade de a chave gerenciada subjacente expirar, 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 Cofre de Chaves. Para obter mais informações, consulte Rotação de chaves, mais adiante neste artigo.
Requisitos
Os componentes a seguir são necessários para habilitar com êxito o recurso de chave gerenciado pelo cliente para a Configuração do Aplicativo. Este artigo mostra como configurar esses componentes.
- Uma loja de configuração de aplicativos de camada padrão ou premium.
- Uma instância do Cofre da Chave que tem os recursos de exclusão suave e proteção contra limpeza habilitados.
- Uma chave no cofre de chaves que atenda aos seguintes requisitos:
- Utiliza encriptação Rivest-Shamir-Adleman (RSA) ou encriptação RSA que utiliza um módulo de segurança de hardware (RSA-HSM).
- Não expirou.
- Está ativado.
- Ele possui funcionalidades de 'wrap' e 'unwrap' habilitadas.
Depois que este artigo mostra como configurar esses recursos, ele o orienta pelas seguintes etapas para que sua loja de Configuração de Aplicativo possa usar a chave do Cofre da Chave:
- Atribua uma identidade gerenciada à loja de Configuração de Aplicativos.
- Conceda permissões à identidade para que ela possa acessar a chave do Cofre da Chave:
- Para cofres de chaves que usam o controle de acesso baseado em funções do Azure (Azure RBAC), atribua à identidade a função Usuário de Criptografia do Serviço de Cripto do Cofre de Chaves no cofre de chaves de destino.
- Para cofres de chaves que usam autorização de política de acesso, conceda à identidade as permissões
GET
,WRAP
, eUNWRAP
na política de acesso do cofre de chaves de destino.
Habilite a criptografia de chave gerenciada pelo cliente
Para usar a criptografia de chave gerenciada pelo cliente, siga as etapas nas seções a seguir.
Criar recursos
Crie uma loja de Configuração de Aplicações no escalão Standard ou Premium, se não tiver uma. Para obter instruções, consulte Guia de início rápido: criar uma loja de configuração de aplicativos do Azure.
Execute o seguinte comando da CLI do Azure para criar uma instância do Cofre da Chave que tenha a proteção contra limpeza habilitada. A exclusão suave está habilitada por padrão. Substitua
<vault-name>
e<resource-group-name>
com os seus próprios valores únicos.az keyvault create --name <vault-name> --resource-group <resource-group-name> --enable-purge-protection
A saída deste comando lista o 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>
Utilize a CLI do Azure para atribuir a si próprio o acesso ao seu cofre de chaves necessário para criar uma chave. O comando que utilizas depende do sistema de autorização que o repositório de chaves usa. Estão disponíveis dois modelos:
- O modelo RBAC do Azure
- O modelo de política de acesso
Para ambos os modelos, você precisa do ID do objeto de usuário para executar o comando. Você pode encontrar seu ID de objeto de usuário usando um dos seguintes métodos:
Use o
az ad user show --id <user-principal-name>
comando na CLI do Azure, onde<user-principal-name>
é seu nome principal de usuário (UPN).Use o portal do Azure:
- Selecione Microsoft Entra ID e, em seguida, selecione Gerenciar>usuários.
- Introduza o seu nome na caixa de pesquisa e, em seguida, selecione o seu nome de utilizador nos resultados.
- Copie o valor de ID do objeto .
Atribua acesso a si próprio executando o comando apropriado para o sistema de autorização do Key Vault:
Substitua os marcadores de posição pelos seguintes valores:
- Para
<user-object-ID>
, use o ID do objeto que você acabou de encontrar. - Para
<role>
, use uma função tal como Key Vault Crypto Officer que lhe dá o acesso necessário para criar uma chave. Coloque a função entre aspas. - Para
<vault-resource-ID>
, use o 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 no Cofre de Chaves executando o seguinte comando. Substitua os marcadores de posição pelos seguintes valores:
- Para
<key-name>
, use o seu próprio valor único. - Para
<key-type>
:- Use
RSA
para criptografia RSA. - Utilize
RSA-HSM
para encriptação com RSA-HSM. A criptografia RSA-HSM está disponível apenas na camada Premium.
- Use
- 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 deste comando lista o ID da chave,
kid
, da chave gerada. Observe seu valor, que tem o seguinte formato:https://<vault-name>.vault.azure.net/keys/<key-name>/<key-version>
O ID de 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>
- A versão da chave do cofre de chaves:
<key-version>
- Para
Crie uma identidade gerenciada para sua loja 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 Adicionando uma identidade atribuída pelo usuário. Observe os valores das propriedades
clientId
eprincipalId
da identidade.Para criar uma identidade gerenciada atribuída ao sistema, use o seguinte comando da CLI do Azure. Substitua os marcadores de posição pelos seguintes valores:
- Para
<App-Configuration-store-name>
, use o nome da loja de configuração de aplicativos da etapa 1. - Para
<resource-group-name>
, use o nome do grupo de recursos que contém sua loja 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,
principalId
, e a ID do locatário,tenantId
, da identidade atribuída ao sistema. Observe o valor da propriedadeprincipalID
.{ "principalId": <principal-ID>, "tenantId": <tenant-ID>, "type": "SystemAssigned", "userAssignedIdentities": null }
Conceder acesso e ativar a chave
A identidade gerenciada da sua loja de Configuração de Aplicativo precisa de acesso à chave para executar a validação, criptografia e descriptografia da chave. Especificamente, a identidade gerida precisa de acesso às ações GET
, WRAP
e UNWRAP
para chaves.
- Para cofres de chaves que usam o RBAC do Azure, você pode conceder essas permissões atribuindo a função Usuário de Criptografia do Serviço de Criptografia do Cofre da Chave à 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 chave.
Conceda à identidade gerenciada acesso à chave gerenciada usando o comando apropriado para o sistema de autorização do cofre de chaves. Para ambos os sistemas, substitua
<managed-identity-principal-ID>
pelo ID principal da etapa anterior.Substitua
<key-vault-resource-id>
pelo 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 o recurso de chave gerenciada pelo cliente no serviço executando um dos seguintes comandos da CLI do Azure. Substitua os marcadores de posição pelos seguintes valores:
- Para
<resource-group-name>
, use o nome do grupo de recursos que contém sua loja de Configuração de Aplicativos. - Para
<App-Configuration-store-name>
, use o nome da sua loja 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 uma identidade gerenciada atribuída ao sistema para autenticar com o cofre de chaves.
Se você usar uma identidade gerenciada atribuída ao 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 seguinte comando, que especifica a ID do cliente explicitamente. Substitua
<user-assigned-managed-identity-client-ID>
peloclientId
valor 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
Sua loja de configuração de aplicativos agora está configurada para usar uma chave gerenciada pelo cliente armazenada no Cofre da Chave.
Desativar a criptografia de chave gerenciada pelo cliente
Quando você desabilita a criptografia de chave gerenciada pelo cliente, sua loja de configuração de aplicativos volta a usar chaves gerenciadas pela Microsoft. Mas antes de reverter para chaves gerenciadas pela Microsoft, a Configuração do Aplicativo usa a chave atual para descriptografar todos os dados existentes. Se a chave atual tiver expirado ou o acesso a ela for revogado, você deverá primeiro restaurar o acesso a essa chave.
Nota
Antes de configurar sua loja 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.
Certifique-se de que a chave atual gerenciada pelo cliente seja válida e operacional.
Use o seguinte comando da CLI do Azure para atualizar sua loja de Configuração de Aplicativo 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 da sua loja 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.keyVaultProperties
propriedade deve ter um valor denull
.
Sua loja de configuração de aplicativos agora está configurada para usar chaves gerenciadas pela Microsoft para criptografia.
Revogação de acesso
Ao ativar o recurso de chave gerenciada pelo cliente em sua loja 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.
Pode revogar o acesso da sua App Configuration Store à sua chave gerida alterando a sua política de acesso ao cofre de chaves. Quando revoga este acesso, a Configuração da Aplicação perde a capacidade de desencriptar os dados do utilizador no espaço de uma hora. Neste ponto, a App Configuration Store proíbe todas as tentativas de acesso.
Essa situação é recuperável concedendo ao serviço de Configuração do Aplicativo acesso à chave gerenciada novamente. Dentro de uma hora, a Configuração da Aplicação é capaz de desencriptar os dados do utilizador e operar em condições normais.
Nota
Todos os dados de configuração do aplicativo são armazenados por até 24 horas em um backup isolado. Esses dados incluem a chave de criptografia desempacotada. Esses dados não estão imediatamente disponíveis para o serviço ou a equipe de serviço. Durante uma restauração de emergência, a Configuração do Aplicativo se revoga novamente dos dados de chave gerenciados.
Rotação de chaves
Ao configurar uma chave gerenciada pelo cliente em uma loja de Configuração de Aplicativos, você precisa girar periodicamente a chave gerenciada para que ela não expire. Para uma rotação de chaves bem-sucedida, a chave atual deve ser válida e operacional. Se a chave atual tiver expirado ou se o acesso da Configuração do Aplicativo a ela for revogado, o repositório de Configuração do Aplicativo não conseguirá descriptografar os dados, e a rotação falhará.
Rotação automática
Uma prática recomendada é configurar a rotação automática no Cofre de Chaves para sua chave gerenciada pelo cliente. A rotação de teclas aumenta frequentemente a segurança. E quando utilizas a rotação automática, evitas perder o acesso por falta deste recurso. Você também elimina a necessidade de girar manualmente as chaves de criptografia.
Teclas sem versão
Outra prática recomendada para rotação automática na criptografia de chave gerenciada 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 do Aplicativo pode ser movida para a versão mais recente da chave quando ela é girada automaticamente. Como resultado, sua loja de configuração de aplicativos evita perder acesso quando uma versão de chave gerenciada expira que está atualmente em uso.
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 versionado (não recomendado):
https://<vault-name>.vault.azure.net/keys/<key-name>/<key-version>
Para configurar uma chave sem versão, use o formato de identificador que omite a versão.
Próximo passo
Neste artigo, você configurou sua loja 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.