Share via


Configurar chaves gerenciadas pelo cliente entre locatários em uma conta de armazenamento existente

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 ter mais controle sobre as chaves de criptografia, você pode gerenciar as próprias chaves. As chaves gerenciadas pelo cliente devem ser armazenadas em um Azure Key Vault ou em um HSM (Modelo de Segurança de Hardware) Gerenciado do Azure Key Vault.

Este artigo mostra como configurar a criptografia com chaves gerenciadas pelo cliente para uma conta de armazenamento existente. 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 em uma nova conta de armazenamento, confira Configurar chaves gerenciadas pelo cliente entre locatários em uma nova conta de armazenamento.

Observação

O Azure Key Vault e o HSM Gerenciado pelo Azure Key Vault oferecem suporte às mesmas APIs e interfaces de gerenciamento para configuração da chaves gerenciadas pelo cliente. Qualquer ação compatível com o Azure Key Vault também é compatível com o HSM Gerenciado do Azure Key Vault.

Sobre chaves gerenciadas pelo cliente entre locatários

Muitos provedores de serviços que criam ofertas de SaaS (Software como Serviço) no Azure querem oferecer aos clientes a opção de gerenciar as 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, que não está acessível ao provedor de serviços. No Azure, o cliente do provedor de serviços pode usar os Azure Key Vaults para gerenciar suas chaves de criptografia em seu próprio locatário e assinatura do Microsoft Entra.

Os serviços e os recursos da plataforma Azure que pertencem ao provedor de serviços e 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: o 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 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 em 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, o Locatário 2. Depois, um usuário permite à entidade de serviço associada o acesso do aplicativo instalado ao cofre de chaves do cliente. O cliente também armazena a chave de criptografia, ou a chave gerenciada pelo cliente, no cofre de chaves. O cliente compartilha o local da chave (a URL da chave) com o provedor de serviços.

O provedor de serviço agora tem:

  • Uma ID de aplicativo de um aplicativo multilocatário instalado no locatário do cliente, que recebeu acesso à chave gerenciada pelo cliente.
  • Uma identidade gerenciada configurada como a credencial no aplicativo multilocatário.
  • O local 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 permite ao aplicativo multilocatário do provedor de serviços acesso a uma chave de criptografia no Azure Key Vault.
  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 seriam repetidas para cada cliente.

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

Etapa Descrição Função mínima no RBAC do Azure Função mínima no Microsoft Entra RBAC
1. Crie um novo registro de aplicativo multilocatário do Microsoft Entra ou comece com um registro de aplicativo existente. Anote a ID do aplicativo (ID do cliente) do registro de aplicativo usando o portal do Azure, a API do Microsoft Graph, o Azure PowerShell ou a CLI do Azure Nenhum Desenvolvedor de Aplicativo
2. Crie uma identidade gerenciada atribuída pelo usuário (a ser usada como uma Credencial de Identidade Federada).
Portal do Azure / CLI do Azure / Azure PowerShell/ Modelos do Azure Resource Manager
Colaborador de identidade gerenciada Nenhum
3. Configure a identidade gerenciada atribuída pelo usuário como uma credencial de identidade federada no aplicativo, para que ela possa representar a identidade do aplicativo.
Referência da API do Graph/ Portal do Azure/ CLI do Azure/ Azure PowerShell
Nenhum Proprietário do aplicativo
4. Compartilhe o nome do aplicativo e a ID do aplicativo com o cliente, para que ele possa instalar e autorizar o aplicativo. Nenhum Nenhum

Considerações para provedores de serviço

  • Os modelos do ARM (Azure Resource Manager) 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, uma instância independente do aplicativo é criada com a mesma ID do aplicativo, mas com uma ID de objeto diferente. Cada instância desse aplicativo é, portanto, autorizada de maneira independente. Considere como o objeto de aplicativo usado para esse recurso é usado para particionar o aplicativo entre todos os clientes.
  • Em cenários raros, um provedor de serviços deve usar um único objeto de aplicativo por cliente, mas isso exige custos de manutenção significativos com relação ao gerenciamento em escala dos aplicativos 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

