Partilhar via


Configure chaves geridas pelo cliente para a sua conta Azure Batch com Azure Key Vault e Managed Identity

Por defeito, o Azure Batch usa chaves geridas pela plataforma para encriptar todos os dados do cliente armazenados no Azure Batch Service, como certificados, metadados de trabalho/tarefa. Opcionalmente, pode usar as suas próprias chaves, ou seja, chaves geridas pelo cliente, para encriptar os dados armazenados no Azure Batch.

As chaves que forneces devem ser geradas no Azure Key Vault e devem ser acedidas com identidades geridas para recursos Azure.

Existem dois tipos de identidades geridas: atribuídas pelo sistema e atribuídas pelo utilizador.

Pode criar a sua conta Batch com identidade gerida atribuída pelo sistema, ou criar uma identidade gerida separada atribuída pelo utilizador que tenha acesso às chaves geridas pelo cliente. Consulte a tabela comparativa para perceber as diferenças e considerar qual a opção que funciona melhor para a sua solução. Por exemplo, se quiser usar a mesma identidade gerida para aceder a múltiplos recursos Azure, é necessária uma identidade gerida atribuída pelo utilizador. Se não, uma identidade gerida atribuída pelo sistema associada à sua conta Batch pode ser suficiente. Usar uma identidade atribuída gerida pelo utilizador também lhe dá a opção de implementar chaves geridas pelo cliente na criação da conta do Batch, como mostrado a seguir.

Crie uma conta Batch com identidade gerida atribuída pelo sistema

Se não precisar de uma identidade gerida atribuída pelo utilizador, pode ativar a identidade gerida atribuída ao sistema ao criar a sua conta Batch.

Important

Uma identidade gerida atribuída pelo sistema, criada para uma conta Batch para encriptação de dados do cliente, conforme descrito neste documento, não pode ser usada como identidade gerida atribuída pelo utilizador num pool Batch. Se desejar usar a mesma identidade gerida tanto na conta Batch como no pool Batch, então utilize uma identidade gerida comum atribuída pelo utilizador.

portal do Azure

No portal do Azure, ao criar contas do Batch, escolha Atribuído pelo sistema como tipo de identidade no separador Avançado.

Captura de ecrã de uma nova conta de lote com o tipo de identidade atribuído ao sistema.

Depois de criada a conta, pode encontrar um GUID único no campo Id principal de Identidade na secção Propriedades. O Tipo de Identidade mostrará System assigned.

Captura de ecrã mostrando um GUID único no campo Id principal de Identidade.

Precisa deste valor para conceder a esta conta Batch acesso ao Cofre de Chaves.

Azure CLI

Quando criar uma nova conta Batch, especifique SystemAssigned para o parâmetro --identity.

resourceGroupName='myResourceGroup'
accountName='mybatchaccount'

az batch account create \
    --name $accountName \
    --resource-group $resourceGroupName \
    --locations regionName='West US 2' \
    --identity 'SystemAssigned'

Depois de a conta ser criada, pode verificar que a identidade gerida atribuída ao sistema foi ativada nesta conta. Certifique-se de notar o PrincipalId, pois este valor é necessário para conceder a esta conta do lote acesso ao Cofre de Chaves.

az batch account show \
    --name $accountName \
    --resource-group $resourceGroupName \
    --query identity

Note

A identidade gerida atribuída pelo sistema criada numa conta Batch é usada apenas para recuperar chaves geridas pelo cliente do Key Vault. A identidade não está disponível nos pools de Batch. Para usar uma identidade gerida atribuída pelo utilizador num pool, consulte Configurar identidades geridas em pools Batch.

Criar uma identidade gerenciada atribuída pelo usuário

Se preferir, pode criar uma identidade gerida atribuída pelo utilizador que pode ser usada para aceder às suas chaves geridas pelo cliente.

Precisas do valor do ID do Cliente desta identidade para aceder ao Cofre de Chaves.

Configurar sua instância do Azure Key Vault

O Azure Key Vault onde as suas chaves são geradas deve ser criado no mesmo tenant que a sua conta Batch. Não precisa de estar no mesmo grupo de recursos ou sequer na mesma subscrição.

Criar um Azure Key Vault

Ao criar uma instância Azure Key Vault com chaves geridas pelo cliente para Azure Batch, certifique-se de que tanto a Soft Delete como a Purge Protection estão ativadas.

