Configurar as chaves gerenciadoras pelo cliente da sua conta do Lote do Azure com o Azure Key Vault e a identidade gerenciada
Por padrão, o Lote do Microsoft Azure usa as chaves de criptografia gerenciadas pela plataforma todos os dados armazenados do cliente no Serviço em Lote do Microsoft Azure, como certificados, metadados do trabalho/tarefa. Opcionalmente, use suas próprias chaves, ou seja, as chaves gerenciadas pelo cliente, para criptografar os dados armazenados no Lote do Azure.
As chaves que você fornecer devem ser geradas noAzure Key Vaulte devem ser acessadas com asidentidades gerenciadas para recursos do Azure.
Há dois tipos de identidades gerenciadas:atribuídos pelo sistema e atribuída pelo usuário.
É possível criar sua conta do Lote com a identidade gerenciada atribuída pelo sistema ou criar uma identidade gerenciada atribuída pelo usuário separada que tenha acesso às chaves gerenciadas pelo cliente. Revise atabela de comparaçãopara o reconhecimento das diferenças e considerar qual opção funciona melhor para a solução. Por exemplo, caso queira usar a mesma identidade gerenciada para acessar vários recursos no Azure, é necessária uma identidade gerenciada atribuída pelo usuário. Caso contrário, uma identidade gerenciada atribuída pelo sistema associada à sua conta do Lote pode ser suficiente. O uso de uma identidade gerenciada atribuída pelo usuário também oferece a opção de aplicar as chaves gerenciadas pelo cliente na criação da conta do Lote, conforme mostrado a seguir.
Criar uma conta do Lote com a 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 do Lote.
Importante
Uma identidade gerenciada atribuída pelo sistema criada para uma conta do 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 do Lote. Se você quiser usar a mesma identidade gerenciada na conta do Lote e no pool do Lote, use uma identidade gerenciada comum atribuída pelo usuário.
Portal do Azure
Noportal do Microsoft Azure, ao criar as contas do Lote, escolhaAtribuído ao sistemano tipo de identidade na guiaAvançado.
Assim que a conta for criada, você pode encontrar um GUID exclusivo no campoID da Entidade de Segurançana seçãoPropriedades. OTipo de identidadeserá exibidoSystem assigned
.
Esse valor é necessário para conceder à conta do Lote o acesso ao Key Vault.
CLI do Azure
Ao criar uma nova conta em Lote, especifiqueSystemAssigned
para o--identity
parâmetro.
resourceGroupName='myResourceGroup'
accountName='mybatchaccount'
az batch account create \
--name $accountName \
--resource-group $resourceGroupName \
--locations regionName='West US 2' \
--identity 'SystemAssigned'
Assim que a conta for criada, você poderá verificar se a identidade gerenciada atribuída ao sistema foi habilitada nesta conta. Tenha certeza de anotar o PrincipalId
, pois esse valor é necessário para conceder à conta do Lote o acesso ao Key Vault.
az batch account show \
--name $accountName \
--resource-group $resourceGroupName \
--query identity
Observação
A identidade gerenciada atribuída ao sistema criada em uma conta do Lote é usada somente para recuperar as chaves gerenciadas pelo cliente do Azure Key Vault. Esta identidade não está disponível em pools do Lote. Para usar uma identidade gerenciada atribuída ao usuário em um pool, consulteConfigurar identidades gerenciadas em pools do Lote.
Criar uma identidade gerenciada atribuída ao usuário
Se preferir, é possível criar uma identidade gerenciada atribuída pelo usuário que pode ser usada para acessar as chaves gerenciadas pelo cliente.
É necessário o valor da ID do cliente desta identidade para acessar o Azure Key Vault.
Configurar sua instância do Azure Key Vault
O Azure Key Vault no qual suas chaves são geradas deve ser criado no mesmo locatário que a sua conta do Lote. Ele não precisa estar no mesmo grupo de recursos nem sequer na mesma assinatura.
Criar um Cofre de chaves do Azure
Aocriar uma instância do Azure Key Vaultcom as chaves gerenciadas pelo cliente para o Lote do Azure, verifique se aexclusão reversívele aproteção de limpezaambas estão habilitadas.
Adicionar uma política de acesso à sua instância do Azure Key Vault
No portal do Azure, assim que o Azure Key Vault for criado, naPolítica de AcessoemConfiiração,adicione o acesso à conta do Lote usando a identidade gerenciada. EmPermissões da Chave,selecione “Obter” , “Encapsular Chave” e “Desencapsular chave” .
No campoSelecionar,emPrincipal, preencha um dos seguintes:
- Para a identidade gerenciada atribuída ao sistema: Insira o
principalId
que você recuperou anteriormente ou o nome da conta do Lote. - Para a identidade gerenciada atribuída ao usuário: Insira aID do clienteque você recuperou anteriormente ou o nome da identidade gerenciada atribuída pelo usuário.
Gerar uma chave no Azure Key Vault
No portal do Microsoft Azure,vá para a instância do Azure Key Vault na seçãoChave,selecioneGerar/Importar. Selecione oTipo de chavea serRSA
o Tamanho daChave RSA e para que sejam pelo menos2048
bits. EC
Atualmente, não há suporte para os tipos de chave como uma chave gerenciada pelo cliente em uma conta do Lote.
Depois que a chave for criada, clique na chave recém-criada e na versão atual, copie oIdentificador de Chavena seção Propriedades. Confira se em Operações permitidas,encapsular chave e desencapsular chave estejam marcados.
Habilitar as chaves gerenciadas pelo cliente em uma conta do Lote
Agora que os pré-requisitos estão em vigor, habilite as chaves gerenciadas pelo cliente em sua conta do Lote.
Portal do Azure
NoPortal do Azure,vá para a página da conta do Lote. Na seçãoCriptografia, habilite achave gerenciada pelo cliente. Você pode usar o Identificador de Chave diretamente ou pode selecionar o cofre de chaves e, em seguida, clicar em Selecionar um cofre de chaves e uma chave.
CLI do Azure
Depois que a conta do Lote for criada com a identidade gerenciada atribuída ao sistema e o acesso ao Azure Key Vault for concedido, atualize a conta do Lote com a{Key Identifier}
URL em keyVaultProperties
parâmetro. Além disso, defina --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 do Lote com a identidade gerenciada atribuída ao usuário e as chaves gerenciadas pelo cliente
Como exemplo, usando o cliente .NET de gerenciamento de lote, é possível criar uma conta do Lote que tenha uma identidade gerenciada atribuída pelo usuário e as 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;
Atualização da versão da chave gerenciada pelo cliente
Ao criar uma versão de uma chave, atualize a conta do Lote para usar a nova versão. Siga estas etapas:
- Navegue até sua conta do Lote no portal do Microsoft Azure e exiba as configurações de criptografia.
- Insira o URI da nova versão da chave. Como alternativa, você pode selecionar o Azure Key Vault e a chave novamente para atualizar a versão.
- Salve suas alterações.
Você também poderá usar o CLI do Azure para atualizar a versão.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-identifier {YourKeyIdentifierWithNewVersion}
Dica
É possível fazer com que suas chaves girem automaticamente criando uma política de rotação de chaves dentro de Key Vault. Ao especificar um identificador de chave para a conta do Lote, use o identificador de chave sem versão para habilitar o giro automático com uma política de rotação válida. Para saber mais, confira Como configurar a rotação de chaves no Key Vault.
Usar uma chave diferente da criptografia em Lote
Para alterar a chave usada para a criptografia em Lote, siga estas etapas:
- Navegue até sua conta do Lote e exiba as configurações de Criptografia.
- Insira o URI da nova chave. Como alternativa, você pode selecionar o Azure Key Vault e escolher uma nova chave.
- Salve suas alterações.
Você também pode usar o CLI do Azure para usar uma chave diferente.
az batch account set \
--name $accountName \
--resource-group $resourceGroupName \
--encryption-key-identifier {YourNewKeyIdentifier}
Perguntas frequentes
- As chaves gerenciadas pelo cliente têm suporte para as contas do Lote existentes? Não. As chaves gerenciadas pelo cliente só têm suporte para novas contas do Lote.
- Posso selecionar os tamanhos das chaves RSA com mais de 2048 bits? Sim,
3072
também há suporte para os tamanhos das chaves RSA e4096
bits. - Quais operações estão disponíveis depois que uma chave gerenciada pelo cliente é revogada? A única operação permitida será a exclusão da conta se o Lote do Azure perder o acesso à chave gerenciada pelo cliente.
- Como devo restaurar o acesso à minha conta do Lote se eu excluir acidentalmente a chave do Azure Key Vault? Já que a proteção de limpeza e a exclusão reversível estão habilitadas, você pode restaurar as chaves existentes. Para obter mais informações, consulteRecuperar o Azure Key Vault.
- Posso desabilitar as chaves gerenciadas pelo cliente? Você pode definir o tipo de criptografia da conta do Lote de volta à "chave gerenciada da Microsoft" a qualquer momento. Você estará livre para excluir ou alterar a chave posteriormente.
- Como posso girar as chaves? As chaves gerenciadas pelo cliente não são giradas automaticamente, a menos que a chave seja sem versão com uma política de rotação de chave apropriada definida dentro de Key Vault. Para girar a chave manualmente, atualize o identificador da chave ao qual a conta está associada.
- Depois de restaurar o acesso, quanto tempo levará para que a conta do Lote funcione novamente? Pode levar até 10 minutos para que a conta fique acessível novamente assim que o acesso for restaurado.
- Enquanto a conta do Lote não está disponível, o que acontece com meus recursos? Todos os pools que estejam em execução quando o acesso ao Lote para a chave gerenciada pelo cliente for perdido continuarão em execução. 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 colocadas novamente na fila). Logo que o acesso for restaurado, os nós ficam disponíveis novamente e as tarefas são reiniciadas.
- Este mecanismo de criptografia aplica-se a discos de VM em um pool do Lote? Não. Para os pools de Configuração de Serviços de Nuvem (preteridos), nenhuma criptografia é aplicada ao sistema operacional e ao disco temporário. Para os pools de Configuração da Máquina Virtual, o sistema operacional e todos os discos de dados especificados são, por padrão, criptografados com uma chave gerenciada da plataforma Microsoft. No momento, não é possível especificar sua própria chave para estes discos. Para criptografar o disco temporário das VMs para um pool do Lote com uma chave gerenciada pea plataforma Microsoft, você deve habilitar a propriedadediskEncryptionConfigurationem seu pool deConfiguração de Máquina Virtual. Para ambientes altamente confidenciais, nós recomendamos habilitar a criptografia de disco temporária e evitar o armazenamento de dados confidenciais no sistema operacional e nos discos de dados. Para obter mais informações, consulteCriar um pool com criptografia de disco habilitada
- A identidade gerenciada atribuída ao sistema na conta do Lote está disponível nos nós de computação? Não. A identidade gerenciada atribuída ao sistema é atualmente usada somente para acessar o Azure Key Vault para a chave gerenciada pelo cliente. Para usar uma identidade gerenciada atribuída ao usuário nos nós de computação, consulteConfigurar identidades gerenciadas em pools do Lote.
Próximas etapas
- Saiba mais sobreas melhores práticas de segurança no Lote do Azure.
- Saiba mais sobre o Azure Key Vault.