Zarządzanie certyfikatami w usłudze Azure Automation

Usługa Azure Automation bezpiecznie przechowuje certyfikaty w celu uzyskania dostępu przez elementy Runbook i konfiguracje DSC przy użyciu polecenia cmdlet Get-AzAutomationCertificate dla zasobów usługi Azure Resource Manager. Bezpieczny magazyn certyfikatów zezwala na tworzenie elementów Runbook i konfiguracji DSC, które używają certyfikatów do uwierzytelniania, lub na dodawanie ich do zasobów platformy Azure lub innych firm.

Uwaga

Zabezpieczanie zasobów w usłudze Azure Automation dotyczy poświadczeń, certyfikatów, połączeń i zaszyfrowanych zmiennych. Te zasoby są szyfrowane i przechowywane w usłudze Automation przy użyciu unikatowego klucza generowanego dla każdego konta usługi Automation. Usługa Automation przechowuje klucz w usłudze Key Vault zarządzanej przez system. Przed zapisaniem bezpiecznego zasobu usługa Automation ładuje klucz z usługi Key Vault, a następnie używa go do szyfrowania zasobu.

Polecenia cmdlet programu PowerShell do uzyskiwania dostępu do certyfikatów

Polecenia cmdlet w poniższej tabeli tworzą certyfikaty usługi Automation i zarządzają nimi za pomocą programu PowerShell. Są one dostarczane jako część modułów Az.

Polecenia cmdlet opis
Get-AzAutomationCertificate Pobiera informacje o certyfikacie do użycia w konfiguracji elementu Runbook lub DSC. Certyfikat można pobrać tylko za pomocą wewnętrznego Get-AutomationCertificate polecenia cmdlet.
New-AzAutomationCertificate Tworzy nowy certyfikat w usłudze Automation.
Remove-AzAutomationCertificate Usuwa certyfikat z usługi Automation.
Set-AzAutomationCertificate Ustawia właściwości istniejącego certyfikatu, w tym przekazywanie pliku certyfikatu i ustawianie hasła dla pliku PFX .

Polecenia cmdlet Add-AzureCertificate można również użyć do przekazania certyfikatu usługi dla określonej usługi w chmurze.

Wewnętrzne polecenia cmdlet do uzyskiwania dostępu do certyfikatów

Wewnętrzne polecenie cmdlet w poniższej tabeli służy do uzyskiwania dostępu do certyfikatów w elementach Runbook. To polecenie cmdlet jest dostarczane z modułem Orchestrator.AssetManagement.Cmdletsglobalnym . Aby uzyskać więcej informacji, zobacz Wewnętrzne polecenia cmdlet.

Wewnętrzne polecenie cmdlet opis
Get-AutomationCertificate Pobiera certyfikat do użycia w konfiguracji elementu Runbook lub DSC. Zwraca obiekt System.Security.Cryptography.X509Certificates.X509Certificate2.

Uwaga

Należy unikać używania zmiennych w parametrze NameGet-AutomationCertificate elementu Runbook lub konfiguracji DSC. Takie zmienne mogą komplikować odnajdywanie zależności między elementami Runbook lub konfiguracjami DSC i zmiennymi automatyzacji w czasie projektowania.

Funkcje języka Python do uzyskiwania dostępu do certyfikatów

Użyj funkcji w poniższej tabeli, aby uzyskać dostęp do certyfikatów w elemecie Runbook języka Python 2 i 3. 3 elementy Runbook języka Python są obecnie dostępne w wersji zapoznawczej.

Function opis
automationassets.get_automation_certificate Pobiera informacje o zasobie certyfikatu.

Uwaga

Aby uzyskać dostęp do funkcji zasobów, należy zaimportować automationassets moduł na początku elementu Runbook języka Python.

Utwórz nowy certyfikat

Podczas tworzenia nowego certyfikatu przekazujesz plik .cer lub .pfx do usługi Automation. Jeśli oznaczysz certyfikat jako możliwy do wyeksportowania, możesz przenieść go poza magazyn certyfikatów usługi Automation. Jeśli nie można wyeksportować tego elementu, można go używać tylko do podpisywania w ramach elementu Runbook lub konfiguracji DSC. Usługa Automation wymaga, aby certyfikat miał dostawcę Microsoft Enhanced RSA i AES Cryptographic Provider.

Utwórz nowy certyfikat w witrynie Azure Portal

  1. Na koncie usługi Automation w okienku po lewej stronie wybierz pozycję Certyfikaty w obszarze Zasób udostępniony.
  2. Na stronie Certyfikaty wybierz pozycję Dodaj certyfikat.
  3. W polu Nazwa wpisz nazwę certyfikatu.
  4. Aby wyszukać plik cer lub pfx , w obszarze Przekaż plik certyfikatu wybierz pozycję Wybierz plik. Jeśli wybierzesz plik PFX , określ hasło i wskaż, czy można go wyeksportować. Jeśli do przekazywania certyfikatów używasz portalu usługi Azure Automation, może to zakończyć się niepowodzeniem w przypadku kont partnerów (CSP). Zalecamy użycie poleceń cmdlet programu PowerShell jako obejścia w celu rozwiązania tego problemu.
  5. Wybierz pozycję Utwórz , aby zapisać nowy zasób certyfikatu.

Utwórz nowy certyfikat za pomocą programu PowerShell

W poniższym przykładzie pokazano, jak utworzyć nowy certyfikat usługi Automation i oznaczyć go jako możliwy do wyeksportowania. W tym przykładzie importuje istniejący plik 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

Tworzenie nowego certyfikatu przy użyciu szablonu usługi Resource Manager

W poniższym przykładzie pokazano, jak wdrożyć certyfikat na koncie usługi Automation przy użyciu szablonu usługi Resource Manager za pomocą programu 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

Uzyskiwanie certyfikatu

Aby pobrać certyfikat, użyj wewnętrznego Get-AutomationCertificate polecenia cmdlet. Nie można użyć polecenia cmdlet Get-AzAutomationCertificate , ponieważ zwraca informacje o zasobie certyfikatu, ale nie sam certyfikat.

Przykłady tekstowego elementu Runbook

W poniższym przykładzie pokazano, jak dodać certyfikat do usługi w chmurze w elemecie Runbook. W tym przykładzie hasło jest pobierane z zaszyfrowanej zmiennej automatyzacji.

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

Przykład graficznego elementu Runbook

Dodaj działanie wewnętrznego Get-AutomationCertificate polecenia cmdlet do graficznego elementu Runbook, klikając prawym przyciskiem myszy certyfikat w okienku Biblioteka i wybierając polecenie Dodaj do kanwy.

Screenshot of adding a certificate to the canvas

Na poniższej ilustracji przedstawiono przykład użycia certyfikatu w graficznym elemecie Runbook.

Screenshot of an example of graphical authoring

Następne kroki