Share via


Configurar chaves gerenciadas pelo cliente entre locatários para uma nova conta de armazenamento

O Armazenamento do Azure criptografa todos os dados em uma conta de armazenamento em repouso. Por padrão, os dados são criptografados com chaves gerenciadas pela Microsoft. Para obter controle adicional sobre chaves de criptografia, você pode gerenciar suas próprias chaves. As chaves gerenciadas pelo cliente devem ser armazenadas em um Cofre de Chaves do Azure ou em um HSM (Modelo de Segurança de Hardware Gerenciado) do Cofre de Chaves do Azure.

Este artigo mostra como configurar a criptografia com chaves gerenciadas pelo cliente no momento em que você cria uma nova conta de armazenamento. No cenário entre locatários, a conta de armazenamento reside em um locatário gerenciado por um ISV, enquanto a chave usada para criptografia dessa conta de armazenamento reside em um cofre de chaves em um locatário gerenciado pelo cliente.

Para saber como configurar chaves gerenciadas pelo cliente para uma conta de armazenamento existente, consulte Configurar chaves gerenciadas pelo cliente entre locatários para uma conta de armazenamento existente.

Nota

O Azure Key Vault e o Azure Key Vault Managed HSM suportam as mesmas APIs e interfaces de gestão para a configuração de chaves geridas pelo cliente. Qualquer ação com suporte para o Azure Key Vault também é suportada para o Azure Key Vault Managed HSM.

Sobre chaves gerenciadas pelo cliente entre locatários

Muitos provedores de serviços que criam ofertas de Software como Serviço (SaaS) no Azure querem oferecer a seus clientes a opção de gerenciar suas próprias chaves de criptografia. As chaves gerenciadas pelo cliente permitem que um provedor de serviços criptografe os dados do cliente usando uma chave de criptografia gerenciada pelo cliente do provedor de serviços e que não está acessível ao provedor de serviços. No Azure, o cliente do provedor de serviços pode usar o Azure Key Vault para gerenciar suas chaves de criptografia em seu próprio locatário e assinatura do Microsoft Entra.

Os serviços e recursos da plataforma Azure que pertencem ao provedor de serviços e que residem no locatário do provedor de serviços exigem acesso à chave do locatário do cliente para executar as operações de criptografia/descriptografia.

A imagem abaixo mostra uma criptografia de dados em repouso com identidade federada em um fluxo de trabalho CMK entre locatários abrangendo um provedor de serviços e seu cliente.

Screenshot showing a cross-tenant CMK with a federated identity.

No exemplo acima, há dois locatários do Microsoft Entra: um locatário de um provedor de serviços independente (Locatário 1) e o locatário de um cliente (Locatário 2). O Locatário 1 hospeda os serviços da plataforma Azure e o Locatário 2 hospeda o cofre de chaves do cliente.

Um registro de aplicativo multilocatário é criado pelo provedor de serviços no Locatário 1. Uma credencial de identidade federada é criada neste aplicativo usando uma identidade gerenciada atribuída pelo usuário. Em seguida, o nome e a ID do aplicativo são compartilhados com o cliente.

Um usuário com as permissões apropriadas instala o aplicativo do provedor de serviços no locatário do cliente, Locatário 2. Em seguida, um usuário concede à entidade de serviço associada ao aplicativo instalado acesso ao cofre de chaves do cliente. O cliente também armazena a chave de criptografia, ou chave gerenciada pelo cliente, no cofre de chaves. O cliente partilha a localização da chave (o URL da chave) com o fornecedor de serviços.

O prestador de serviços dispõe agora de:

  • Uma ID de aplicativo para um aplicativo multilocatário instalado no locatário do cliente, ao qual foi concedido acesso à chave gerenciada pelo cliente.
  • Uma identidade gerenciada configurada como a credencial no aplicativo multilocatário.
  • A localização da chave no cofre de chaves do cliente.

Com esses três parâmetros, o provedor de serviços provisiona recursos do Azure no Locatário 1 que podem ser criptografados com a chave gerenciada pelo cliente no Locatário 2.

