Configurar chaves gerenciadas pelo cliente para sua conta do Azure Batch com o Azure Key Vault e a Identidade Gerenciada

Por padrão, o Lote do Azure usa chaves gerenciadas pela plataforma para criptografar todos os dados do cliente armazenados no Serviço de Lote do Azure, como certificados, metadados de trabalho/tarefa. Opcionalmente, você pode usar suas próprias chaves, ou seja, chaves gerenciadas pelo cliente, para criptografar dados armazenados no Lote do Azure.

As chaves fornecidas devem ser geradas no Cofre de Chaves do Azure e devem ser acessadas com identidades gerenciadas para recursos do Azure.

Existem dois tipos de identidades gerenciadas: atribuídas pelo sistema e atribuídas pelo usuário.

Você pode criar sua conta de lote com identidade gerenciada atribuída ao sistema ou criar uma identidade gerenciada atribuída ao usuário separada que tenha acesso às chaves gerenciadas pelo cliente. Analise a tabela de comparação para entender as diferenças e considerar qual opção funciona melhor para sua solução. Por exemplo, se você quiser usar a mesma identidade gerenciada para acessar vários recursos do Azure, uma identidade gerenciada atribuída pelo usuário é necessária. Caso contrário, uma identidade gerenciada atribuída pelo sistema associada à sua conta do Batch pode ser suficiente. O uso de uma identidade gerenciada atribuída pelo usuário também oferece a opção de impor chaves gerenciadas pelo cliente na criação da conta em lote, conforme mostrado a seguir.

Criar uma conta de lote com identidade gerenciada atribuída ao sistema

Se você não precisar de uma identidade gerenciada atribuída ao usuário separada, poderá habilitar a identidade gerenciada atribuída ao sistema ao criar sua conta em lote.

Importante

Uma identidade gerenciada atribuída ao sistema criada para uma conta de lote para criptografia de dados do cliente, conforme descrito neste documento, não pode ser usada como uma identidade gerenciada atribuída pelo usuário em um pool de lotes. Se você deseja usar a mesma identidade gerenciada na conta de lote e no pool de lotes, use uma identidade gerenciada comum atribuída pelo usuário.

Portal do Azure

No portal do Azure, ao criar contas em lote, selecione Sistema atribuído no tipo de identidade na guia Avançado.

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

Depois que a conta for criada, você poderá encontrar um GUID exclusivo no campo ID da entidade de identidade na seção Propriedades. O Tipo de Identidade mostrará System assigned.

Captura de tela mostrando um GUID exclusivo no campo ID principal da identidade.

Você precisa desse valor para conceder a essa conta de lote acesso ao Cofre da Chave.

CLI do Azure

Ao criar uma nova conta de lote, especifique SystemAssigned o --identity parâmetro.

resourceGroupName='myResourceGroup'
accountName='mybatchaccount'

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

Depois que a conta for criada, você poderá verificar se a identidade gerenciada atribuída ao sistema foi habilitada nessa conta. Certifique-se de anotar o PrincipalId, pois esse valor é necessário para conceder a essa conta de lote acesso ao Cofre de Chaves.

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

Nota

A identidade gerenciada atribuída ao sistema criada em uma conta Batch é usada apenas para recuperar chaves gerenciadas pelo cliente do Cofre de Chaves. Essa identidade não está disponível em pools de lotes. Para usar uma identidade gerenciada atribuída pelo usuário em um pool, consulte Configurar identidades gerenciadas em pools de lotes.

Criar uma identidade gerida atribuída pelo utilizador

Se preferir, você pode criar uma identidade gerenciada atribuída pelo usuário que pode ser usada para acessar suas chaves gerenciadas pelo cliente.

Você precisa do valor de ID do Cliente dessa identidade para que ela acesse o Cofre da Chave.

Configurar sua instância do Azure Key Vault