Captura de ecrã da janela de criação do Cofre de Chaves.

Adicione uma política de acesso à sua instância Azure Key Vault

No portal Azure, após a criação do Key Vault, na Política de Acesso em Definições, adicione o acesso à conta Batch usando a identidade gerida. Em Permissões de Chave, selecione Obter, Enrolar Chave e Desembrulhar Chave.

Captura de ecrã que mostra o ecrã de Adicionar política de acesso.

No campo Select em Principal, preencha um dos seguintes:

  • Para a identidade gerida atribuída ao sistema: Insira o principalId que recuperou anteriormente ou o nome da conta Batch.
  • Para a identidade gerida atribuída pelo utilizador: Insira o ID do Cliente que recuperou anteriormente ou o nome da identidade gerida atribuída pelo utilizador.

Captura de ecrã da tela Principal.

Gerar uma chave no Azure Key Vault

No portal Azure, vai à instância Key Vault na secção de chaves , seleciona Gerar/Importar. Selecione o Tipo de Chave para RSA e o Tamanho da Chave RSA para ter, pelo menos, 2048 bits. EC Os tipos de chave atualmente não são suportados como chave gerida pelo cliente numa conta Batch.

Crie uma chave

Depois de criada a chave, clique na chave recém-criada e na versão atual, copie o Identificador de Chave na secção de propriedades . Certifique-se de que, em Operações Permitidas, Wrap Key e Unwrap Key estão ambas verificadas.

Ativar chaves geridas pelo cliente numa conta Batch

Agora que os pré-requisitos estão definidos, pode ativar chaves geridas pelo cliente na sua conta Batch.

portal do Azure

No portal do Azure, vá à página da conta do Batch. Na secção de Encriptação , ative a chave Gerida pelo Cliente. Podes usar diretamente o Identificador de Chaves, ou podes selecionar o cofre de chaves e depois clicar em Selecionar um cofre de chaves e chave.

Captura de ecrã mostrando a secção de Encriptação e opção para ativar a chave gerida pelo cliente

Azure CLI

Depois de a conta Batch ser criada com uma identidade gerida atribuída pelo sistema e o acesso ao Key Vault ser concedido, atualize a conta Batch com o URL {Key Identifier} no parâmetro keyVaultProperties. Configure também --encryption-key-source como Microsoft.KeyVault.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-source Microsoft.KeyVault \
    --encryption-key-identifier {YourKeyIdentifier}

Crie uma conta Batch com identidade gerida atribuída pelo utilizador e chaves geridas pelo cliente

Por exemplo, usando o cliente .NET de gestão por lotes, pode criar uma conta em lote que tenha uma identidade gerida atribuída pelo utilizador e chaves geridas pelo cliente.

string subscriptionId = "Your SubscriptionID";
string resourceGroupName = "Your ResourceGroup name";
         
var credential = new DefaultAzureCredential();
ArmClient _armClient = new ArmClient(credential);

ResourceIdentifier resourceGroupResourceId = ResourceGroupResource.CreateResourceIdentifier(subscriptionId, resourceGroupName);
ResourceGroupResource resourceGroupResource = _armClient.GetResourceGroupResource(resourceGroupResourceId);

var data = new BatchAccountCreateOrUpdateContent(AzureLocation.EastUS)
{
    Encryption = new BatchAccountEncryptionConfiguration()
    {
        KeySource = BatchAccountKeySource.MicrosoftKeyVault,
        KeyIdentifier = new Uri("Your Key Azure Resource Manager Resource ID"),
    },

    Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.UserAssigned)
    {
        UserAssignedIdentities = {
            [new ResourceIdentifier("Your Identity Azure Resource Manager ResourceId")] = new UserAssignedIdentity(),
        },
    }
};

var lro = resourceGroupResource.GetBatchAccounts().CreateOrUpdate(WaitUntil.Completed, "Your BatchAccount name", data);
BatchAccountResource batchAccount = lro.Value;

Atualizar a versão da chave gerida pelo cliente

Quando criares uma nova versão de uma chave, atualiza a conta Batch para usar a nova versão. Siga estes passos:

  1. Navegue até à sua conta Batch no portal Azure e mostre as definições de Encriptação.
  2. Insira o URI para a nova versão da chave. Alternativamente, podes selecionar o Key Vault e a chave novamente para atualizar a versão.
  3. Salve suas alterações.