Vamos dividir a solução de ponta a ponta acima em três fases:

  1. O provedor de serviços configura identidades.
  2. O cliente concede ao aplicativo multilocatário do provedor de serviços acesso a uma chave de criptografia no Cofre de Chaves do Azure.
  3. O provedor de serviços criptografa dados em um recurso do Azure usando a CMK.

As operações na Fase 1 seriam uma configuração única para a maioria dos aplicativos do provedor de serviços. As operações nas fases 2 e 3 se repetiriam para cada cliente.

Fase 1 - O provedor de serviços configura um aplicativo Microsoft Entra

Passo Description Função mínima no RBAC do Azure Função mínima no Microsoft Entra RBAC
1. Crie um novo registro de aplicativo Microsoft Entra multilocatário ou comece com um registro de aplicativo existente. Observe a ID do aplicativo (ID do cliente) do registro do aplicativo usando o portal do Azure, a API do Microsoft Graph, o Azure PowerShell ou a CLI do Azure None Programador de Aplicações
2. Crie uma identidade gerenciada atribuída pelo usuário (para ser usada como uma Credencial de Identidade Federada).
Portal / do Azure Azure CLI / Azure PowerShell/ Azure Resource Manager Templates
Contribuidor de identidade gerenciado None
3. Configure a identidade gerenciada atribuída pelo usuário como uma credencial de identidade federada no aplicativo, para que ele possa representar a identidade do aplicativo.
Referência/ da API gráfica Portal/ do Azure CLI/ do Azure Azure PowerShell
None Proprietário da aplicação
4. Compartilhe o nome e o ID do aplicativo com o cliente, para que ele possa instalar e autorizar o aplicativo. None None

Considerações para os prestadores de serviços

  • Os modelos do Azure Resource Manager (ARM) não são recomendados para criar aplicativos do Microsoft Entra.
  • O mesmo aplicativo multilocatário pode ser usado para acessar chaves em qualquer número de locatários, como Locatário 2, Locatário 3, Locatário 4 e assim por diante. Em cada locatário, é criada uma instância independente do aplicativo que tem a mesma ID de aplicativo, mas uma ID de objeto diferente. Cada instância desta aplicação é, portanto, autorizada de forma independente. Considere como o objeto de aplicativo usado para esse recurso é usado para particionar seu aplicativo em todos os clientes.
  • Em cenários raros, um provedor de serviços pode usar um único objeto Application por seu cliente, mas isso requer custos de manutenção significativos para gerenciar aplicativos em escala em todos os clientes.
  • No locatário do provedor de serviços, não é possível automatizar a Verificação do Editor.

Fase 2 - O cliente autoriza o acesso ao cofre de chaves

