Hantera certifikat i Azure Automation
Azure Automation lagrar certifikat på ett säkert sätt för åtkomst via runbooks och DSC-konfigurationer med hjälp av cmdleten Get-AzAutomationCertificate för Azure Resource Manager-resurser. Med säker certifikatlagring kan du skapa runbooks och DSC-konfigurationer som använder certifikat för autentisering eller lägga till dem i Azure- eller tredjepartsresurser.
Kommentar
Säkra tillgångar i Azure Automation omfattar autentiseringsuppgifter, certifikat, anslutningar och krypterade variabler. Dessa tillgångar krypteras och lagras i Automation med hjälp av en unik nyckel som genereras för varje Automation-konto. Automation lagrar nyckeln i den systemhanterade Key Vault-tjänsten. Innan du lagrar en säker tillgång läser Automation in nyckeln från Key Vault och använder den sedan för att kryptera tillgången.
PowerShell-cmdletar för åtkomst till certifikat
Cmdletarna i följande tabell skapar och hanterar Automation-certifikat med PowerShell. De levereras som en del av Az-modulerna.
Cmdlet | beskrivning |
---|---|
Get-AzAutomationCertificate | Hämtar information om ett certifikat som ska användas i en runbook- eller DSC-konfiguration. Du kan bara hämta själva certifikatet med hjälp av den interna Get-AutomationCertificate cmdleten. |
New-AzAutomationCertificate | Skapar ett nytt certifikat i Automation. |
Remove-AzAutomationCertificate | Tar bort ett certifikat från Automation. |
Set-AzAutomationCertificate | Anger egenskaperna för ett befintligt certifikat, inklusive att ladda upp certifikatfilen och ange lösenordet för en PFX-fil . |
Cmdleten Add-AzureCertificate kan också användas för att ladda upp ett tjänstcertifikat för den angivna molntjänsten.
Interna cmdletar för åtkomst till certifikat
Den interna cmdleten i följande tabell används för att komma åt certifikat i dina runbooks. Den här cmdleten levereras med den globala modulen Orchestrator.AssetManagement.Cmdlets
. Mer information finns i Interna cmdletar.
Intern cmdlet | beskrivning |
---|---|
Get-AutomationCertificate |
Hämtar ett certifikat som ska användas i en runbook- eller DSC-konfiguration. Returnerar ett System.Security.Cryptography.X509Certificates.X509Certificate2-objekt . |
Kommentar
Du bör undvika att använda variabler i parametern Name
Get-AutomationCertificate
i i en runbook- eller DSC-konfiguration. Sådana variabler kan komplicera identifieringen av beroenden mellan runbooks eller DSC-konfigurationer och Automation-variabler vid designtillfället.
Python-funktioner för åtkomst till certifikat
Använd funktionen i följande tabell för att komma åt certifikat i en Python 2- och 3-runbook. Python 3-runbooks är för närvarande i förhandsversion.
Function | beskrivning |
---|---|
automationassets.get_automation_certificate |
Hämtar information om en certifikattillgång. |
Kommentar
Du måste importera modulen automationassets
i början av Python-runbooken för att få åtkomst till tillgångsfunktionerna.
Skapa ett nytt certifikat
När du skapar ett nytt certifikat laddar du upp en .cer- eller .pfx-fil till Automation. Om du markerar certifikatet som exportbart kan du överföra det från Automation-certifikatarkivet. Om den inte kan exporteras kan den bara användas för signering i runbook- eller DSC-konfigurationen. Automation kräver att certifikatet har providern Microsoft Enhanced RSA och AES Cryptographic Provider.
Skapa ett nytt certifikat med Azure Portal
- Välj Certifikat under Delad resurs i det vänstra fönstret i automationskontot.
- På sidan Certifikat väljer du Lägg till ett certifikat.
- I fältet Namn skriver du ett namn för certifikatet.
- Om du vill bläddra efter en .cer - eller .pfx-fil går du till Ladda upp en certifikatfil och väljer Välj en fil. Om du väljer en .pfx-fil anger du ett lösenord och anger om det kan exporteras. Om du använder Azure Automation portalen för att ladda upp certifikat kan det misslyckas för partnerkonton (CSP). Vi rekommenderar att du använder PowerShell-cmdletar som en lösning för att lösa problemet.
- Välj Skapa för att spara den nya certifikattillgången.
Skapa ett nytt certifikat med PowerShell
I följande exempel visas hur du skapar ett nytt Automation-certifikat och markerar det som exportbart. Det här exemplet importerar en befintlig .pfx-fil .
$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
Skapa ett nytt certifikat med en Resource Manager-mall
I följande exempel visas hur du distribuerar ett certifikat till ditt Automation-konto med hjälp av en Resource Manager-mall 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
Hämta ett certifikat
Om du vill hämta ett certifikat använder du den interna Get-AutomationCertificate
cmdleten. Du kan inte använda cmdleten Get-AzAutomationCertificate eftersom den returnerar information om certifikattillgången, men inte själva certifikatet.
Exempel på text runbook
I följande exempel visas hur du lägger till ett certifikat i en molntjänst i en runbook. I det här exemplet hämtas lösenordet från en krypterad automatiseringsvariabel.
$serviceName = 'MyCloudService'
$cert = Get-AutomationCertificate -Name 'MyCertificate'
$certPwd = Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name 'MyCertPassword'
Add-AzureCertificate -ServiceName $serviceName -CertToDeploy $cert
Exempel på grafisk runbook
Lägg till en aktivitet för den interna Get-AutomationCertificate
cmdleten i en grafisk runbook genom att högerklicka på certifikatet i fönstret Bibliotek och välja Lägg till på arbetsytan.
Följande bild visar ett exempel på hur du använder ett certifikat i en grafisk runbook.
Nästa steg
- Mer information om de cmdletar som används för att komma åt certifikat finns i Hantera moduler i Azure Automation.
- Allmän information om runbooks finns i Runbook-körning i Azure Automation.
- Mer information om DSC-konfigurationer finns i Översikt över Azure Automation State Configuration.