Správa certifikátů ve službě Azure Automation
Azure Automation bezpečně ukládá certifikáty pro přístup pomocí runbooků a konfigurací DSC pomocí rutiny Get-AzAutomationCertificate pro prostředky Azure Resource Manageru. Zabezpečené úložiště certifikátů umožňuje vytvářet runbooky a konfigurace DSC, které používají certifikáty k ověřování, nebo je přidávat do Azure nebo do prostředků třetích stran.
Poznámka:
Mezi zabezpečené prostředky ve službě Azure Automation patří přihlašovací údaje, certifikáty, připojení a šifrované proměnné. Tyto prostředky jsou šifrované a uložené ve službě Automation pomocí jedinečného klíče, který se vygeneruje pro každý účet Automation. Automation ukládá klíč ve službě Key Vault spravované systémem. Před uložením zabezpečeného prostředku služba Automation načte klíč ze služby Key Vault a pak ho použije k šifrování prostředku.
Rutiny PowerShellu pro přístup k certifikátům
Rutiny v následující tabulce vytvářejí a spravují certifikáty Automation pomocí PowerShellu. Dodávají se jako součást modulů Az.
Rutina | Popis |
---|---|
Get-AzAutomationCertificate | Načte informace o certifikátu, který se má použít v konfiguraci runbooku nebo DSC. Samotný certifikát můžete načíst pouze pomocí interní Get-AutomationCertificate rutiny. |
New-AzAutomationCertificate | Vytvoří nový certifikát ve službě Automation. |
Remove-AzAutomationCertificate | Odebere certifikát ze služby Automation. |
Set-AzAutomationCertificate | Nastaví vlastnosti existujícího certifikátu, včetně nahrání souboru certifikátu a nastavení hesla pro soubor .pfx . |
Rutinu Add-AzureCertificate můžete použít také k nahrání certifikátu služby pro zadanou cloudovou službu.
Interní rutiny pro přístup k certifikátům
Interní rutina v následující tabulce slouží k přístupu k certifikátům v runboocích. Tato rutina se dodává s globálním modulem Orchestrator.AssetManagement.Cmdlets
. Další informace najdete v tématu Interní rutiny.
Interní rutina | Popis |
---|---|
Get-AutomationCertificate |
Získá certifikát, který se použije v konfiguraci runbooku nebo DSC. Vrátí Objekt System.Security.Cryptography.X509Certificates.X509Certificate2. |
Poznámka:
Měli byste se vyhnout použití proměnných v Name
parametru v konfiguraci runbooku Get-AutomationCertificate
nebo DSC. Tyto proměnné můžou komplikovat zjišťování závislostí mezi runbooky nebo konfiguracemi DSC a proměnnými automatizace v době návrhu.
Funkce Pythonu pro přístup k certifikátům
Funkce v následující tabulce slouží k přístupu k certifikátům v runbooku Python 2 a 3. Runbooky Pythonu 3 jsou aktuálně ve verzi Preview.
Function | Popis |
---|---|
automationassets.get_automation_certificate |
Načte informace o prostředku certifikátu. |
Poznámka:
Pokud chcete získat přístup k funkcím assetu automationassets
, musíte modul importovat na začátku runbooku Pythonu.
Vytvoření nového certifikátu
Při vytváření nového certifikátu nahrajete do služby Automation soubor .cer nebo .pfx. Pokud certifikát označíte jako exportovatelný, můžete ho přenést z úložiště certifikátů služby Automation. Pokud se nedá exportovat, dá se použít jenom k podepisování v rámci runbooku nebo konfigurace DSC. Služba Automation vyžaduje, aby měl certifikát zprostředkovatele Microsoft Enhanced RSA a zprostředkovatele kryptografických služeb AES.
Vytvoření nového certifikátu pomocí Azure Portal
- V levém podokně účtu Automation vyberte v části Sdílené prostředky certifikáty.
- Na stránce Certifikáty vyberte Přidat certifikát.
- Do pole Název zadejte název certifikátu.
- Pokud chcete vyhledat soubor .cer nebo .pfx , v části Nahrát soubor certifikátu zvolte Vybrat soubor. Pokud vyberete soubor .pfx , zadejte heslo a určete, jestli se dá exportovat. Pokud k nahrání certifikátů používáte portál Azure Automation, může dojít k selhání u partnerských účtů (CSP). Jako alternativní řešení tohoto problému doporučujeme použít rutiny PowerShellu.
- Vyberte Vytvořit a uložte nový prostředek certifikátu.
Vytvoření nového certifikátu pomocí prostředí PowerShell
Následující příklad ukazuje, jak vytvořit nový certifikát služby Automation a označit ho jako exportovatelný. Tento příklad naimportuje existující soubor .pfx .
$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
Vytvoření nového certifikátu pomocí šablony Resource Manageru
Následující příklad ukazuje, jak nasadit certifikát do účtu Automation pomocí šablony Resource Manageru prostřednictvím PowerShellu:
$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
Získání certifikátu
K načtení certifikátu použijte interní Get-AutomationCertificate
rutinu. Rutinu Get-AzAutomationCertificate nemůžete použít, protože vrací informace o prostředku certifikátu, ale ne o samotném certifikátu.
Příklady textových runbooků
Následující příklad ukazuje, jak přidat certifikát do cloudové služby v runbooku. V této ukázce se heslo načte z šifrované automatizační proměnné.
$serviceName = 'MyCloudService'
$cert = Get-AutomationCertificate -Name 'MyCertificate'
$certPwd = Get-AzAutomationVariable -ResourceGroupName "ResourceGroup01" `
-AutomationAccountName "MyAutomationAccount" -Name 'MyCertPassword'
Add-AzureCertificate -ServiceName $serviceName -CertToDeploy $cert
Příklad grafického runbooku
Přidejte aktivitu pro interní Get-AutomationCertificate
rutinu do grafického runbooku tak, že kliknete pravým tlačítkem na certifikát v podokně Knihovna a vyberete Přidat na plátno.
Následující obrázek ukazuje příklad použití certifikátu v grafickém runbooku.
Další kroky
- Další informace o rutinách používaných pro přístup k certifikátům najdete v tématu Správa modulů ve službě Azure Automation.
- Obecné informace o runboocích najdete v tématu Spouštění runbooků ve službě Azure Automation.
- Podrobnosti o konfiguracích DSC najdete v přehledu služby Azure Automation State Configuration.