Azure Otomasyonu'nda sertifikaları yönetme

Azure Otomasyonu kullanarak runbook'lar ve DSC yapılandırmaları tarafından erişim için sertifikaları güvenli bir şekilde depolar Azure Resource Manager kaynakları için Get-AzAutomationCertificate cmdlet'i. Güvenli sertifika depolama, kimlik doğrulaması için sertifikaları kullanan runbook'lar ve DSC yapılandırmaları oluşturmanıza veya bunları Azure veya üçüncü taraf kaynaklara eklemenize olanak tanır.

Dekont

Azure Otomasyonu’ndaki kimlik bilgileri, sertifikalar, bağlantılar ve şifrelenmiş değişkenler gibi varlıkların güvenliğini sağlayın. Bu varlıklar, her Otomasyon hesabı için oluşturulan benzersiz bir anahtar kullanılarak şifrelenir ve Otomasyon'da depolanır. Otomasyon anahtarı sistem tarafından yönetilen Key Vault hizmetinde depolar. Otomasyon, güvenli bir varlığı depolamadan önce anahtarı Key Vault'tan yükler ve ardından varlığı şifrelemek için kullanır.

Sertifikalara erişmek için PowerShell cmdlet'leri

Aşağıdaki tablodaki cmdlet'ler PowerShell ile Otomasyon sertifikaları oluşturur ve yönetir. Az modüllerinin bir parçası olarak göndermektedirler.

Cmdlet Tanım
Get-AzAutomationCertificate Runbook veya DSC yapılandırmasında kullanılacak sertifika hakkındaki bilgileri alır. Sertifikanın kendisini yalnızca iç Get-AutomationCertificate cmdlet'ini kullanarak alabilirsiniz.
New-AzAutomationCertificate Otomasyon'da yeni bir sertifika oluşturur.
Remove-AzAutomationCertificate Bir sertifikayı Otomasyon'dan kaldırır.
Set-AzAutomationCertificate Sertifika dosyasını karşıya yükleme ve .pfx dosyasının parolasını ayarlama gibi mevcut bir sertifikanın özelliklerini ayarlar.

Add-AzureCertificate cmdlet'i, belirtilen bulut hizmeti için bir hizmet sertifikası yüklemek için de kullanılabilir.

Sertifikalara erişmek için iç cmdlet'ler

Aşağıdaki tabloda yer alan iç cmdlet, runbook'larınızdaki sertifikalara erişmek için kullanılır. Bu cmdlet genel modülüyle Orchestrator.AssetManagement.Cmdletsbirlikte gelir. Daha fazla bilgi için bkz . İç cmdlet'ler.

İç Cmdlet Tanım
Get-AutomationCertificate Runbook veya DSC yapılandırmasında kullanılacak sertifikayı alır. System.Security.Cryptography.X509Certificates.X509Certificate2 nesnesi döndürür.

Dekont

Runbook veya DSC yapılandırmasında Name parametresinde Get-AutomationCertificate değişken kullanmaktan kaçınmanız gerekir. Bu tür değişkenler, tasarım zamanında runbook'lar veya DSC yapılandırmaları ile Otomasyon değişkenleri arasındaki bağımlılıkların bulunmasını karmaşıklaştırabilir.

Sertifikalara erişmek için Python işlevleri

Python 2 ve 3 runbook'larındaki sertifikalara erişmek için aşağıdaki tabloda yer alan işlevi kullanın. Python 3 runbook'ları şu anda önizleme aşamasındadır.

İşlev Tanım
automationassets.get_automation_certificate Bir sertifika varlığı hakkındaki bilgileri alır.

Dekont

Varlık işlevlerine automationassets erişmek için Python runbook'unuzun başındaki modülü içeri aktarmanız gerekir.

Yeni sertifika oluşturma

Yeni bir sertifika oluşturduğunuzda Otomasyon'a bir .cer veya .pfx dosyası yüklersiniz. Sertifikayı dışarı aktarılabilir olarak işaretlerseniz, Otomasyon sertifika depolama alanından dışarı aktarabilirsiniz. Sertifika dışarı aktarılabilir değilse, yalnızca runbook veya DSC yapılandırmasında imzalamak için kullanılabilir. Otomasyon, sertifikanın Microsoft Enhanced RSA ve AES Şifreleme Sağlayıcısı sağlayıcısına sahip olmasını gerektirir.

Azure portal ile yeni sertifika oluşturma

  1. Otomasyon hesabınızdan sol bölmede Paylaşılan Kaynak altında Sertifikalar'ı seçin.
  2. Sertifikalar sayfasında Sertifika ekle'yi seçin.
  3. Ad alanına sertifika için bir ad yazın.
  4. .cer veya .pfx dosyasına göz atmak için Sertifika dosyasını karşıya yükle altında Dosya seç'i seçin. Bir .pfx dosyası seçerseniz, bir parola belirtin ve dışarı aktarılıp aktarılamadığını belirtin. Sertifikaları karşıya yüklemek için Azure Otomasyonu portalı kullanıyorsanız, iş ortağı (CSP) hesapları için başarısız olabilir. Bu sorunun üstesinden gelmek için geçici çözüm olarak PowerShell cmdlet'lerini kullanmanızı öneririz.
  5. Yeni sertifika varlığını kaydetmek için Oluştur'u seçin.

PowerShell ile yeni sertifika oluşturma

Aşağıdaki örnekte yeni bir Otomasyon sertifikası oluşturma ve dışarı aktarılabilir olarak işaretleme işlemleri gösterilmektedir. Bu örnek var olan bir .pfx dosyasını içeri aktarır.

$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

Resource Manager şablonuyla yeni sertifika oluşturma

Aşağıdaki örnekte, PowerShell aracılığıyla Resource Manager şablonu kullanarak Otomasyon hesabınıza sertifika dağıtma adımları gösterilmektedir:

$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

Sertifika alma

Sertifika almak için iç Get-AutomationCertificate cmdlet'ini kullanın. Get-AzAutomationCertificate cmdlet'ini kullanamazsınız, çünkü sertifika varlığı hakkında bilgi döndürür, ancak sertifikanın kendisi döndürmez.

Metin runbook'u örnekleri

Aşağıdaki örnekte, bir runbook'taki bulut hizmetine nasıl sertifika ekleneceği gösterilmektedir. Bu örnekte parola, şifrelenmiş bir otomasyon değişkeninden alınır.

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

Grafik runbook örneği

Kitaplık bölmesinde sertifikaya Get-AutomationCertificate sağ tıklayıp Tuvale ekle'yi seçerek iç cmdlet için bir etkinliği grafik runbook'a ekleyin.

Screenshot of adding a certificate to the canvas

Aşağıdaki görüntüde, grafik runbook'ta sertifika kullanma örneği gösterilmektedir.

Screenshot of an example of graphical authoring

Sonraki adımlar