Compartilhar via


Pssar credenciais para o manipulador de extensões DSC do Azure

Este artigo aborda a extensão Configuração de Estado Desejado (DSC) do Azure. Para obter uma visão geral do manipulador de extensões DSC, consulte Introdução ao manipulador de extensões Configuração de Estado Desejado do Azure.

Observação

Antes de você habilitar a extensão de DSC, gostaríamos de informar que uma versão mais recente da DSC agora está em disponibilidade geral, gerenciada por um recurso de Gerenciamento Automatizado do Azure chamado configuração de máquina. O recurso de configuração de máquina combina os recursos do manipulador de extensão de DSC (Desired State Configuration), a State Configuration da Automação do Azure e os recursos mais solicitados nos comentários dos clientes. A configuração de máquina também inclui suporte a computadores híbridos por meio de servidores habilitados para Arc.

Passar credenciais

Como parte do processo de configuração, talvez seja necessário configurar contas de usuário, acessar serviços ou instalar um programa em um contexto de usuário. Para fazer isso, você precisa fornecer credenciais.

Você pode usar a DSC para definir as configurações parametrizadas. Em uma configuração parametrizada, as credenciais são passadas na configuração e seguramente armazenadas em arquivos MOF. O manipulador de extensões do Azure simplifica o gerenciamento de credenciais fornecendo gerenciamento automático de certificados.

O seguinte script de configuração da DSC cria uma conta de usuário local com a senha 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 node localhost como parte da configuração. O manipulador de extensão procura especificamente a instrução node localhost. Se essa instrução estiver ausente, as etapas a seguir não funcionam. Também é importante incluir a conversão de tipo [PsCredential]. Esse tipo específico dispara a extensão para criptografar as credenciais.

Para publicar esse script no armazenamento de blobs do Azure:

Publish-AzVMDscConfiguration -ConfigurationPath .\user_configuration.ps1

Para definir a extensão DSC do Azure 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

Executar esse código solicita uma credencial. Depois que a credencial é fornecida, ela é armazenada brevemente na memória. Quando a credencial é publicada usando o cmdlet Set-AzVMDscExtension, ela é transmitida por HTTPS para a VM. Na VM, o Azure armazena a credencial criptografada no disco usando o certificado local da VM. A credencial é brevemente descriptografada na memória e, em seguida, criptografada novamente para passá-la à DSC.

Esse processo é diferente de usar configurações seguras sem o manipulador de extensões. O ambiente do Azure oferece uma forma de transmitir dados de configuração com segurança por meio de certificados. Ao usar o manipulador de extensão DSC, não é necessário fornecer $CertificatePath ou uma entrada $CertificateID/ $Thumbprint em ConfigurationData.

Próximas etapas