Azure 自动化中的证书资产

可以安全地将证书存储在 Azure 自动化中,以便可以使用 Azure 资源管理器资源的 Get-AzureRmAutomationCertificate 活动通过 Runbook 或 DSC 配置访问这些证书。 此功能允许创建使用证书进行身份验证的 Runbook 和 DSC 配置,或者将证书添加到 Azure 或第三方资源。

Note

Azure 自动化中的安全资产包括凭据、证书、连接和加密的变量。 这些资产已使用针对每个自动化帐户生成的唯一密钥加密并存储在 Azure 自动化中。 此密钥存储在密钥保管库中。 在存储安全资产之前,从密钥保管库加载密钥,然后使用该密钥加密资产。

AzureRM PowerShell cmdlet

对于 AzureRM,下表中的 cmdlet 用于通过 Windows PowerShell 创建和管理自动化凭据资产。 可在自动化 Runbook 中使用的 AzureRM.Automation 模块已随附了这些 cmdlet。

Cmdlet 说明
Get-AzureRmAutomationCertificate 检索有关要在 Runbook 或 DSC 配置中使用的证书的信息。 只能从 Get-AutomationCertificate 活动中检索证书本身。
New-AzureRmAutomationCertificate 将新证书创建到 Azure 自动化中。
Remove-AzureRmAutomationCertificate 从 Azure自动化中删除证书。
Set-AzureRmAutomationCertificate 设置现有证书的属性,包括上传证书文件和设置 .pfx 的密码。
Add-AzureCertificate 为指定的云服务上传服务证书。

活动

下表中的活动用于在 Runbook 中访问证书。

活动 说明
Get-AutomationCertificate 在 Runbook 中获取要使用的证书。 返回一个 System.Security.Cryptography.X509Certificates.X509Certificate2 对象。

Note

应避免在 Runbook 或 DSC 配置中的 Get-AutomationCertificate 的 - Name 参数中使用变量,因为这可能会使设计时发现 Runbook 或 DSC 配置与自动化变量之间的依赖关系变得复杂化。

Python2 函数

下表中的函数用于在 Python2 Runbook 中访问证书。

函数 说明
automationassets.get_automation_certificate 检索有关证书资产的信息。

Note

必须在 Python Runbook 开头部分导入 automationassets 模块才能访问资产函数。

创建新证书

创建新证书时,需要将 .cer 或 .pfx 文件上传到 Azure 自动化。 将证书标记为可导出后,可以将其转出 Azure 自动化证书存储区。 如果证书不可导出,则它只可用于在 Runbook 中签名。

使用 Azure 门户创建新证书

  1. 在自动化帐户中,单击“资产”磁贴以打开“资产”边栏选项卡。
  2. 单击“证书”磁贴打开“证书”边栏选项卡。
  3. 单击边栏选项卡顶部的“添加证书” 。
  4. 在“名称”框中键入证书的名称 。
  5. 若要浏览 .cer 或.pfx 文件,请单击“上传证书文件”下的“选择文件”。 如果选择了 .pfx 文件,请指定密码,以及是否允许导出。
  6. 单击“创建”以保存新的证书资产 。

使用 Windows PowerShell 创建新证书

以下示例演示了如何创建新的自动化证书并将其标记为可导出。 这会导入现有的 .pfx 文件。

$certName = 'MyCertificate'
$certPath = '.\MyCert.pfx'
$certPwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
$ResourceGroup = "ResourceGroup01"

New-AzureRmAutomationCertificate -AutomationAccountName "MyAutomationAccount" -Name $certName -Path $certPath -Password $certPwd -Exportable -ResourceGroupName $ResourceGroup

使用证书

若要使用证书,请使用 Get-AutomationCertificate 活动。 不能使用 Get-AzureRmAutomationCertificate cmdlet,因为它返回有关证书资产的信息,而不是证书本身的信息。

文本 Runbook 示例

以下示例代码演示了如何将证书添加到 Runbook 中的云服务。 在此示例中,已从加密的自动化变量检索了密码。

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

图形 Runbook 示例

通过在图形编辑器的“库”窗格中右键单击证书并选择“添加到画布”,将 Get-AutomationCertificate 添加到图形 Runbook。

将证书添加到画布

下图显示了在图形 Runbook 中使用证书的示例。 这与上面演示的从文本 Runbook 向云服务添加证书的示例相同。

示例图形创作

Python2 示例

以下示例演示了如何在 Python2 Runbook 中访问证书。

# get a reference to the Azure Automation certificate
cert = automationassets.get_automation_certificate("AzureRunAsCertificate")

# returns the binary cert content  
print cert 

后续步骤

  • 若要详细了解如何使用链接控制 runbook 旨在执行的活动的逻辑流,请参阅图形创作中的链接