O Cofre da Chave do Azure no qual suas chaves são geradas deve ser criado no mesmo locatário que sua conta do Batch. Ele não precisa estar no mesmo grupo de recursos ou mesmo na mesma assinatura.

Criar um Azure Key Vault

Ao criar uma instância do Cofre de Chaves do Azure com chaves gerenciadas pelo cliente para o Azure Batch, verifique se a Proteção contra Exclusão Flexível e a Proteção contra Limpeza estão habilitadas.

Captura de ecrã do ecrã de criação do Cofre da Chave.

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

No portal do Azure, após a criação do Cofre da Chave, na Política de Acesso em Configuração, adicione o acesso à conta em lote usando a identidade gerenciada. Em Permissões de chave, selecione Obter, Chave de encapsulamento e Desembrulhar chave.

Captura de ecrã a mostrar o ecrã Adicionar política de acesso.

No campo Selecionar em Principal, preencha uma das seguintes opções:

  • Para identidade gerenciada atribuída ao sistema: insira o principalId que você recuperou anteriormente ou o nome da conta do lote.
  • Para identidade gerenciada atribuída pelo usuário: insira a ID do Cliente que você recuperou anteriormente ou o nome da identidade gerenciada atribuída pelo usuário.

Captura de ecrã do ecrã Principal.

Gerar uma chave no Azure Key Vault

No portal do Azure, vá para a instância do Cofre da Chave na seção de chave , selecione Gerar/Importar. Selecione o Tipo de Chave a ser RSA e o Tamanho da Chave RSA para ser, pelo menos2048, bits. EC Atualmente, não há suporte para tipos de chave gerenciados pelo cliente em uma conta de lote.

Criar uma chave

Depois que a chave for criada, clique na chave recém-criada e na versão atual, copie o Identificador de Chave na seção de propriedades . Certifique-se de que, em Operações permitidas, Chave de encapsulamento e Chave de desempacotamento estão marcadas.

Habilitar chaves gerenciadas pelo cliente em uma conta Batch

Agora que os pré-requisitos estão em vigor, você pode habilitar chaves gerenciadas pelo cliente em sua conta do Batch.

Portal do Azure

No portal do Azure, vá para a página Conta em lote. Na seção Criptografia, habilite a chave gerenciada pelo cliente. Você pode usar diretamente o Identificador de Chave ou selecionar o cofre de chaves e clicar em Selecionar um cofre de chaves e uma chave.

Captura de tela mostrando a seção Criptografia e a opção para habilitar a chave gerenciada pelo cliente

CLI do Azure

Depois que a conta Batch for criada com a identidade gerenciada atribuída pelo sistema e o acesso ao Key Vault for concedido, atualize a conta Batch com a {Key Identifier} URL sob keyVaultProperties o parâmetro. Também definido --encryption-key-source como Microsoft.KeyVault.

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

Criar uma conta de lote com identidade gerenciada atribuída pelo usuário e chaves gerenciadas pelo cliente

Como exemplo usando o cliente .NET de gerenciamento de lotes, você pode criar uma conta de lote que tenha uma identidade gerenciada atribuída pelo usuário e chaves gerenciadas 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 gerenciada pelo cliente

Quando você cria uma nova versão de uma chave, atualize a conta de lote para usar a nova versão. Siga estes passos:

  1. Navegue até sua conta em lote no portal do Azure e exiba as configurações de Criptografia.
  2. Insira o URI para a nova versão da chave. Como alternativa, você pode selecionar o Cofre da Chave e a chave novamente para atualizar a versão.
  3. Guardar as suas alterações.

Você também pode usar a CLI do Azure para atualizar a versão.

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

Gorjeta

Você pode fazer com que suas chaves girem automaticamente criando uma política de rotação de chaves no Cofre de Chaves. Ao especificar um identificador de chave para a conta de lote, use o identificador de chave sem versão para habilitar a rotação automática com uma política de rotação válida. Para obter mais informações, consulte como configurar a rotação de chaves no Cofre de Chaves.

