Certificaten beheren in Azure Automation

Azure Automation slaat certificaten veilig op voor toegang door runbooks en DSC-configuraties met behulp van de cmdlet Get-AzAutomationCertificate voor Azure Resource Manager-resources. Met beveiligde certificaatopslag kunt u runbooks en DSC-configuraties maken die gebruikmaken van certificaten voor verificatie, of deze toevoegen aan Azure-resources of resources van derden.

Notitie

Beveilig assets in Azure Automation zoals referenties, certificaten, verbindingen en versleutelde variabelen. Deze assets worden versleuteld en opgeslagen in Automation met behulp van een unieke sleutel die wordt gegenereerd voor elk Automation-account. Automation slaat de sleutel op in de door het systeem beheerde Key Vault-service. Voordat u een beveiligde asset opslaat, laadt Automation de sleutel uit Key Vault en gebruikt deze vervolgens om de asset te versleutelen.

PowerShell-cmdlets voor toegang tot certificaten

De cmdlets in de volgende tabel maken en beheren Automation-certificaten met PowerShell. Ze worden verzonden als onderdeel van de Az-modules.

Cmdlet Omschrijving
Get-AzAutomationCertificate Hiermee wordt informatie opgehaald over een certificaat dat moet worden gebruikt in een runbook- of DSC-configuratie. U kunt het certificaat zelf alleen ophalen met behulp van de interne Get-AutomationCertificate cmdlet.
New-AzAutomationCertificate Hiermee maakt u een nieuw certificaat in Automation.
Remove-AzAutomationCertificate Hiermee verwijdert u een certificaat uit Automation.
Set-AzAutomationCertificate Hiermee stelt u de eigenschappen voor een bestaand certificaat in, inclusief het uploaden van het certificaatbestand en het instellen van het wachtwoord voor een PFX-bestand .

De cmdlet Add-AzureCertificate kan ook worden gebruikt om een servicecertificaat voor de opgegeven cloudservice te uploaden.

Interne cmdlets voor toegang tot certificaten

De interne cmdlet in de volgende tabel wordt gebruikt voor toegang tot certificaten in uw runbooks. Deze cmdlet wordt geleverd met de globale module Orchestrator.AssetManagement.Cmdlets. Zie Interne cmdlets voor meer informatie.

Interne cmdlet Omschrijving
Get-AutomationCertificate Hiermee haalt u een certificaat op dat moet worden gebruikt in een runbook- of DSC-configuratie. Hiermee wordt een System.Security.Cryptography.X509Certificates.X509Certificate2-object geretourneerd.

Notitie

Vermijd het gebruik van variabelen in de Name parameter van Get-AutomationCertificate een runbook of DSC-configuratie. Dergelijke variabelen kunnen het detecteren van afhankelijkheden tussen runbooks of DSC-configuraties en Automation-variabelen tijdens het ontwerp bemoeilijken.

Python-functies voor toegang tot certificaten

Gebruik de functie in de volgende tabel voor toegang tot certificaten in een Python 2- en 3-runbook. Python 3-runbooks zijn momenteel in preview.

Functie Omschrijving
automationassets.get_automation_certificate Haalt informatie over een certificaatasset op.

Notitie

U moet de automationassets module aan het begin van uw Python-runbook importeren om toegang te krijgen tot de assetfuncties.

Een nieuw certificaat maken

Wanneer u een nieuw certificaat maakt, uploadt u een CER- of PFX-bestand naar Automation. Als u het certificaat markeert als exporteerbaar, kunt u het overdragen uit het Automation-certificaatarchief. Als het niet exporteerbaar is, kan het alleen worden gebruikt voor ondertekening binnen de runbook- of DSC-configuratie. Automation vereist dat het certificaat de provider Microsoft Enhanced RSA en AES Cryptographic Provider heeft.

Een nieuw certificaat maken met de Azure Portal

  1. Selecteer certificaten onder Gedeelde resource in het linkerdeelvenster van uw Automation-account.
  2. Selecteer Een certificaat toevoegen op de pagina Certificaten.
  3. Typ in het veld Naam een naam voor het certificaat.
  4. Als u wilt bladeren naar een CER- of PFX-bestand, kiest u onder Een certificaatbestand uploaden een bestand selecteren. Als u een PFX-bestand selecteert, geeft u een wachtwoord op en geeft u aan of het bestand kan worden geƫxporteerd. Als u Azure Automation-portal gebruikt om certificaten te uploaden, kan dit mislukken voor partneraccounts (CSP). U wordt aangeraden PowerShell-cmdlets als tijdelijke oplossing te gebruiken om dit probleem op te lossen.
  5. Selecteer Maken om de nieuwe certificaatasset op te slaan.

Een nieuw certificaat maken met PowerShell

In het volgende voorbeeld ziet u hoe u een nieuw Automation-certificaat maakt en markeert dat het exporteerbaar is. In dit voorbeeld wordt een bestaand PFX-bestand geĆÆmporteerd.

$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

Een nieuw certificaat maken met een Resource Manager-sjabloon

In het volgende voorbeeld ziet u hoe u een certificaat implementeert in uw Automation-account met behulp van een Resource Manager-sjabloon via 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

Een certificaat ophalen

Als u een certificaat wilt ophalen, gebruikt u de interne Get-AutomationCertificate cmdlet. U kunt de cmdlet Get-AzAutomationCertificate niet gebruiken, omdat deze informatie retourneert over de certificaatasset, maar niet het certificaat zelf.

Voorbeelden van tekstrunbooks

In het volgende voorbeeld ziet u hoe u een certificaat toevoegt aan een cloudservice in een runbook. In dit voorbeeld wordt het wachtwoord opgehaald uit een versleutelde automatiseringsvariabele.

$serviceName = 'MyCloudService'
$cert = Get-AutomationCertificate -Name 'MyCertificate'
$certPwd = Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name 'MyCertPassword'
Add-AzureCertificate -ServiceName $serviceName -CertToDeploy $cert

Voorbeeld van grafisch runbook

Voeg een activiteit voor de interne Get-AutomationCertificate cmdlet toe aan een grafisch runbook door met de rechtermuisknop op het certificaat in het deelvenster Bibliotheek te klikken en Toevoegen aan canvas te selecteren.

Screenshot of adding a certificate to the canvas

In de volgende afbeelding ziet u een voorbeeld van het gebruik van een certificaat in een grafisch runbook.

Screenshot of an example of graphical authoring

Volgende stappen