Verwalten von Zertifikaten in Azure Automation

Zertifikate werden in Azure Automation sicher gespeichert, sodass Runbooks oder DSC-Konfigurationen über das Cmdlet Get-AzAutomationCertificate für Azure Resource Manager-Ressourcen darauf zugreifen können. Die sichere Speicherung der Zertifikate ermöglicht es Ihnen, Runbooks und DSC-Konfigurationen zu erstellen, die Zertifikate für die Authentifizierung verwenden, oder diese zu Azure- oder Drittanbieterressourcen hinzuzufügen.

Hinweis

Zu den sicheren Objekten in Azure Automation gehören Anmeldeinformationen, Zertifikate, Verbindungen und verschlüsselte Variablen. Diese Objekte werden mithilfe eines eindeutigen Schlüssels, der für jedes Automation-Konto generiert wird, verschlüsselt und in Automation gespeichert. Automation speichert den Schlüssel in dem vom System verwalteten Key Vault-Dienst. Vor dem Speichern eines sicheren Objekts lädt Automation den Schlüssel aus Key Vault und verwendet ihn dann zum Verschlüsseln des Objekts.

PowerShell-Cmdlets für den Zugriff auf Zertifikate

Über die Cmdlets in der folgenden Tabelle können Sie Zertifikate für Automation mit PowerShell erstellen und verwalten. Diese sind im Lieferumfang der Az-Module enthalten.

Cmdlet BESCHREIBUNG
Get-AzAutomationCertificate Ruft Informationen über ein Zertifikat zur Verwendung in einem Runbook oder einer DSC-Konfiguration ab. Das Zertifikat selbst können Sie nur über das interne Cmdlet Get-AutomationCertificate abrufen.
New-AzAutomationCertificate Erstellt ein neues Zertifikat in Automation.
Remove-AzAutomationCertificate Entfernt ein Zertifikat aus Automation.
Set-AzAutomationCertificate Legt die Eigenschaften für ein vorhandenes Zertifikat fest, lädt die Zertifikatdatei hoch und legt das Kennwort für eine PFX-Datei fest.

Das Cmdlet Add-AzureCertificate kann auch verwendet werden, um ein Dienstzertifikat für den angegebenen Clouddienst hochzuladen.

Interne Cmdlets für den Zugriff auf Zertifikate

Das interne Cmdlet in der folgenden Tabelle wird für den Zugriff auf Zertifikate in Ihren Runbooks verwendet. Dieses Cmdlet ist im globalen Modul Orchestrator.AssetManagement.Cmdlets enthalten. Weitere Informationen finden Sie unter Interne Cmdlets.

Internes Cmdlet BESCHREIBUNG
Get-AutomationCertificate Ruft ein Zertifikat zur Verwendung in einem Runbook oder einer DSC-Konfiguration ab. Gibt ein System.Security.Cryptography.X509Certificates.X509Certificate2-Objekt zurück.

Hinweis

Vermeiden Sie die Verwendung von Variablen im Name-Parameter von Get-AutomationCertificate in einem Runbook oder einer DSC-Konfiguration. Solche Variablen können die Ermittlung von Abhängigkeiten zwischen Runbooks oder DSC-Konfigurationen und Automation-Variablen zur Entwurfszeit erschweren.

Python-Funktionen für den Zugriff auf Zertifikate

Verwenden Sie die Funktion in der folgenden Tabelle für den Zugriff auf Zertifikate in einem Python 2- und Python 3-Runbook. Python 3-Runbooks sind derzeit als Vorschau verfügbar.

Funktion BESCHREIBUNG
automationassets.get_automation_certificate Ruft Informationen zu einem Zertifikatasset ab.

Hinweis

Sie müssen das Modul automationassets am Anfang Ihres Python-Runbooks importieren, um auf die Assetfunktionen zugreifen zu können.

Erstellen eines neuen Zertifikats

Wenn Sie ein neues Zertifikat erstellen, laden Sie eine CER- oder PFX-Datei in Automation hoch. Wenn Sie das Zertifikat als exportierbar kennzeichnen, können Sie es aus dem Automation-Zertifikatspeicher übertragen. Ist das Zertifikat nicht exportierbar, können Sie es nur zum Signieren innerhalb des Runbooks oder der DSC-Konfiguration verwenden. Für Automation muss der Zertifikatanbieter Microsoft Enhanced RSA and AES Cryptographic Provider lauten.

Erstellen eines neuen Zertifikats im Azure-Portal

  1. Wählen Sie in Ihrem Automation-Konto im linken Bereich Zertifikate unter Freigegebene Ressourcen aus.
  2. Wählen Sie auf der Seite Zertifikate die Option Zertifikat hinzufügen aus.
  3. Geben Sie im Feld Name einen Namen für das Zertifikat ein.
  4. Um nach einer CER- oder PFX-Datei zu suchen, wählen Sie unter Zertifikatdatei hochladen die Option Datei auswählen aus. Wenn Sie eine PFX-Datei auswählen, geben Sie ein Kennwort an und legen fest, ob das Zertifikat exportiert werden kann.
  5. Wählen Sie Erstellen aus, um das neue Zertifikatobjekt zu speichern.

Erstellen eines neuen Zertifikats mit PowerShell

Das folgende Beispiel zeigt, wie Sie ein neues Automation-Zertifikat erstellen und es als exportierbar kennzeichnen. Dieses Beispiel importiert eine vorhandene PFX-Datei.

$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

Erstellen eines neuen Zertifikats mit einer Resource Manager-Vorlage

Das folgende Beispiel veranschaulicht, wie Sie in PowerShell mithilfe einer Resource Manager-Vorlage ein Zertifikat in Ihrem Automation-Konto bereitstellen:

$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

Abrufen eines Zertifikats

Verwenden Sie das interne Cmdlet Get-AutomationCertificate, um ein Zertifikat abzurufen. Sie können das Cmdlet Get-AzAutomationCertificate nicht verwenden, da dieses Cmdlet Informationen zum Zertifikatobjekt zurückgibt, aber nicht das Zertifikat selbst.

Beispiele für Textrunbooks

Das folgende Beispiel zeigt, wie Sie ein Zertifikat zu einem Clouddienst in einem Runbook hinzufügen. In diesem Beispiel wird das Kennwort aus einer verschlüsselten Automation-Variable abgerufen.

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

Beispiel für ein grafisches Runbook

Fügen Sie einem grafischen Runbook eine Aktivität für das interne Cmdlet Get-AutomationCertificate hinzu, indem Sie im Bibliotheksbereich mit der rechten Maustaste auf das Zertifikat klicken und anschließend Get-AutomationCertificate auswählen.

Screenshot of adding a certificate to the canvas

Die folgende Abbildung zeigt ein Beispiel für die Verwendung eines Zertifikats in einem grafischen Runbook.

Screenshot of an example of graphical authoring

Nächste Schritte