資格情報を Azure DSC 拡張機能ハンドラーに渡す

この記事では、Azure の Desired State Configuration (DSC) 拡張機能について説明します。 DSC 拡張機能ハンドラーの概要については、「Azure Desired State Configuration 拡張機能ハンドラーの概要」を参照してください。

注意

DSC 拡張機能を有効にする前に、マシンの構成という名前の Azure Automanage の機能によって管理される新しいバージョンの DSC が一般提供されていることに注意してください。 マシンの構成機能では、Desired State Configuration (DSC) 拡張機能ハンドラーや Azure Automation State Configuration の機能のほか、顧客のフィードバックで最も一般的に要求されている機能が組み合わされています。 マシンの構成には、Arc 対応サーバーによるハイブリッド マシンのサポートも含まれています。

資格情報を渡す

構成プロセスの一環で、ユーザー アカウントの設定、サービスへのアクセス、ユーザー コンテキストでのプログラムのインストールが必要になることがあります。 このような操作を行うには、資格情報を指定する必要があります。

DSC を使用して、パラメーター化された構成を設定できます。 パラメーター化された構成では、資格情報が構成に渡され、.mof ファイルに安全に格納されます。 Azure 拡張機能ハンドラーには証明書の自動管理機能があるので、資格情報管理が簡易になります。

次の DSC 構成スクリプトにより、指定したパスワードでローカル ユーザー アカウントが作成されます。

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

構成に node localhost を含めることが重要です。 拡張機能ハンドラーは、特に node localhost ステートメントを探します。 このステートメントがない場合、その後のステップは実行されません。 型キャスト [PsCredential] を含めることも重要です。 この特定の型が、資格情報を暗号化するように拡張機能をトリガーします。

このスクリプトを Azure Blob Storage に発行するには、次のコマンドを使用します。

Publish-AzVMDscConfiguration -ConfigurationPath .\user_configuration.ps1

Azure DSC 拡張機能を設定して資格情報を指定するには、次を使用します。

$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

資格情報を保護する方法

このコードを実行すると、資格情報の入力を求められます。 提供された資格情報は、短期間メモリに格納されます。 Set-AzVMDscExtension コマンドレットを使用して資格情報が公開されると、資格情報は HTTPS 経由で VM に送信されます。 VM では、Azure がローカル VM 証明書を使用して、暗号化された資格情報をディスクに格納します。 資格情報はメモリ内で一時的に復号化された後、再暗号化されてから DSC に渡されます。

このプロセスは、拡張機能ハンドラーがない、セキュリティで保護された構成を使用する場合とは異なります。 Azure 環境には、証明書を使用して構成データを安全に送信する機能が用意されています。 そのため、DSC 拡張機能ハンドラーを使用する場合、ConfigurationData$CertificatePath または $CertificateID/ $Thumbprint エントリを指定する必要はありません。

次のステップ