Gerenciar certificados na Automação do Azure
A Automação do Azure armazena certificados com segurança para acesso por runbooks e configurações de DSC. Ela faz isso usando o cmdlet Get-AzAutomationCertificate para recursos do Azure Resource Manager. O armazenamento de certificado seguro permite criar runbooks e configurações de DSC que usam certificados para autenticação ou adicioná-los a recursos do Azure ou de terceiros.
Observação
Os ativos protegidos na Automação do Azure incluem credenciais, certificados, conexões e variáveis criptografadas. Esses ativos são criptografados e armazenados na Automação usando uma chave exclusiva que é gerada para cada conta da Automação do Azure. A Automação armazena a chave no serviço do Key Vault gerenciado pelo sistema. Antes de armazenar um ativo seguro, a Automação do Azure carrega a chave do Key Vault e depois a usa para criptografar o ativo.
Cmdlets do PowerShell para acessar certificados
Os cmdlets na tabela a seguir são usados para criar e gerenciar certificados de Automação com o PowerShell. Eles são fornecidos como parte de módulos Az.
Cmdlet | Descrição |
---|---|
Get-AzAutomationCertificate | Obtém informações sobre um certificado a ser usado em um runbook ou configuração DSC. Só é possível recuperar o certificado em si usando o cmdlet Get-AutomationCertificate interno. |
New-AzAutomationCertificate | Cria um novo certificado na Automação. |
Remove-AzAutomationCertificate | Remove um certificado da Automação. |
Set-AzAutomationCertificate | Define as propriedades para um certificado existente, incluindo o carregamento do arquivo de certificado e a definição da 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. Esse cmdlet vem com o módulo globalOrchestrator.AssetManagement.Cmdlets
. Para obter mais informações, confira Cmdlets internos.
Cmdlet Interno | Descrição |
---|---|
Get-AutomationCertificate |
Obtém um certificado a ser usado em um runbook ou configuração DSC. Retorna um objeto System.Security.Cryptography.X509Certificates.X509Certificate2. |
Observação
Evite usar variáveis no parâmetro Name
de Get-AutomationCertificate
em um runbook ou configuração DSC. Tais variáveis podem complicar a descoberta de dependências entre runbooks ou configurações DSC e variáveis de Automação no tempo de design.
Funções do Python para acessar certificados
Use a função na tabela a seguir para acessar certificados em um runbook do Python 2 e 3. Atualmente, os runbooks do Python 3 estão em versão prévia.
Função | Descrição |
---|---|
automationassets.get_automation_certificate |
Recupera informações sobre um ativo de certificado. |
Observação
É necessário importar o módulo automationassets
, no começo do runbook do Python para acessar as funções do ativo.
Criar um novo certificado
Ao criar um novo certificado, você carrega um arquivo .cer ou .pfx na Automação. Se marcar certificado como exportável, você poderá transferi-lo do repositório de certificados da Automação. Se não for exportável, ele só poderá ser usado para a assinatura no runbook ou na configuração DSC. A Automação exige que o certificado tenha o provedor Microsoft Enhanced RSA e AES Cryptographic Provider.
Criar um novo certificado com o Portal do Azure
- Na sua conta de Automação do Azure, 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 ela pode ser exportada. Se você estiver usando o portal de Automação do Azure para carregar certificados, ele poderá falhar para contas do parceiro (CSP). Recomendamos que você use cmdlets do PowerShell como uma solução alternativa para resolver esse problema.
- Selecione Criar para salvar o novo ativo de certificado.
Criar um novo certificado com o PowerShell
O exemplo a seguir mostra como criar um novo Certificado de automação e marcá-lo como exportável. Esse 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 da Automação através do uso de 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 Get-AutomationCertificate
interno. Não é possível usar o cmdlet Get-AzureAutomationCertificate, porque ele retorna informações sobre o ativo de certificado, mas não sobre o próprio certificado.
Exemplos de runbook textual
O exemplo a seguir mostra como adicionar um certificado a um serviço de nuvem em um runbook. Nesse 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 do cmdlet Get-AutomationCertificate
interno a um runbook gráfico. Para isso, clique com o botão direito do mouse no certificado no painel Biblioteca e selecione Adicionar à tela.
A imagem a seguir mostra um exemplo do uso de um certificado em um runbook gráfico.
Próximas etapas
- 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 Execução de runbook na Automação do Azure.
- Para obter detalhes sobre as configurações de DSC, consulte visão geral do State Configuration da Automação do Azure.