إدارة الشهادات في Azure Automation

يخزن Azure Automation الشهادات بشكل آمن للوصول إليها بواسطة دفاتر التشغيل وتكوينات DSC، باستخدام Get-AzAutomationCertificate cmdlet لموارد Azure Resource Manager. تسمح لك سعة تخزين الشهادات الآمنة بإنشاء دفاتر التشغيل وتكوينات DSC التي تستخدم الشهادات للمصادقة، أو إضافتها إلى موارد Azure أو موارد الجهات الخارجية.

إشعار

تتضمن الأصول الآمنة في Azure Automation بيانات الاعتماد والشهادات والاتصالات والمتغيرات المشفرة. يتم تشفير هذه الأصول وتخزينها في التنفيذ باستخدام مفتاح فريد يتم إنشاؤه لكل حساب Automation. تخزن Automation المفتاح في خدمة Key Vault المدارة من قبل النظام. قبل تخزين أحد الأصول الآمنة، تقوم Automation بتحميل المفتاح من Key Vault، ثم تستخدمه لتشفير الأصل.

PowerShell cmdlets للوصول إلى الشهادات

تؤدي cmdlets في الجدول التالي إلى إنشاء وإدارة شهادات Automation مع PowerShell. يتم شحنه كجزء من وحدات Az.

Cmdlet ‏‏الوصف
الحصول على AzAutomationCertificate استرداد معلومات حول شهادة لاستخدامها في تكوين دفتر تشغيل أو DSC. يمكنك استرداد الشهادة نفسها فقط باستخدام cmdlet الداخلي Get-AutomationCertificate .
New-AzAutomationCertificate إنشاء شهادة جديدة في Automation.
Remove-AzAutomationCertificate إزالة شهادة من Automation.
Set-AzAutomationCertificate تعيين خصائص شهادة موجودة، بما في ذلك تحميل ملف الشهادة وتعيين كلمة المرور لملف .pfx .

يمكن أيضا استخدام Add-AzureCertificate cmdlet لتحميل شهادة خدمة للخدمة السحابية المحددة.

cmdlets داخلية للوصول إلى الشهادات

يتم استخدام cmdlet الداخلي في الجدول التالي للوصول إلى الشهادات في دفاتر التشغيل الخاصة بك. يأتي cmdlet هذا مع وحدة عامة ⁦Orchestrator.AssetManagement.Cmdlets⁩. لمزيد من المعلومات، راجع ⁦⁩أوامر cmdlets الداخلية⁦⁩.

cmdlet الداخلي ‏‏الوصف
Get-AutomationCertificate الحصول على شهادة لاستخدامها في تكوين دفتر تشغيل أو DSC. إرجاع كائن System.Security.Cryptography.X509Certificates.X509Certificate2 .

إشعار

يجب تجنب استخدام المتغيرات في المعلمة Name في Get-AutomationCertificate تكوين دفتر التشغيل أو DSC. يمكن أن تعقد هذه المتغيرات اكتشاف التبعيات بين دفاتر التشغيل أو تكوينات DSC ومتغيرات Automation في وقت التصميم.

وظائف Python للوصول إلى الشهادات

استخدم الدالة في الجدول التالي للوصول إلى الشهادات في دفتر تشغيل Python 2 و3. دفتر تشغيل Python 3 حاليًا قيد المعاينة.

الوظيفة ‏‏الوصف
automationassets.get_automation_certificate استرداد معلومات حول أصل الشهادة.

إشعار

يجب استيراد الوحدة النمطية automationassets في بداية دفتر تشغيل Python للوصول إلى وظائف الأصول.

إنشاء شهادة جديدة

عند إنشاء شهادة جديدة، تقوم بتحميل ملف.cer أو.pfx إلى Automation. إذا قمت بوضع علامة على الشهادة كقابلة للتصدير، فيمكنك نقلها من مخزن شهادات Automation. إذا لم تكن قابلة للتصدير، فلا يمكن استخدامها إلا للتوقيع داخل تكوين دفتر التشغيل أو DSC. تتطلب الأتمتة أن يكون لدى الشهادة موفر Microsoft Enhanced RSA وموفر تشفير AES.

إنشاء شهادة جديدة مع مدخل Azure

  1. من حساب Automation الخاص بك، في الجزء الأيمن حدد Certificates ضمن Shared Resource.
  2. في صفحة Certificates ، حدد Add a certificate.
  3. في حقل الاسم ، اكتب اسما للشهادة.
  4. للاستعراض بحثا عن ملف .cer أو .pfx ، ضمن تحميل ملف شهادة، اختر تحديد ملف. إذا قمت بتحديد ملف .pfx ، فحدد كلمة مرور ووضح ما إذا كان يمكن تصديرها. إذا كنت تستخدم مدخل Azure Automation لتحميل الشهادات، فقد يفشل لحسابات الشريك (CSP). نوصي باستخدام PowerShell cmdlets كحل بديل للتغلب على هذه المشكلة.
  5. حدد Create لحفظ أصل الشهادة الجديد.

إنشاء شهادة جديدة باستخدام PowerShell

يوضح المثال التالي كيفية إنشاء شهادة Automation جديدة ووضع علامة عليها قابلة للتصدير. يستورد هذا المثال ملف .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

إنشاء شهادة جديدة باستخدام قالب إدارة الموارد

يوضح المثال التالي كيفية نشر شهادة إلى حساب التنفيذ باستخدام قالب إدارة الموارد من خلال 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

الحصول على شهادة

لاسترداد شهادة، استخدم cmdlet الداخلي Get-AutomationCertificate . لا يمكنك استخدام Get-AzAutomationCertificate cmdlet، لأنه يرجع معلومات حول أصل الشهادة، ولكن ليس الشهادة نفسها.

أمثلة لدفتر التشغيل النصي

يوضح المثال التالي كيفية إضافة شهادة إلى خدمة مجموعة النظراء في دفتر تشغيل. في هذه العينة، يتم استرداد كلمة المرور من متغير أتمتة مشفرة.

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

مثال دفتر التشغيل الرسومي

أضف نشاطا ل cmdlet الداخلي Get-AutomationCertificate إلى دفتر تشغيل رسومي بالنقر بزر الماوس الأيمن فوق الشهادة في جزء المكتبة، وتحديد إضافة إلى اللوحة.

Screenshot of adding a certificate to the canvas

تعرض الصورة التالية مثالا لاستخدام شهادة في دفتر تشغيل رسومي.

Screenshot of an example of graphical authoring

الخطوات التالية