Também podes usar o Azure CLI para atualizar a versão.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-identifier {YourKeyIdentifierWithNewVersion}

Tip

Podes fazer com que as tuas chaves rodem automaticamente criando uma política de rotação de chaves dentro do Key Vault. Ao especificar um Identificador de Chave para a conta Batch, use o identificador de chave sem versão para permitir a autorrotação com uma política de rotação válida. Para mais informações, consulte como configurar a rotação de chaves no Key Vault.

Use uma chave diferente para encriptação por lote

Para alterar a chave usada para encriptação em lote, siga estes passos:

  1. Navegue até à sua conta Batch e mostre as definições de Encriptação.
  2. Insira o URI da nova chave. Alternativamente, podes selecionar o Cofre da Chave e escolher uma nova chave.
  3. Salve suas alterações.

Também podes usar o Azure CLI para usar uma chave diferente.

az batch account set \
    --name $accountName \
    --resource-group $resourceGroupName \
    --encryption-key-identifier {YourNewKeyIdentifier}

Perguntas frequentes

  • As chaves geridas pelo cliente são suportadas para contas Batch existentes? No. Chaves geridas pelo cliente são suportadas apenas para contas Batch novas.
  • Posso selecionar tamanhos de chave RSA superiores a 2048 bits? Sim, os tamanhos de chave RSA de 3072 e 4096 bits também são suportados.
  • Quais operações estão disponíveis depois que uma chave gerenciada pelo cliente é revogada? A única operação permitida é a eliminação da conta se o Batch perder o acesso à chave gerida pelo cliente.
  • Como devo restaurar o acesso à minha conta Batch se apagar acidentalmente a chave do Key Vault? Como a proteção contra purgas e a eliminação suave estão ativadas, podes restaurar as teclas existentes. Para mais informações, consulte Recuperar um Azure Key Vault.
  • Posso desativar chaves geridas pelo cliente? Pode voltar a definir o tipo de encriptação da Conta Batch para "chave gerida Microsoft" a qualquer momento. Pode apagar ou alterar a chave depois.
  • Como posso rodar as minhas teclas? As chaves geridas pelo cliente não são rotadas automaticamente a menos que a chave seja sem versão, com uma política de rotação de chaves apropriada definida dentro do Key Vault. Para rodar manualmente a chave, atualize o Identificador de Chave ao qual a conta está associada.
  • Depois de restaurar o acesso, quanto tempo vai demorar até a conta Batch voltar a funcionar? Pode demorar até 10 minutos até a conta voltar a estar acessível assim que o acesso for restaurado.
  • Enquanto a Conta do Batch não estiver disponível, o que acontece aos meus recursos? Quaisquer pools que estejam ativos quando o acesso em lote à chave gerida pelo cliente for perdido continuarão a funcionar. No entanto, os nós nestes pools passam para um estado indisponível, e as tarefas deixam de ser executadas (e são recolocadas em fila). Uma vez restaurado o acesso, os nós tornam-se novamente disponíveis e as tarefas são reiniciadas.
  • Este mecanismo de encriptação aplica-se a discos VM num pool Batch? No. Para pools de Configuração de Serviços Cloud (que estão obsoletos), não é aplicada encriptação ao sistema operativo e ao disco temporário. Para pools de Configuração de Máquinas Virtuais, o sistema operativo (OS) e quaisquer discos de dados especificados são encriptados por defeito com uma chave gerida pela plataforma Microsoft. Atualmente, não pode especificar a sua própria chave para estes discos. Para encriptar o disco temporário de VMs para um pool de Batch com uma chave gerida pela plataforma Microsoft, tem de ativar a propriedade diskEncryptionConfiguration no seu Pool de Configuração de Máquina Virtual. Para ambientes altamente sensíveis, recomendamos ativar a encriptação temporária do disco e evitar armazenar dados sensíveis no sistema operativo e nos discos de dados. Para mais informações, consulte Criar um pool com encriptação de disco ativada
  • A identidade gerida atribuída pelo sistema na conta Batch está disponível nos nós de computação? No. A identidade gerida atribuída pelo sistema é atualmente usada apenas para aceder ao Azure Key Vault para a chave gerida pelo cliente. Para usar uma identidade gerida atribuída pelo utilizador em nós de computação, veja Configurar identidades geridas em pools de batch.

Próximos passos