Pasar credenciales al controlador de extensiones DSC de Azure
En este artículo se trata la extensión Desired State Configuration (DSC) de Azure. Para ver información general sobre el controlador de extensiones de DSC, consulte Introducción al controlador de extensiones de configuración de Azure Desired State.
Nota:
Antes de habilitar la extensión DSC, debe saber que ahora hay una versión más reciente de DSC disponible con carácter general, administrada mediante una característica de Azure Automanage denominada configuración de máquina. La característica de configuración de máquina combina características de la extensión Desired State Configuration (DSC) del controlador, State Configuration de Azure Automation y las características que más solicitan los clientes en sus comentarios. La configuración de máquina también incluye compatibilidad con las máquinas híbridas mediante servidores habilitados para Arc.
Pase de credenciales
Como parte del proceso de configuración, es posible que deba configurar las cuentas de usuario, obtener acceso a los servicios o instalar un programa en un contexto de usuario. Para llevar a cabo estas acciones, debe proporcionar las credenciales.
Puede usar DSC para establecer configuraciones parametrizadas. En una configuración parametrizada, las credenciales se pasan a la configuración y se almacenan de forma segura en archivos .mof. El controlador de extensiones de Azure simplifica la administración de credenciales, ya que administra los certificados de forma automática.
El siguiente script de configuración de DSC crea una cuenta de usuario local con la contraseña 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
}
}
}
Es importante incluir node localhost como parte de la configuración. El controlador de extensiones busca específicamente la instrucción node localhost. Si falta esta instrucción, los siguientes pasos no funcionarán. También es importante incluir la conversión de tipo [PsCredential]. Este tipo específico desencadena la extensión para cifrar la credencial.
Para publicar este script en Azure Blob Storage:
Publish-AzVMDscConfiguration -ConfigurationPath .\user_configuration.ps1
Para establecer la extensión DSC de Azure y proporcionar la 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
Cómo se protege una credencial
Al ejecutar este código, se solicita una credencial. Después de proporcionar la credencial, se almacena brevemente en la memoria. Cuando la credencial se publica usando el cmdlet Set-AzVMDscExtension, esta se transmite a través de HTTPS a la VM. En la máquina virtual, Azure almacena la credencial cifrada en el disco mediante el certificado de máquina virtual local. La credencial se descifra brevemente en la memoria y se vuelve a cifrar para pasarla a DSC.
Este proceso no es el mismo que cuando se usan configuraciones seguras sin el controlador de extensiones. El entorno de Azure ofrece una manera de transmitir datos de configuración de forma segura mediante certificados. Cuando utiliza el controlador de la extensión DSC, no es necesario proporcionar $CertificatePath o una entrada $CertificateID/ $Thumbprint en ConfigurationData.
Pasos siguientes
- Obtenga una introducción al controlador de extensiones DSC de Azure.
- Examine la plantilla de Azure Resource Manager para la extensión de DSC.
- Para obtener más información sobre DSC de PowerShell, vaya al centro de documentación de PowerShell.
- Para obtener más funcionalidades que pueda administrar con DSC de PowerShell y más recursos de DSC, examine la Galería de PowerShell.