Partilhar via


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 Descrição
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.Cmdletsglobal . Para obter mais informações, consulte Cmdlets internos.

Cmdlet interno Descrição
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 Descrição
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

  1. Na sua conta de automação, no painel esquerdo, selecione Certificados em Recurso compartilhado.
  2. Na página Certificados, selecione Adicionar um certificado.
  3. No campo Nome, digite um nome para o certificado.
  4. 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.
  5. 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 . Você não pode 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.

Screenshot of adding a certificate to the canvas

A imagem a seguir mostra um exemplo de uso de um certificado em um runbook gráfico.

Screenshot of an example of graphical authoring

Próximos passos