Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aviso
Os certificados de conta em lote, conforme detalhado neste artigo, foram preteridos. Para acessar com segurança o Cofre de Chaves do Azure, basta usar identidades gerenciadas do Pool com as permissões de acesso apropriadas configuradas para a identidade gerenciada atribuída pelo usuário para acessar seu Cofre de Chaves. Se precisar provisionar certificados em Batch nodes, utilize a extensão de VM do Azure Key Vault disponível em conjunto com a Identidade Gerida do pool para instalar e gerir certificados no seu Batch pool. Para obter mais informações sobre como implantar certificados do Cofre de Chaves do Azure com Identidade Gerenciada em pools de lotes, consulte Habilitar a rotação automática de certificados em um pool de lotes.
Neste artigo, você aprenderá a configurar nós em lote com certificados para acessar com segurança as credenciais armazenadas no Cofre de Chaves do Azure.
Para autenticar no Cofre de Chaves do Azure a partir de um nó do Batch, é necessário:
- Uma credencial Microsoft Entra
- Um certificado
- Uma conta em lote
- Um pool de Batch com pelo menos um nó
Obter um certificado
Se você ainda não tiver um certificado, use o cmdlet New-SelfSignedCertificate do PowerShell para criar um novo certificado autoassinado.
Criar um principal de serviço
O acesso ao Cofre de Chaves é concedido a um utilizador ou a um principal de serviço. Para aceder ao Cofre de Chaves programaticamente, use um principal de serviço com o certificado criado na etapa anterior. A entidade de serviço deve estar no mesmo locatário do Microsoft Entra que o Cofre da Chave.
$now = [System.DateTime]::Parse("2020-02-10")
# Set this to the expiration date of the certificate
$expirationDate = [System.DateTime]::Parse("2021-02-10")
# Point the script at the cer file you created $cerCertificateFilePath = 'c:\temp\batchcertificate.cer'
$cer = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cer.Import($cerCertificateFilePath)
# Load the certificate into memory
$credValue = [System.Convert]::ToBase64String($cer.GetRawCertData())
# Create a new AAD application that uses this certificate
$newADApplication = New-AzureRmADApplication -DisplayName "Batch Key Vault Access" -HomePage "https://batch.mydomain.com" -IdentifierUris "https://batch.mydomain.com" -certValue $credValue -StartDate $now -EndDate $expirationDate
# Create new AAD service principal that uses this application
$newAzureAdPrincipal = New-AzureRmADServicePrincipal -ApplicationId $newADApplication.ApplicationId
Os URLs do aplicativo não são importantes, pois estamos usando-os apenas para acesso ao Cofre da Chave.
Conceder direitos ao Cofre da Chave
A entidade de serviço criada na etapa anterior precisa de permissão para recuperar os segredos do Cofre da Chave. A permissão pode ser concedida por meio do portal do Azure ou com o comando PowerShell abaixo.
Set-AzureRmKeyVaultAccessPolicy -VaultName 'BatchVault' -ServicePrincipalName '"https://batch.mydomain.com' -PermissionsToSecrets 'Get'
Atribuir um certificado a uma conta do Azure Batch
Crie um pool de Batch e, em seguida, selecione a guia de certificados no pool e atribua o certificado por si criado. O certificado agora está em todos os nós Batch.
Em seguida, atribua o certificado à conta Batch. A atribuição do certificado à conta permite ao Batch atribuí-lo aos pools e depois aos nós. A maneira mais fácil de fazer isso é ir para sua conta de lote no portal, navegar até Certificados e selecionar Adicionar. Carregue o .pfx ficheiro que gerou anteriormente e forneça a palavra-passe. Uma vez concluído, o certificado é adicionado à lista e você pode verificar a impressão digital.
Agora, ao criar um pool de lotes, você pode navegar até Certificados dentro do pool e atribuir o certificado criado a esse pool. Ao fazer isso, certifique-se de selecionar LocalMachine para o local da loja. O certificado é carregado em todos os nós de lote no pool.
Instalar o Azure PowerShell
Se você planeja acessar o Cofre da Chave usando scripts do PowerShell em seus nós, precisará da biblioteca do Azure PowerShell instalada. Se os nós tiverem o Windows Management Framework (WMF) 5 instalado, você poderá usar o comando install-module para baixá-lo. Caso esteja a utilizar nós que não tenham o WMF 5, a maneira mais fácil de instalá-lo é agrupar o ficheiro do Azure PowerShell .msi com os seus ficheiros batch e, em seguida, chamar o instalador como primeiro passo no script de arranque em batch. Veja este exemplo para obter detalhes:
$psModuleCheck=Get-Module -ListAvailable -Name Azure -Refresh
if($psModuleCheck.count -eq 0) {
$psInstallerPath = Join-Path $downloadPath "azure-powershell.3.4.0.msi" Start-Process msiexec.exe -ArgumentList /i, $psInstallerPath, /quiet -wait
}
Aceder ao Key Vault
Agora você está pronto para acessar o Cofre da Chave em scripts executados nos nós do Batch. Para aceder ao Azure Key Vault a partir de um script, só precisas que o script seja autenticado com o Microsoft Entra ID usando o certificado. Para fazer isso no PowerShell, use os seguintes comandos de exemplo. Especifique o GUID apropriado para Hash, ID da aplicação (a ID da entidade de serviço) e ID do locatário (o locatário onde a entidade de serviço existe).
Add-AzureRmAccount -ServicePrincipal -CertificateThumbprint -ApplicationId
Uma vez autenticado, acesse o KeyVault como faria normalmente.
$adminPassword=Get-AzureKeyVaultSecret -VaultName BatchVault -Name batchAdminPass
Estas são as credenciais a serem usadas em seu script.
Próximos passos
- Saiba mais sobre o Azure Key Vault.
- Analise a Linha de Base de Segurança do Azure para Batch.
- Saiba mais sobre os recursos do Batch, como configurar o acesso a nós de computação, usar nós de computação Linux e utilizar pontos de extremidade privados.