Usar uma chave diferente para criptografia em lote

Para alterar a chave usada para criptografia em lote, execute estas etapas:

  1. Navegue até sua conta Batch e exiba as configurações de criptografia.
  2. Insira o URI da nova chave. Como alternativa, você pode selecionar o Cofre da Chave e escolher uma nova chave.
  3. Guardar as suas alterações.

Você também pode usar a CLI do Azure para usar uma chave diferente.

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

Perguntas mais frequentes

  • As chaves gerenciadas pelo cliente são suportadas para contas em lote existentes? N.º As chaves gerenciadas pelo cliente só são suportadas para novas contas Batch.
  • Posso selecionar tamanhos de chave RSA maiores que 2048 bits? Sim, os tamanhos de chave e 4096 bits RSA também são suportados3072.
  • Quais operações estão disponíveis depois que uma chave gerenciada pelo cliente é revogada? A única operação permitida é a exclusão da conta se o Batch perder o acesso à chave gerenciada pelo cliente.
  • Como devo restaurar o acesso à minha conta Batch se eu excluir acidentalmente a chave do Cofre da Chave? Como a proteção contra limpeza e a exclusão suave estão habilitadas, você pode restaurar as chaves existentes. Para obter mais informações, consulte Recuperar um Cofre de Chaves do Azure.
  • Posso desativar chaves gerenciadas pelo cliente? Você pode definir o tipo de criptografia da conta em lote de volta para "chave gerenciada pela Microsoft" a qualquer momento. Você é livre para excluir ou alterar a chave depois.
  • Como posso rodar as minhas chaves? As chaves gerenciadas pelo cliente não são alternadas automaticamente, a menos que a chave não tenha versão com uma política de rotação de chaves apropriada definida no Cofre de Chaves. Para girar manualmente a chave, atualize o Identificador de Chave ao qual a conta está associada.
  • Depois de restaurar o acesso, quanto tempo levará para a conta do Batch funcionar novamente? Pode levar até 10 minutos para que a conta esteja acessível novamente assim que o acesso for restaurado.
  • Enquanto a Conta em lote não estiver disponível, o que acontece aos meus recursos? Todos os pools que estiverem ativos quando o acesso em lote à chave gerenciada pelo cliente for perdido continuarão a ser executados. No entanto, os nós nesses pools farão a transição para um estado indisponível e as tarefas deixarão de ser executadas (e serão novamente enfileiradas). Depois que o acesso é restaurado, os nós ficam disponíveis novamente e as tarefas são reiniciadas.
  • Esse mecanismo de criptografia se aplica a discos de VM em um pool de lotes? N.º Para pools de Configuração de Serviços de Nuvem (que foram preteridos), nenhuma criptografia é aplicada para o sistema operacional e o disco temporário. Para pools de Configuração de Máquina Virtual, o sistema operacional e quaisquer discos de dados especificados são criptografados com uma chave gerenciada pela plataforma Microsoft por padrão. Atualmente, não é possível especificar sua própria chave para esses discos. Para criptografar o disco temporário de VMs para um pool de lotes com uma chave gerenciada pela plataforma Microsoft, você deve habilitar a propriedade diskEncryptionConfiguration no pool de configuração da máquina virtual. Para ambientes altamente confidenciais, recomendamos habilitar a criptografia de disco temporária e evitar o armazenamento de dados confidenciais no sistema operacional e em discos de dados. Para obter mais informações, consulte Criar um pool com a criptografia de disco habilitada
  • A identidade gerenciada atribuída ao sistema na conta Batch está disponível nos nós de computação? N.º Atualmente, a identidade gerenciada atribuída ao sistema é usada apenas para acessar o Cofre da Chave do Azure para a chave gerenciada pelo cliente. Para usar uma identidade gerenciada atribuída pelo usuário em nós de computação, consulte Configurar identidades gerenciadas em pools de lotes.

Próximos passos