Passo Description Funções menos privilegiadas do RBAC do Azure Funções menos privilegiadas do Microsoft Entra
1.
  • Recomendado: envie o usuário para entrar em seu aplicativo. Se o usuário puder entrar, uma entidade de serviço para seu aplicativo existirá em seu locatário.
  • Use o Microsoft Graph, o Microsoft Graph PowerShell, o Azure PowerShell ou a CLI do Azure para criar a entidade de serviço.
  • Construa uma URL de consentimento de administrador e conceda consentimento de todo o locatário para criar a entidade de serviço usando a ID do aplicativo.
  • None Usuários com permissões para instalar aplicativos
    2. Crie um Cofre de Chaves do Azure e uma chave usada como a chave gerenciada pelo cliente. Um usuário deve receber a função de Colaborador do Cofre de Chaves para criar o cofre de chaves

    Um usuário deve receber a função Key Vault Crypto Officer para adicionar uma chave ao cofre de chaves
    None
    3. Conceda à identidade do aplicativo consentido acesso ao cofre de chaves do Azure atribuindo a função Key Vault Crypto Service Encryption User Para atribuir a função de Usuário de Criptografia do Serviço de Criptografia do Cofre de Chaves ao aplicativo, você deve ter recebido a função de Administrador de Acesso deUsuário . None
    4. Copie o URL do cofre de chaves e o nome da chave para a configuração de chaves gerenciadas pelo cliente da oferta SaaS. None None

    Nota

    Para autorizar o acesso ao HSM gerenciado para criptografia usando CMK, consulte o exemplo de Conta de armazenamento aqui. Para obter mais informações sobre como gerenciar chaves com o HSM gerenciado, consulte Gerenciar um HSM gerenciado usando a CLI do Azure

    Considerações para os clientes dos prestadores de serviços

    • No locatário do cliente, o Locatário 2, um administrador pode definir políticas para impedir que usuários não administradores instalem aplicativos. Essas políticas podem impedir que usuários não administradores criem entidades de serviço. Se essa política estiver configurada, os usuários com permissões para criar entidades de serviço precisarão estar envolvidos.
    • O acesso ao Cofre da Chave do Azure pode ser autorizado usando o RBAC do Azure ou políticas de acesso. Ao conceder acesso a um cofre de chaves, certifique-se de usar o mecanismo ativo para seu cofre de chaves.
    • Um registro de aplicativo Microsoft Entra tem uma ID de aplicativo (ID do cliente). Quando o aplicativo é instalado em seu locatário, uma entidade de serviço é criada. A entidade de serviço compartilha a mesma ID de aplicativo que o registro do aplicativo, mas gera sua própria ID de objeto. Ao autorizar que o aplicativo tenha acesso a recursos, talvez seja necessário usar a entidade Name de serviço ou ObjectID a propriedade.

    Fase 3 - O provedor de serviços criptografa dados em um recurso do Azure usando a chave gerenciada pelo cliente

    Após a conclusão das fases 1 e 2, o provedor de serviços pode configurar a criptografia no recurso do Azure com a chave e o cofre da chave no locatário do cliente e o recurso do Azure no locatário do ISV. O provedor de serviços pode configurar chaves gerenciadas pelo cliente entre locatários com as ferramentas de cliente suportadas por esse recurso do Azure, com um modelo ARM ou com a API REST.

    Configurar chaves gerenciadas pelo cliente entre locatários

    Esta seção descreve como configurar uma chave gerenciada pelo cliente (CMK) entre locatários e criptografar dados do cliente. Você aprende a criptografar dados de clientes em um recurso em Tenant1 usando uma CMK armazenada em um cofre de chaves em Tenant2. Você pode usar o portal do Azure, o Azure PowerShell ou a CLI do Azure.

    Entre no portal do Azure e siga estas etapas.

    O provedor de serviços configura identidades

    As etapas a seguir são executadas pelo provedor de serviços no locatário do provedor de serviços Tenant1.

    O provedor de serviços cria um novo registro de aplicativo multilocatário

    Você pode criar um novo registro de aplicativo Microsoft Entra multilocatário ou começar com um registro de aplicativo multilocatário existente. Se começar com um registro de aplicativo existente, anote a ID do aplicativo (ID do cliente) do aplicativo.

    Para criar um novo registo:

    1. Procure Microsoft Entra ID na caixa de pesquisa. Localize e selecione a extensão Microsoft Entra ID .

    2. Selecione Gerenciar > registros de aplicativos no painel esquerdo.

    3. Selecione + Novo registo.

    4. Forneça o nome para o registro do aplicativo e selecione Conta em qualquer diretório organizacional (Qualquer diretório do Microsoft Entra – Multilocatário).

    5. Selecione Registar.

    6. Observe o ApplicationId/ClientId do aplicativo.

      Screen shot showing how to create a new multi-tenant application registration.

    O provedor de serviços cria uma identidade gerenciada atribuída pelo usuário

    Crie uma identidade gerenciada atribuída pelo usuário para ser usada como uma credencial de identidade federada.

    1. Procure Identidades Gerenciadas na caixa de pesquisa. Localize e selecione a extensão Identidades Gerenciadas .

    2. Selecione + Criar.

    3. Forneça o grupo de recursos, a região e o nome para a identidade gerenciada.

    4. Selecione Rever + criar.

    5. Na implantação bem-sucedida, observe o ResourceId do Azure da identidade gerenciada atribuída pelo usuário, que está disponível em Propriedades. Por exemplo:

      /subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA

      Screen shot showing how to create a resource group and a user-assigned managed identity.

    O provedor de serviços configura a identidade gerenciada atribuída pelo usuário como uma credencial federada no aplicativo

    Configure uma identidade gerenciada atribuída pelo usuário como uma credencial de identidade federada no aplicativo, para que ele possa representar a identidade do aplicativo.

    1. Navegue até Microsoft Entra ID > App registra > seu aplicativo.

    2. Selecione Certificados & segredos.

    3. Selecione Credenciais federadas.

      Screen shot showing how to navigate to Certificate and secrets.

    4. Selecione + Adicionar credencial.

    5. Em Cenário de credenciais federadas, selecione Chaves gerenciadas pelo cliente.

    6. Clique em Selecionar uma identidade gerenciada. No painel, selecione a assinatura. Em Identidade gerenciada, selecione Identidade gerenciada atribuída pelo usuário. Na caixa Selecionar, procure a identidade gerenciada criada anteriormente e clique em Selecionar na parte inferior do painel.

      Screen shot showing how to select a managed identity.

    7. Em Detalhes da credencial, forneça um nome e uma descrição opcional para a credencial e selecione Adicionar.

      Screen shot showing how to add a credential.

    O provedor de serviços compartilha o ID do aplicativo com o cliente

    Encontre o ID do aplicativo (ID do cliente) do aplicativo multilocatário e compartilhe-o com o cliente.

    O cliente concede ao aplicativo do provedor de serviços acesso à chave no cofre de chaves

    As etapas a seguir são executadas pelo cliente no locatário do cliente2. O cliente pode usar o portal do Azure, o Azure PowerShell ou a CLI do Azure.

    O usuário que executa as etapas deve ser um administrador com uma função privilegiada, como Administrador de Aplicativos, Administrador de Aplicativos na Nuvem ou Administrador Global.

    Entre no portal do Azure e siga estas etapas.

    O cliente instala o aplicativo do provedor de serviços no locatário do cliente

    Para instalar o aplicativo registrado do provedor de serviços no locatário do cliente, crie uma entidade de serviço com a ID do aplicativo registrado. Você pode criar a entidade de serviço de uma das seguintes maneiras:

    • Use o Microsoft Graph, o Microsoft Graph PowerShell, o Azure PowerShell ou a CLI do Azure para criar manualmente a entidade de serviço.
    • Construa uma URL de consentimento do administrador e conceda consentimento de todo o locatário para criar a entidade de serviço. Você precisará fornecer a eles seu AppId.

    O cliente cria um cofre de chaves

    Para criar o cofre de chaves, a conta do usuário deve receber a função de Colaborador do Cofre de Chaves ou outra função que permita a criação de um cofre de chaves.

    1. No menu do portal do Azure ou na página inicial, selecione + Criar um recurso. Na caixa Pesquisar, insira Cofres de chaves. Na lista de resultados, selecione Cofres de chaves. Na página Cofres de chaves, selecione Criar.

    2. Na guia Noções básicas, escolha uma assinatura. Em Grupo de recursos, selecione Criar novo e insira um nome de grupo de recursos.

    3. Insira um nome exclusivo para o cofre de chaves.

    4. Selecione uma região e um nível de preço.

    5. Habilite a proteção contra limpeza para o novo cofre de chaves.

    6. Na guia Política de acesso, selecione Controle de acesso baseado em função do Azure para Modelo de permissão.

    7. Selecione Rever + criar e, em seguida, Criar.

      Screen shot showing how to create a key vault.

    Anote o nome do cofre de chaves e o URI Os aplicativos que acessam o cofre de chaves devem usar esse URI.

    Para obter mais informações, consulte Guia de início rápido - Criar um cofre de chaves do Azure com o portal do Azure.

    O cliente atribui a função Key Vault Crypto Officer a uma conta de usuário

    Esta etapa garante que você possa criar chaves de criptografia.

    1. Navegue até o cofre das chaves e selecione Controle de acesso (IAM) no painel esquerdo.
    2. Em Conceder acesso a este recurso, selecione Adicionar a atribuição de função.
    3. Procure e selecione Key Vault Crypto Officer.
    4. Em Membros, selecione Usuário, grupo ou entidade de serviço.
    5. Selecione Membros e procure sua conta de usuário.
    6. Selecione Rever + Atribuir.

    O cliente cria uma chave de criptografia

    Para criar a chave de criptografia, a conta do usuário deve receber a função Key Vault Crypto Officer ou outra função que permita a criação de uma chave.

    1. Na página de propriedades do Cofre da Chave, selecione Chaves.
    2. Selecione Gerar/Importar.
    3. Na tela Criar uma chave, especifique um nome para a chave. Deixe as outras opções com os valores predefinidos.
    4. Selecione Criar.
    5. Copie o URI da chave.

    O cliente concede ao aplicativo do provedor de serviços acesso ao cofre de chaves

    Atribua a função RBAC do Azure Key Vault Crypto Service Encryption User ao aplicativo registrado do provedor de serviços para que ele possa acessar o cofre de chaves.

    1. Navegue até o cofre das chaves e selecione Controle de acesso (IAM) no painel esquerdo.
    2. Em Conceder acesso a este recurso, selecione Adicionar a atribuição de função.
    3. Procure e selecione Key Vault Crypto Service Encryption User.
    4. Em Membros, selecione Usuário, grupo ou entidade de serviço.
    5. Selecione Membros e procure o nome do aplicativo que você instalou a partir do provedor de serviços.
    6. Selecione Rever + Atribuir.

    Agora você pode configurar chaves gerenciadas pelo cliente com o URI e a chave do cofre de chaves.

    Criar uma nova conta de armazenamento criptografada com uma chave de um locatário diferente

    Até este ponto, você configurou o aplicativo multilocatário no locatário do ISV, instalou o aplicativo no locatário do cliente e configurou o cofre de chaves e a chave no locatário do cliente. Em seguida, você pode criar uma nova conta de armazenamento no locatário do ISV e configurar chaves gerenciadas pelo cliente com a chave do locatário do cliente.

    Você deve usar uma identidade gerenciada atribuída pelo usuário existente para autorizar o acesso ao cofre de chaves ao configurar chaves gerenciadas pelo cliente durante a criação da conta de armazenamento. A identidade gerenciada atribuída pelo usuário deve ter permissões apropriadas para acessar o cofre de chaves. Para obter mais informações, consulte Autenticar no Cofre da Chave do Azure.

    Ao configurar a criptografia com chaves gerenciadas pelo cliente para uma conta de armazenamento existente, você pode optar por atualizar automaticamente a versão da chave usada para a criptografia do Armazenamento do Azure sempre que uma nova versão estiver disponível no cofre de chaves associado. Para fazer isso, omita a versão da chave do URI da chave. Como alternativa, você pode especificar explicitamente uma versão de chave a ser usada para criptografia até que a versão da chave seja atualizada manualmente. A inclusão da versão da chave no URI da chave configura chaves gerenciadas pelo cliente para atualização manual da versão da chave.

    Importante

    Para girar uma chave, crie uma nova versão da chave no Cofre da Chave do Azure. O Armazenamento do Azure não lida com a rotação de chaves, portanto, você precisará gerenciar a rotação da chave no cofre de chaves. Você pode configurar a rotação automática de chaves no Cofre de Chaves do Azure ou girar sua chave manualmente.

    O Armazenamento do Azure verifica o cofre de chaves em busca de uma nova versão de chave apenas uma vez por dia. Quando rodar uma chave no Cofre de Chaves do Azure, certifique-se de que aguarda 24 horas antes de desativar a versão mais antiga.

    Para configurar chaves gerenciadas pelo cliente entre locatários para uma nova conta de armazenamento no portal do Azure, siga estas etapas:

    1. No portal do Azure, navegue até a página Contas de armazenamento no locatário do ISV e selecione o botão Criar para criar uma nova conta.

    2. Siga as etapas descritas em Criar uma conta de armazenamento para preencher os campos nas guias Básico, Avançado, Rede e Proteção de Dados.

    3. Na guia Criptografia, indique para quais serviços você deseja habilitar o suporte para chaves gerenciadas pelo cliente no campo Habilitar suporte para chaves gerenciadas pelo cliente.

    4. No campo Tipo de criptografia, selecione Chaves gerenciadas pelo cliente (CMK).

    5. No campo Chave de criptografia, escolha Inserir chave do cofre de chaves e especifique o URI da chave. Omita a versão da chave do URI se quiser que o Armazenamento do Azure verifique automaticamente se há uma nova versão de chave e a atualize.

    6. Para o campo Identidade atribuída pelo usuário, procure a identidade gerenciada atribuída pelo usuário que você criou anteriormente no locatário do ISV.

    7. Expanda a seção Avançado e selecione o aplicativo registrado multilocatário que você criou anteriormente no locatário do ISV.

      Screenshot showing how to configure cross-tenant customer-managed keys for a new storage account in Azure portal.

    8. Selecione o botão Rever para validar e criar a conta.

    Você também pode configurar chaves gerenciadas pelo cliente com a atualização manual da versão da chave ao criar uma nova conta de armazenamento. Para fazer isso, inclua a versão da chave ao especificar o URI da chave.

    Alterar a chave

    Você pode alterar a chave que está usando para a criptografia do Armazenamento do Azure a qualquer momento.

    Nota

    Quando você altera a chave ou a versão da chave, a proteção da chave de criptografia raiz muda, mas os dados em sua conta de Armazenamento do Azure permanecem sempre criptografados. Não é necessária qualquer ação adicional da sua parte para assegurar que os dados estão protegidos. Alterar a chave ou girar a versão da chave não afeta o desempenho. Não há tempo de inatividade associado à alteração da chave ou à rotação da versão da chave.

    Para alterar a chave com o portal do Azure, siga estas etapas:

    1. Navegue até sua conta de armazenamento e exiba as configurações de criptografia .
    2. Selecione o cofre de chaves e escolha uma nova chave.
    3. Guardar as suas alterações.

    Revogar o acesso a uma conta de armazenamento que usa chaves gerenciadas pelo cliente

    Para revogar temporariamente o acesso a uma conta de armazenamento que esteja usando chaves gerenciadas pelo cliente, desative a chave que está sendo usada atualmente no cofre de chaves. Não há impacto no desempenho ou tempo de inatividade associado à desativação e reativação da chave.

    Depois que a chave for desabilitada, os clientes não poderão chamar operações que leiam ou gravem em um blob ou em seus metadados. Para obter informações sobre quais operações falharão, consulte Revogar o acesso a uma conta de armazenamento que usa chaves gerenciadas pelo cliente.

    Atenção

    Quando você desabilita a chave no cofre de chaves, os dados em sua conta de Armazenamento do Azure permanecem criptografados, mas ficam inacessíveis até que você reative a chave.

    Para desabilitar uma chave gerenciada pelo cliente com o portal do Azure, siga estas etapas:

    1. Navegue até o cofre de chaves que contém a chave.

    2. Em Objetos, selecione Chaves.

    3. Clique com o botão direito do rato na tecla e selecione Desativar.

      Screenshot showing how to disable a customer-managed key in the key vault.

    Voltar para chaves gerenciadas pela Microsoft

    Você pode alternar de chaves gerenciadas pelo cliente de volta para chaves gerenciadas pela Microsoft a qualquer momento, usando o portal do Azure, o PowerShell ou a CLI do Azure.

    Para alternar de chaves gerenciadas pelo cliente de volta para chaves gerenciadas pela Microsoft no portal do Azure, siga estas etapas:

    1. Navegue para a sua conta de armazenamento.

    2. Em Segurança + rede, selecione Encriptação.

    3. Altere o tipo de criptografia para chaves gerenciadas pela Microsoft.

      Screenshot showing how to switch to Microsoft-managed keys for a storage account.

    Consulte também