Mengelola sertifikat di Azure Automation

Azure Automation menyimpan sertifikat dengan aman untuk akses dengan runbook dan konfigurasi DSC, dengan menggunakan cmdlet Get-AzAutomationCertificate untuk sumber daya Azure Resource Manager. Penyimpanan sertifikat aman memungkinkan Anda membuat runbook dan konfigurasi DSC yang menggunakan sertifikat untuk autentikasi, atau menambahkannya ke Azure atau sumber daya pihak ketiga.

Catatan

Aset aman di Azure Automation mencakup info masuk, sertifikat, koneksi, dan variabel terenkripsi. Aset ini dienkripsi dan disimpan di Automation dengan menggunakan kunci unik yang dihasilkan untuk setiap akun Automation. Automation menyimpan kunci di layanan Key Vault yang dikelola sistem. Sebelum menyimpan aset aman, Automation memuat kunci dari Key Vault, lalu menggunakannya untuk mengenkripsi aset.

Cmdlet PowerShell untuk mengakses sertifikat

Cmdlet dalam tabel berikut membuat dan mengelola sertifikat Automation dengan PowerShell. cmdlet ini melakukan pengiriman sebagai bagian dari modul Az.

Cmdlet Deskripsi
Get-AzAutomationCertificate Mengambil informasi tentang sertifikat yang akan digunakan dalam runbook atau konfigurasi DSC. Anda hanya dapat mengambil sertifikat itu sendiri dengan menggunakan cmdlet Get-AutomationCertificate internal.
New-AzAutomationCertificate Membuat sertifikat baru di Automation.
Remove-AzAutomationCertificate Menghapus sertifikat dari Automation.
Set-AzAutomationCertificate Menetapkan properti untuk sertifikat yang sudah ada, termasuk mengunggah file sertifikat dan mengatur kata sandi untuk file .pfx.

Cmdlet Add-AzureCertificate juga dapat digunakan untuk mengunggah sertifikat layanan untuk layanan cloud yang ditentukan.

Cmdlet internal untuk mengakses sertifikat

Cmdlet internal dalam tabel berikut digunakan untuk mengakses sertifikat di runbook Anda. Cmdlet ini dilengkapi dengan modul Orchestrator.AssetManagement.Cmdlets global. Untuk mengetahui informasi selengkapnya, lihat cmdlet internal.

Cmdlet Internal Deskripsi
Get-AutomationCertificate Mendapatkan sertifikat untuk digunakan dalam runbook atau konfigurasi DSC. Menampilkan objek System.Security.Cryptography.X509Certificates.X509Certificate2.

Catatan

Anda harus menghindari penggunaan variabel dalam parameter Name dari Get-AutomationCertificate dalam runbook atau konfigurasi DSC. Variabel tersebut dapat mempersulit penemuan dependensi antara runbook atau konfigurasi DSC dan variabel Automation pada waktu desain.

Fungsi Python untuk mengakses sertifikat

Gunakan fungsi dalam tabel berikut untuk mengakses sertifikat dalam runbook Python 2 dan 3. Runbook Python 3 saat ini dalam pratinjau.

Fungsi Deskripsi
automationassets.get_automation_certificate Mengambil informasi tentang aset sertifikat.

Catatan

Anda harus mengimpor modul automationassets di awal runbook Python Anda untuk mengakses fungsi aset.

Membuat sertifikat baru

Saat membuat sertifikat baru, Anda mengunggah file .cer atau .pfx ke Automation. Jika menandai sertifikat sebagai dapat diekspor, Anda dapat mentransfernya keluar dari penyimpanan sertifikat Automation. Jika tidak dapat diekspor, maka hanya dapat digunakan untuk menandatangani dalam runbook atau konfigurasi DSC. Automation mengharuskan sertifikat memiliki penyedia Microsoft Enhanced RSA dan AES Cryptographic Provider.

Membuat sertifikat baru dengan portal Microsoft Azure

  1. Dari akun Automation Anda, di panel sebelah kiri, pilih Sertifikat pada Sumber Daya Bersama.
  2. Di halaman Sertifikat, pilih Tambahkan sertifikat.
  3. Di bidang Nama, ketikkan nama untuk sertifikat tersebut.
  4. Untuk menelusuri file .cer atau .pfx, di bawah Unggah file sertifikat, pilih Pilih file. Jika Anda memilih file .pfx, tentukan kata sandi dan tunjukkan apakah file tersebut dapat diekspor.
  5. Pilih Buat untuk menyimpan aset sertifikat baru.

Membuat sertifikat baru dengan PowerShell

Contoh berikut menunjukkan cara membuat sertifikat Automation baru dan menandainya dapat diekspor. Contoh ini mengimpor file .pfx yang ada.

$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

Membuat sertifikat baru dengan templat Resource Manager

Contoh berikut menunjukkan cara menyebarkan sertifikat ke akun Automation Anda dengan menggunakan templat Resource Manager melalui 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

Mendapatkan sertifikat

Untuk mengambil sertifikat, gunakan cmdlet Get-AutomationCertificate internal. Anda tidak dapat menggunakan cmdlet Get-AzAutomationCertificate, karena menampilkan informasi tentang aset sertifikat, tetapi bukan sertifikat itu sendiri.

Contoh runbook tekstual

Contoh berikut menunjukkan cara menambahkan sertifikat ke layanan cloud dalam runbook. Dalam sampel ini, kata sandi diambil dari variabel otomatisasi terenkripsi.

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

Contoh runbook grafis

Tambahkan aktivitas untuk cmdlet Get-AutomationCertificate internal ke runbook grafis dengan mengklik kanan sertifikat di panel Pustaka, dan memilih Tambahkan ke kanvas.

Screenshot of adding a certificate to the canvas

Gambar berikut menunjukkan contoh penggunaan sertifikat dalam runbook grafis.

Screenshot of an example of graphical authoring

Langkah berikutnya