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

  1. V levém podokně účtu Automation vyberte v části Sdílené prostředky certifikáty.
  2. Na stránce Certifikáty vyberte Přidat certifikát.
  3. Do pole Název zadejte název certifikátu.
  4. Pokud chcete vyhledat soubor .cer nebo .pfx , zvolte v části Nahrání souboru certifikátu možnost 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.
  5. 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.

Screenshot of adding a certificate to the canvas

Následující obrázek ukazuje příklad použití certifikátu v grafickém runbooku.

Screenshot of an example of graphical authoring

Další kroky