Gerir certificados na Automatização do Azure
A Automação do Azure armazena certificados com segurança para acesso por runbooks e configurações DSC, usando o cmdlet Get-AzAutomationCertificate para recursos do Azure Resource Manager. O armazenamento seguro de certificados permite-lhe criar runbooks e configurações de DSC que utilizam certificados para autenticação ou adicioná-los a recursos do Azure ou de terceiros.
Nota
Os recursos protegidos na Automatização do Azure incluem credenciais, certificados, ligações e variáveis encriptadas. Esses ativos são criptografados e armazenados na Automação usando uma chave exclusiva que é gerada para cada conta de Automação. A automação armazena a chave no serviço Key Vault gerenciado pelo sistema. Antes de armazenar um ativo seguro, a Automação carrega a chave do Cofre da Chave e a usa para criptografar o ativo.
Cmdlets do PowerShell para acessar certificados
Os cmdlets na tabela a seguir criam e gerenciam certificados de automação com o PowerShell. Eles são enviados como parte dos módulos Az.
Cmdlet | Description |
---|---|
Get-AzAutomationCertificate | Recupera informações sobre um certificado para usar em um runbook ou configuração DSC. Você só pode recuperar o próprio certificado usando o cmdlet interno Get-AutomationCertificate . |
New-AzAutomationCertificate | Cria um novo certificado em Automação. |
Remove-AzAutomationCertificate | Remove um certificado da automação. |
Set-AzAutomationCertificate | Define as propriedades de um certificado existente, incluindo carregar o arquivo de certificado e definir a senha para um arquivo .pfx . |
O cmdlet Add-AzureCertificate também pode ser usado para carregar um certificado de serviço para o serviço de nuvem especificado.
Cmdlets internos para acessar certificados
O cmdlet interno na tabela a seguir é usado para acessar certificados em seus runbooks. Este cmdlet vem com o módulo Orchestrator.AssetManagement.Cmdlets
global . Para obter mais informações, consulte Cmdlets internos.
Cmdlet interno | Description |
---|---|
Get-AutomationCertificate |
Obtém um certificado para usar em um runbook ou configuração DSC. Retorna um objeto System.Security.Cryptography.X509Certificates.X509Certificate2 . |
Nota
Você deve evitar o Name
uso de variáveis no parâmetro de em uma configuração de Get-AutomationCertificate
runbook ou DSC. Essas variáveis podem complicar a descoberta de dependências entre runbooks ou configurações DSC e variáveis de automação em tempo de design.
Funções Python para acessar certificados
Use a função na tabela a seguir para acessar certificados em um runbook Python 2 e 3. Os runbooks do Python 3 estão atualmente em visualização.
Function | Description |
---|---|
automationassets.get_automation_certificate |
Recupera informações sobre um ativo de certificado. |
Nota
Você deve importar o automationassets
módulo no início do seu runbook Python para acessar as funções do ativo.
Criar um novo certificado
Quando cria um novo certificado, carrega um ficheiro .cer ou .pfx para a Automatização. Se marcar o certificado como exportável, pode transferi-lo para fora do arquivo de certificados da Automatização. Se o certificado não for exportável, só pode ser utilizado para iniciar sessão no runbook ou na configuração de DSC. A Automatização requer que o certificado tenha o fornecedor Microsoft Enhanced RSA and AES Cryptographic Provider.
Criar um novo certificado com o portal do Azure
- Na sua conta de automação, no painel esquerdo, selecione Certificados em Recurso compartilhado.
- Na página Certificados, selecione Adicionar um certificado.
- No campo Nome, digite um nome para o certificado.
- Para procurar um arquivo .cer ou .pfx , em Carregar um arquivo de certificado, escolha Selecionar um arquivo. Se você selecionar um arquivo .pfx , especifique uma senha e indique se ele pode ser exportado. Se estiver a utilizar o portal da Automatização do Azure para carregar certificados, este poderá falhar para as contas de parceiros (CSP). Recomendamos que você use cmdlets do PowerShell como uma solução alternativa para superar esse problema.
- Selecione Criar para salvar o novo ativo de certificado.
Criar um novo certificado com o PowerShell
O exemplo seguinte demonstra como criar um novo certificado da Automatização e marcá-lo como exportável. Este exemplo importa um arquivo .pfx existente.
$certificateName = 'MyCertificate'
$PfxCertPath = '.\MyCert.pfx'
$CertificatePassword = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
$ResourceGroup = "ResourceGroup01"
New-AzAutomationCertificate -AutomationAccountName "MyAutomationAccount" -Name $certificateName -Path $PfxCertPath -Password $CertificatePassword -Exportable -ResourceGroupName $ResourceGroup
Criar um novo certificado com um modelo do Resource Manager
O exemplo a seguir demonstra como implantar um certificado em sua conta de automação usando um modelo do Resource Manager por meio do PowerShell:
$AutomationAccountName = "<automation account name>"
$PfxCertPath = '<PFX cert path and filename>'
$CertificatePassword = '<password>'
$certificateName = '<certificate name>' #A name of your choosing
$ResourceGroupName = '<resource group name>' #The one that holds your automation account
$flags = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable `
-bor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::PersistKeySet `
-bor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::MachineKeySet
# Load the certificate into memory
$PfxCert = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList @($PfxCertPath, $CertificatePassword, $flags)
# Export the certificate and convert into base 64 string
$Base64Value = [System.Convert]::ToBase64String($PfxCert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12))
$Thumbprint = $PfxCert.Thumbprint
$json = @"
{
'`$schema': 'https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#',
'contentVersion': '1.0.0.0',
'resources': [
{
'name': '$AutomationAccountName/$certificateName',
'type': 'Microsoft.Automation/automationAccounts/certificates',
'apiVersion': '2015-10-31',
'properties': {
'base64Value': '$Base64Value',
'thumbprint': '$Thumbprint',
'isExportable': true
}
}
]
}
"@
$json | out-file .\template.json
New-AzResourceGroupDeployment -Name NewCert -ResourceGroupName $ResourceGroupName -TemplateFile .\template.json
Obter um certificado
Para recuperar um certificado, use o cmdlet interno Get-AutomationCertificate
. Não é possível usar o cmdlet Get-AzAutomationCertificate , porque ele retorna informações sobre o ativo de certificado, mas não o certificado em si.
Exemplos de runbook textual
O exemplo a seguir mostra como adicionar um certificado a um serviço de nuvem em um runbook. Neste exemplo, a senha é recuperada de uma variável de automação criptografada.
$serviceName = 'MyCloudService'
$cert = Get-AutomationCertificate -Name 'MyCertificate'
$certPwd = Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name 'MyCertPassword'
Add-AzureCertificate -ServiceName $serviceName -CertToDeploy $cert
Exemplo de runbook gráfico
Adicione uma atividade para o cmdlet interno Get-AutomationCertificate
a um runbook gráfico clicando com o botão direito do mouse no certificado no painel Biblioteca e selecionando Adicionar à tela.
A imagem a seguir mostra um exemplo de uso de um certificado em um runbook gráfico.
Próximos passos
- Para saber mais sobre os cmdlets usados para acessar certificados, consulte Gerenciar módulos na Automação do Azure.
- Para obter informações gerais sobre runbooks, consulte Runbook execution in Azure Automation.
- Para obter detalhes das configurações de DSC, consulte Visão geral da Configuração do Estado de Automação do Azure.