Przekazywanie poświadczeń do procedury obsługi azure DSCExtension

W tym artykule opisano rozszerzenie Desired State Configuration (DSC) dla platformy Azure. Aby zapoznać się z omówieniem procedury obsługi rozszerzeń DSC, zobacz Wprowadzenie do procedury obsługi rozszerzeń platformy Azure Desired State Configuration.

Uwaga

Przed włączeniem rozszerzenia DSC chcielibyśmy wiedzieć, że nowsza wersja dsC jest teraz ogólnie dostępna, zarządzana przez funkcję usługi Azure Automange o nazwie konfiguracja maszyny. Funkcja konfiguracji maszyny łączy funkcje obsługi rozszerzeń Desired State Configuration (DSC), Azure Automation State Configuration i najczęściej żądanych funkcji z opinii klientów. Konfiguracja maszyny obejmuje również obsługę maszyny hybrydowej za pośrednictwem serwerów z obsługą usługi Arc.

Przekazywanie poświadczeń

W ramach procesu konfiguracji może być konieczne skonfigurowanie kont użytkowników, usług dostępu lub zainstalowanie programu w kontekście użytkownika. Aby wykonać te czynności, należy podać poświadczenia.

Do skonfigurowania sparametryzowanych konfiguracji można użyć kontrolera DSC. W konfiguracji sparametryzowane poświadczenia są przekazywane do konfiguracji i bezpiecznie przechowywane w plikach mof. Procedura obsługi rozszerzeń platformy Azure upraszcza zarządzanie poświadczeniami, zapewniając automatyczne zarządzanie certyfikatami.

Poniższy skrypt konfiguracji DSC tworzy konto użytkownika lokalnego z określonym hasłem:

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

Ważne jest, aby uwzględnić hosta lokalnego węzła w ramach konfiguracji. Procedura obsługi rozszerzeń szuka w szczególności instrukcji localhost węzła . Jeśli brakuje tej instrukcji, poniższe kroki nie działają. Ważne jest również, aby uwzględnić emisję typu [PsCredential]. Ten konkretny typ wyzwala rozszerzenie w celu zaszyfrowania poświadczeń.

Aby opublikować ten skrypt w usłudze Azure Blob Storage:

Publish-AzVMDscConfiguration -ConfigurationPath .\user_configuration.ps1

Aby ustawić rozszerzenie DsC platformy Azure i podać poświadczenia:

$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

Jak poświadczenia są zabezpieczone

Uruchomienie tego kodu powoduje wyświetlenie monitu o podanie poświadczeń. Po podaniu poświadczeń jest on krótko przechowywany w pamięci. Po opublikowaniu poświadczeń przy użyciu polecenia cmdlet Set-AzVMDscExtension poświadczenia są przesyłane za pośrednictwem protokołu HTTPS do maszyny wirtualnej. Na maszynie wirtualnej platforma Azure przechowuje poświadczenia zaszyfrowane na dysku przy użyciu lokalnego certyfikatu maszyny wirtualnej. Poświadczenie jest krótko odszyfrowywane w pamięci, a następnie jest ponownie szyfrowane, aby przekazać je do dsC.

Ten proces różni się od używania bezpiecznych konfiguracji bez procedury obsługi rozszerzeń. Środowisko platformy Azure umożliwia bezpieczne przesyłanie danych konfiguracji za pośrednictwem certyfikatów. W przypadku korzystania z procedury obsługi rozszerzenia DSC nie musisz podawać $CertificatePath ani wpisu $CertificateID/ $Thumbprint w pliku ConfigurationData.

Następne kroki