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 | Beschrijving |
---|---|
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 | Beschrijving |
---|---|
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 | Beschrijving |
---|---|
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
- Selecteer certificaten onder Gedeelde resource in het linkerdeelvenster van uw Automation-account.
- Selecteer Een certificaat toevoegen op de pagina Certificaten.
- Typ in het veld Naam een naam voor het certificaat.
- 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.
- 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.
In de volgende afbeelding ziet u een voorbeeld van het gebruik van een certificaat in een grafisch runbook.
Volgende stappen
- Zie Modules beheren in Azure Automation voor meer informatie over de cmdlets die worden gebruikt voor toegang tot certificaten.
- Zie Runbook-uitvoering in Azure Automation voor algemene informatie over runbooks.
- Zie het overzicht van Azure Automation State Configuration voor meer informatie over DSC-configuraties.