Etapa Descrição Funções RBAC do Azure com privilégios mínimos Funções menos privilegiadas do Microsoft Entra
1.
  • Recomendado: enviar o usuário para entrar no aplicativo. Se o usuário puder entrar, uma entidade de serviço do aplicativo existirá no locatário.
  • Use o Microsoft Graph, o PowerShell do Microsoft Graph, o Azure PowerShell ou a CLI do Azure para criar a entidade de serviço.
  • Construa uma URL de consentimento do administrador e dê consentimento a todo o locatário para criar a entidade de serviço usando a ID do aplicativo.
  • Nenhum Usuários com permissões para instalar aplicativos
    2. Crie um Azure Key Vault e uma chave usada como a chave gerenciada pelo cliente. Um usuário deve receber a função de Colaborador do Key Vault para criar o key vault

    Um usuário precisa receber a função Responsável pela Criptografia do Key Vault para adicionar um cofre ao Key Vault
    Nenhum
    3. Permita acesso de identidade de aplicativo consentido ao Azure Key Vault atribuindo a função Usuário de Criptografia do Serviço de Criptografia do Key Vault Para atribuir a função Usuário de Criptografia do Serviço de Criptografia do Key Vault ao aplicativo, você precisa ter recebido a função Administrador de Acesso do Usuário. Nenhum
    4. Copie a URL do cofre de chaves e o nome da chave na configuração de chaves gerenciadas pelo cliente da oferta de SaaS. Nenhum Nenhum

    Observação

    Para autorizar o acesso ao HSM Gerenciado para criptografia usando a CMK, consulte o exemplo para 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 clientes de provedores de serviços

    • No locatário do cliente, 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, será necessário que os usuários com permissões para criar entidades de serviço se envolvam.
    • O acesso ao Azure Key Vault pode ser autorizado usando o RBAC do Azure ou as políticas de acesso. Ao permitir acesso a um cofre de chaves, use o mecanismo ativo do cofre de chaves.
    • Um registro de aplicativo do 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 do aplicativo que o registro do aplicativo, mas gera a própria ID de objeto. Quando você autorizar o aplicativo a ter acesso aos recursos, será necessário usar a entidade de serviço Name ou a propriedade ObjectID.

    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 poderá configurar a criptografia no recurso do Azure com a chave e o cofre de chaves 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 compatíveis com esse recurso do Azure, com um modelo do ARM ou com a API REST.

    Configurar chaves gerenciadas pelo cliente entre locatários

    Esta seção descreve como configurar uma CMK (chave gerenciada pelo cliente) entre locatários e criptografar dados do cliente. Você aprenderá a criptografar dados do cliente em um recurso no Tenant1 usando uma CMK armazenada em um cofre de chaves no 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 registro de aplicativo multilocatário

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

    Para criar um registro:

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

    2. Selecione Gerenciar > Registros de Aplicativo no painel esquerdo.

    3. Selecione + Novo Registro.

    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 Registrar.

    6. Anote a 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 a 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 da identidade gerenciada.

    4. Selecione Examinar + criar.

    5. Após a implantação bem-sucedida, anote 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 a identidade gerenciada atribuída pelo usuário como uma credencial de identidade federada no aplicativo, para que ela possa representar a identidade do aplicativo.

    1. Navegue até Microsoft Entra ID > Registros de aplicativo > seu aplicativo.

    2. Selecione Certificados e segredos.

    3. Selecione Credenciais federadas.

      Screen shot showing how to navigate to Certificate and secrets.

    4. Selecione + Adicionar credencial.

    5. Em Cenário de credencial federada, selecione Chaves Gerenciadas pelo Cliente.

    6. Clique em Selecionar uma identidade gerenciada. No painel, selecione a assinatura. Em Identidade gerenciada, selecione a Identidade gerenciada atribuída pelo usuário. Na caixa Selecionar, procure a identidade gerenciada que você criou 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 a ID do aplicativo com o cliente

    Localize a ID do aplicativo (ID do cliente) referente ao aplicativo multilocatário e compartilhe-a com os clientes.

    O cliente permite 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 cliente Tenant2. O cliente pode usar o portal do Azure, o Azure PowerShell ou a CLI do Azure.

    O usuário que executa as etapas precisa ser um administrador com uma função com privilégios, como Administrador de aplicativos, Administrador de aplicativos de 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:

    O cliente cria um cofre de chaves

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

    1. No menu ou na home page do portal do Azure, selecione + Criar um recurso. Na caixa Pesquisa, digite Cofres de chaves. Na lista de resultados, selecione Cofres de chaves. Na página Cofres de chaves, selecione Criar.

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

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

    4. Selecione uma região e um tipo de preço.

    5. Habilite a proteção contra limpeza no 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 Examinar + criar e depois Criar.

      Screen shot showing how to create a key vault.

    Observe que o nome do cofre de chaves e os aplicativos de URI que acessam o cofre de chaves deverão usar esse URI.

    Para obter mais informações, confira Guia de início rápido – Criar um Azure Key Vault com o portal do Azure.

    O cliente atribui a função de Responsável pela Criptografia do Key Vault a uma conta de usuário

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

    1. Navegue até o cofre de chaves e selecione Controle de Acesso (IAM) no painel à esquerda.
    2. Em Permitir acesso a esse recurso, selecione Adicionar atribuição de função.
    3. Pesquise e selecione Responsável pela Criptografia do Key Vault.
    4. Em Membros, selecione Usuário, grupo ou entidade de serviço.
    5. Selecione Membros e procure sua conta de usuário.
    6. Selecione Examinar + Atribuir.

    O cliente cria uma chave de criptografia

    Para criar a chave de criptografia, a conta do usuário precisa receber a função Responsável pela Criptografia do Key Vault ou outra função que permita a criação de uma chave.

    1. Na página de propriedades do Key Vault, selecione Chaves.
    2. Selecione Gerar/Importar.
    3. Na tela Criar uma chave, especifique um nome para a chave. Deixe os outros valores com seus padrões.
    4. Selecione Criar.
    5. Copie o URI da chave.

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

    Atribua a função RBAC do Azure Usuário de Criptografia do Serviço de Criptografia do Key Vault ao aplicativo registrado do provedor de serviços para que ele possa acessar o cofre de chaves.

    1. Navegue até o cofre de chaves e selecione Controle de Acesso (IAM) no painel à esquerda.
    2. Em Permitir acesso a esse recurso, selecione Adicionar atribuição de função.
    3. Procure e selecione Usuário de Criptografia do Serviço de Criptografia do Key Vault.
    4. Em Membros, selecione Usuário, grupo ou entidade de serviço.
    5. Selecione Membros e procure o nome do aplicativo que você instalou do provedor de serviços.
    6. Selecione Examinar + Atribuir.

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

    Configurar chaves gerenciadas pelo cliente para uma conta existente

    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. Depois, você pode configurar chaves gerenciadas pelo cliente em uma conta de armazenamento existente com a chave do locatário do cliente.

    Os exemplos neste artigo mostram como configurar chaves gerenciadas pelo cliente em uma conta de armazenamento existente usando uma identidade gerenciada atribuída pelo usuário para autorizar o acesso ao cofre de chaves. Você também pode usar uma identidade gerenciada atribuída pelo sistema para configurar chaves gerenciadas pelo cliente em uma conta de armazenamento existente. Em ambos os casos, a identidade gerenciada atribuída pelo usuário precisa ter as permissões apropriadas para acessar o cofre de chaves. Para saber mais, confira Autenticar-se no Azure Key Vault.

    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 de chave no URI de 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 Azure Key Vault. 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 Azure Key Vault ou rotacionar a chave manualmente.

    O Armazenamento do Azure verifica o cofre de chaves para detectar uma nova versão de chave apenas uma vez por dia. Ao fazer a rotação de uma chave no Azure Key Vault, aguarde 24 horas para desabilitar a versão mais antiga.

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

    1. Navegue para sua conta de armazenamento.

    2. Em Segurança + rede, selecione Criptografia. Por padrão, o gerenciamento de chaves é definido como chaves gerenciadas pela Microsoft, como é mostrado na imagem a seguir.

      Screenshot showing encryption options in Azure portal.

    3. Selecione a opção Chaves gerenciadas pelo cliente.

    4. Escolha a opção Selecionar do Cofre de chaves.

    5. Selecione Inserir URI da chave 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 atualize-a.

    6. Selecione a assinatura que contém o cofre de chaves e a chave.

    7. No campo Tipo de identidade, selecione Atribuído pelo usuário e especifique a identidade gerenciada com a credencial de identidade federada que você criou.

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

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

    9. Salve suas alterações.

    Depois que você especificar a chave do cofre de chaves no locatário do cliente, o portal do Azure indicará que as chaves gerenciadas pelo cliente estão configuradas com essa chave. Ele também indicará que a atualização automática da versão de chave está habilitada e exibirá a versão da chave em uso para criptografia no momento. O portal também exibe o tipo de identidade gerenciada usada para autorizar o acesso ao cofre de chaves, a ID da entidade de segurança da identidade gerenciada e a ID do aplicativo multilocatário.

    Screenshot showing cross-tenant customer-managed key configuration.

    Alterar a chave

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

    Observação

    Quando você atualiza a chave ou sua versão, a proteção da chave de criptografia raiz é alterada, mas os dados em sua conta do Armazenamento do Azure permanecem criptografados o tempo todo. Não há mais nenhuma ação necessária da sua parte para garantir que seus dados estejam 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 ou rotação da versão da chave.

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

    1. Navegue até a conta de armazenamento e exiba as configurações de Criptografia.
    2. Selecione o cofre de chaves e escolha uma nova chave.
    3. Salve 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 está usando chaves gerenciadas pelo cliente, desabilite a chave que está sendo usada atualmente no cofre de chaves. Não há nenhum impacto no desempenho ou tempo de inatividade associado à desabilitação e reabilitação da chave.

    Depois que a chave é desativada, os clientes não podem chamar operações que leem ou gravam 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.

    Cuidado

    Quando você desabilitar a chave no cofre de chaves, os dados em sua conta do Armazenamento do Azure permanecerão criptografados, mas ficarão inacessíveis até que você reabilite 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 mouse na chave e selecione Desabilitar.

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

    Voltar para chaves gerenciadas pela Microsoft

    Você pode sair das chaves gerenciadas pelo cliente e voltar para as chaves gerenciadas pela Microsoft a qualquer momento, usando o portal do Azure, o PowerShell ou a CLI do Azure.

    Para sair das chaves gerenciadas pelo cliente e voltar para as chaves gerenciadas pela Microsoft no portal do Azure, siga estas etapas:

    1. Navegue para sua conta de armazenamento.

    2. Em Segurança + rede, selecione Criptografia.

    3. Altere o Tipo de criptografia para Chaves gerenciadas pela Microsoft.

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

    Confira também