Passare credenziali al gestore estensione DSC di Azure
Questo articolo illustra l'estensione DSC (Desired State Configuration) per Azure. Per una panoramica del gestore estensione DSC, vedere Introduzione al gestore dell'estensione DSC (Desired State Configuration) di Azure.
Nota
Prima di abilitare l'estensione DSC, si vuole sapere che una versione più recente di DSC è ora disponibile a livello generale, gestita da una funzionalità di Configurazione automatica di Azure denominata machine. La funzionalità di configurazione del computer combina le funzionalità del gestore dell'estensione DSC (Desired State Configuration), Automazione di Azure State Configuration e le funzionalità più comunemente richieste dal feedback dei clienti. La configurazione del computer include anche il supporto del computer ibrido tramite i server abilitati per Arc.
Passare le credenziali
Nell'ambito del processo di configurazione, potrebbe essere necessario configurare account utente, servizi di accesso o installare un programma in un contesto utente. Per eseguire queste operazioni, è necessario fornire le credenziali.
DSC consente di impostare le configurazioni con parametri. In una configurazione con parametri, le credenziali vengono passate nella configurazione e archiviate in modo sicuro in file .mof. Per semplificare la gestione delle credenziali, il gestore estensione di Azure offre la gestione automatica dei certificati.
Lo script di configurazione DSC seguente che crea un account utente locale con la password specificata:
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 includere node localhost come parte della configurazione. Il gestore estensione cerca specificatamente l'estensione localhost nodo. Se l'istruzione manca, la procedura seguente non funziona. È anche importante includere il cast di tipo [PsCredential]. Questo tipo specifico attiva l'estensione per crittografare le credenziali.
Pubblicare questo script nell'archivio BLOB di Azure:
Publish-AzVMDscConfiguration -ConfigurationPath .\user_configuration.ps1
Impostare l'estensione DSC di Azure e specificare la credenziale:
$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
Modalità di protezione della credenziale
Durante l'esecuzione del codice viene chiesta una credenziale. Dopo che la credenziale viene fornita, viene archiviata per un breve periodo di tempo in memoria. Quando la credenziale viene pubblicata tramite il cmdlet Set-AzVMDscExtension, viene trasmessa tramite HTTPS alla macchina virtuale. Nella macchina virtuale, Azure archivia le credenziali crittografate su disco usando il certificato della macchina virtuale locale. La credenziale viene brevemente decrittografata nella memoria e quindi nuovamente crittografata per essere passata a DSC.
Questo processo è diverso dall' uso di configurazioni sicure senza il gestore dell'estensione. L'ambiente di Azure offre un modo per trasmettere i dati di configurazione in maniera sicura tramite certificati. Quando si usa il gestore dell'estensione DSC, non è necessario fornire $CertificatePath o una voce $CertificateID/ $Thumbprint in ConfigurationData.
Passaggi successivi
- Ottenere un'introduzione al gestore dell'estensione DSC di Azure.
- Esaminare il modello di Azure Resource Manager per l'estensione DSC.
- Per altre informazioni su PowerShell DSC, passare al centro di documentazione di PowerShell.
- Per altre funzionalità che è possibile gestire tramite PowerShell DSC e per altre risorse DSC, cercare in PowerShell Gallery.