Transmitir credenciais para o processador Azure DSCExtension

Este artigo abrange a extensão Desired State Configuration (DSC) para o Azure. Para obter uma descrição geral do processador de extensões do DSC, veja Introduction to the Azure Desired State Configuration extension handler (Introdução ao processador de extensões do Azure Desired State Configuration).

Nota

Antes de ativar a extensão DSC, gostaríamos que soubesse que está agora disponível uma versão mais recente do DSC, gerida por uma funcionalidade do Azure Automange com o nome de configuração do computador. A funcionalidade de configuração do computador combina as funcionalidades do processador de extensões Desired State Configuration (DSC), Automatização do Azure State Configuration e as funcionalidades mais frequentemente pedidas do feedback dos clientes. A configuração do computador também inclui suporte de máquina híbrida através de servidores compatíveis com o Arc.

Transmitir credenciais

Como parte do processo de configuração, poderá ter de configurar contas de utilizador, aceder a serviços ou instalar um programa num contexto de utilizador. Para efetuar estas ações, tem de fornecer credenciais.

Pode utilizar o DSC para configurar configurações parametrizadas. Numa configuração parametrizada, as credenciais são transmitidas para a configuração e armazenadas em segurança em ficheiros .mof. O processador de extensões do Azure simplifica a gestão de credenciais ao fornecer a gestão automática de certificados.

O seguinte script de configuração do DSC cria uma conta de utilizador local com a palavra-passe especificada:

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
        }
    }
}

É importante incluir o localhost do nó como parte da configuração. O processador de extensões procura especificamente a instrução localhost do nó . Se esta instrução estiver em falta, os passos seguintes não funcionarão. Também é importante incluir o typecast [PsCredential]. Este tipo específico aciona a extensão para encriptar a credencial.

Para publicar este script no armazenamento de Blobs do Azure:

Publish-AzVMDscConfiguration -ConfigurationPath .\user_configuration.ps1

Para definir a extensão do Azure DSC e fornecer a credencial:

$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

Como uma credencial é protegida

A execução deste código pede uma credencial. Depois de a credencial ser fornecida, esta é armazenada brevemente na memória. Quando a credencial é publicada com o cmdlet Set-AzVMDscExtension , a credencial é transmitida através de HTTPS para a VM. Na VM, o Azure armazena a credencial encriptada no disco com o certificado de VM local. A credencial é desencriptada brevemente na memória e, em seguida, é encriptada novamente para passá-la para o DSC.

Este processo é diferente da utilização de configurações seguras sem o processador de extensões. O ambiente do Azure dá-lhe uma forma de transmitir dados de configuração de forma segura através de certificados. Quando utiliza o processador de extensões do DSC, não precisa de fornecer $CertificatePath ou uma entrada $CertificateID/ $Thumbprint em ConfigurationData.

Passos seguintes