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.Cmdlets
globalnym . 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 Name
Get-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
- Na koncie usługi Automation w okienku po lewej stronie wybierz pozycję Certyfikaty w obszarze Zasób udostępniony.
- Na stronie Certyfikaty wybierz pozycję Dodaj certyfikat.
- W polu Nazwa wpisz nazwę certyfikatu.
- 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.
- 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.
Na poniższej ilustracji przedstawiono przykład użycia certyfikatu w graficznym elemecie Runbook.
Następne kroki
- Aby dowiedzieć się więcej o poleceniach cmdlet używanych do uzyskiwania dostępu do certyfikatów, zobacz Zarządzanie modułami w usłudze Azure Automation.
- Aby uzyskać ogólne informacje na temat elementów Runbook, zobacz Wykonywanie elementu Runbook w usłudze Azure Automation.
- Aby uzyskać szczegółowe informacje na temat konfiguracji DSC, zobacz Omówienie usługi Azure Automation State Configuration.