你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将凭据传递给 Azure DSC 扩展处理程序

本文介绍了 Azure 的所需状态配置 (DSC) 扩展。 有关 DSC 扩展处理程序的概述,请参阅 Azure 所需状态配置扩展处理程序

注意

在启用 DSC 扩展之前,我们希望你知道 DSC 的新版本目前已正式发布,由名为机器配置的 Azure Automange 功能管理。 机器配置功能结合了 Desired State Configuration (DSC) 扩展处理程序、Azure Automation State Configuration 以及客户反馈中最常请求的功能。 机器配置还包括通过已启用 Arc 的服务器提供的混合计算机支持。

传入凭据

在配置过程中,可能需要在用户上下文中设置用户帐户、访问服务或安装程序。 若要执行这些操作,需提供凭据。

可以使用 DSC 来设置参数化配置。 在参数化配置中,凭据将传递到配置并安全地存储在 .mof 文件中。 Azure 扩展处理程序提供证书的自动管理功能,以此简化凭据管理。

以下 DSC 配置脚本创建具有指定密码的本地用户帐户:

configuration Main
{
    param(
        [Parameter(Mandatory=$true)]
        [ValidateNotNullorEmpty()]
        [PSCredential]
        $Credential
    )
    Node localhost {
        User LocalUserAccount
        {
            Username = $Credential.UserName
            Password = $Credential
            Disabled = $false
            Ensure = "Present"
            FullName = "Local User Account"
            Description = "Local User Account"
            PasswordNeverExpires = $true
        }
    }
}

必须将 node localhost 包含为配置的一部分。 扩展处理程序会特意查找 node localhost 语句。 如果缺少此语句,则以下步骤不起作用。 还必须包含类型强制转换 [PsCredential]。 此特定类型触发扩展对凭据进行加密。

将此脚本发布到 Azure Blob 存储:

Publish-AzVMDscConfiguration -ConfigurationPath .\user_configuration.ps1

设置 Azure DSC 扩展并提供凭据:

$configurationName = 'Main'
$configurationArguments = @{ Credential = Get-Credential }
$configurationArchive = 'user_configuration.ps1.zip'
$vm = Get-AzVM -Name 'example-1'

$vm = Set-AzVMDscExtension -VMName $vm -ConfigurationArchive $configurationArchive -ConfigurationName $configurationName -ConfigurationArgument @configurationArguments

$vm | Update-AzVM

如何保护凭据

运行此代码时会出现输入凭据的提示。 提供凭据后,它短暂地存储在内存中。 使用 Set-AzVMDscExtension cmdlet 发布凭据时,会通过 HTTPS 将凭据传输到 VM。 在 VM 中,Azure 使用本地 VM 证书将加密的凭据存储在磁盘上。 若要将凭据传递给 DSC,将在内存中短暂地将其解密,然后将其重新加密。

此过程不同于使用不带扩展处理程序的安全配置。 Azure 环境提供了通过证书安全地传输配置数据的方法。 使用 DSC 扩展处理程序时,无需在 ConfigurationData 中提供 $CertificatePath$CertificateID/ $Thumbprint 条目。

后续步骤