Passar credenciais para o manipulador DSCExtension do Azure
Este artigo aborda a extensão de Configuração de Estado Desejado (DSC) para o Azure. Para obter uma visão geral do manipulador de extensão DSC, consulte Introdução ao manipulador de extensão de Configuração de Estado Desejado do Azure.
Nota
Antes de habilitar a extensão DSC, gostaríamos que você soubesse que uma versão mais recente do DSC agora está disponível ao público, gerenciada por um recurso da configuração de máquina nomeada do Azure Automange. O recurso de configuração da máquina combina recursos do manipulador de extensão DSC (Configuração de Estado Desejado), Configuração do Estado de Automação do Azure e os recursos mais comumente solicitados dos comentários dos clientes. A configuração da máquina também inclui suporte a máquinas híbridas através de servidores habilitados para Arc.
Passe 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 essas coisas, você precisa fornecer credenciais.
Você pode usar o DSC para configurar configurações parametrizadas. Em uma configuração parametrizada, as credenciais são passadas para a configuração e armazenadas com segurança em arquivos .mof. O manipulador de extensão do Azure simplifica o gerenciamento de credenciais fornecendo gerenciamento automático de certificados.
O seguinte script de configuração 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 o nó localhost como parte da configuração. O manipulador de extensão procura especificamente a instrução localhost do nó. Se essa instrução estiver faltando, as etapas a seguir não funcionarão. Também é importante incluir o typecast [PsCredential]. Esse tipo específico aciona a extensão para criptografar a credencial.
Para publicar este script no armazenamento de Blob 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
A execução desse código solicita uma credencial. Depois que a credencial é fornecida, ela é brevemente armazenada na memória. Quando a credencial é publicada usando o cmdlet Set-AzVMDscExtension , a credencial é transmitida por HTTPS para a VM. Na VM, o Azure armazena a credencial criptografada no disco usando o certificado de VM local. A credencial é brevemente descriptografada na memória e, em seguida, é criptografada novamente para passá-la para o DSC.
Esse processo é diferente de usar configurações seguras sem o manipulador de extensão. O ambiente do Azure oferece uma maneira de transmitir dados de configuração com segurança por meio de certificados. Quando você usa o manipulador de extensão DSC, não precisa fornecer $CertificatePath ou uma entrada $CertificateID/ $Thumbprint em ConfigurationData.
Próximos passos
- Obtenha uma introdução ao manipulador de extensão DSC do Azure.
- Examine o modelo do Azure Resource Manager para a extensão DSC.
- Para obter mais informações sobre o PowerShell DSC, vá para o centro de documentação do PowerShell.
- Para obter mais funcionalidades que você pode gerenciar usando o DSC do PowerShell e para obter mais recursos do DSC, navegue pela galeria do PowerShell.