SSM Agent が Windows Server インスタンス用にプロキシを使用するように設定する - AWS Systems Manager

SSM Agent が Windows Server インスタンス用にプロキシを使用するように設定する

このトピックの情報は、2016 年 11 月以降に作成された、Nano インストールオプションを使用しない Windows Server インスタンスに該当します。

インスタンスが 2016 年 11 月より前に作成された Windows Server 2008-2012 R2 インスタンスである場合は、EC2Config でインスタンスの AWS Systems Manager リクエストが処理されます。既存のインスタンスをアップグレードして最新バージョンの EC2Config を使用することをお勧めします。最新の EC2Config インストーラーを使用すると、EC2Config と一緒に AWS Systems Manager Agent (SSM Agent) もインストールされます。このサイドバイサイドバージョンの SSM Agent は、以前の Windows Amazon Machine Images (AMIs) から作成されたインスタンスと互換性があり、2016 年 11 月より後に公開された Systems Manager の機能を使用できます。EC2Config サービスの最新バージョンをインストールする方法の詳細については、Windows インスタンス用の Amazon EC2 ユーザーガイドの「EC2Config の最新バージョンのインストール」を参照してください。EC2Config の最新バージョンにアップグレードせず、EC2Config を使用して Systems Manager リクエストを処理する場合は、EC2Config のプロキシ設定を構成します。プロキシを使用するための EC2Config の設定の詳細については、「EC2Config Service サービスのプロキシ設定の構成」を参照してください。

注記

2020 年 1 月 14 日以降、Windows Server 2008 は Microsoft の機能更新プログラムまたはセキュリティ更新プログラムでサポートされなくなりました。Windows Server 2008 および 2008 R2 のレガシー Amazon Machine Images (AMIs) には、依然としてバージョン 2 の SSM Agent がプリインストールされていますが、Systems Manager は 2008 バージョンを正式にサポートしなくなり、これらのバージョンの Windows Server のエージェントを更新しなくなりました。さらに、SSM Agent バージョン 3.0 は、Windows Server 2008 および 2008 R2 のいずれのオペレーションとも互換性がない場合があります。Windows Server 2008 バージョンでサポートされている SSM Agent の最後の正式なバージョンは 2.3.1644.0 です。

SSM Agent がプロキシを使用するように設定するには

  1. リモートデスクトップまたは Windows PowerShell を使用して、プロキシを使用するように設定するインスタンスに接続します。

  2. PowerShell で次のコマンドブロックを実行します。hostnameport を、プロキシの情報に置き換えます。

    $serviceKey = "HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent" $keyInfo = (Get-Item -Path $serviceKey).GetValue("Environment") $proxyVariables = @("http_proxy=hostname:port", "https_proxy=hostname:port", "no_proxy=169.254.169.254") If($keyInfo -eq $null) { New-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables -PropertyType MultiString -Force } else { Set-ItemProperty -Path $serviceKey -Name Environment -Value $proxyVariables } Restart-Service AmazonSSMAgent

上記のコマンドを実行した後、SSM Agent ログを確認すると、プロキシ設定が適用されたことを確認できます。ログのエントリは次のようになります。SSM Agent ログの詳細については、「SSM Agent ログの表示」を参照してください。

2020-02-24 15:31:54 INFO Getting IE proxy configuration for current user: The operation completed successfully.
2020-02-24 15:31:54 INFO Getting WinHTTP proxy default configuration: The operation completed successfully.
2020-02-24 15:31:54 INFO Proxy environment variables:
2020-02-24 15:31:54 INFO http_proxy: hostname:port
2020-02-24 15:31:54 INFO https_proxy: hostname:port
2020-02-24 15:31:54 INFO no_proxy: 169.254.169.254
2020-02-24 15:31:54 INFO Starting Agent: amazon-ssm-agent - v2.3.871.0
2020-02-24 15:31:54 INFO OS: windows, Arch: amd64

SSM Agent のプロキシ設定をリセットするには

  1. リモートデスクトップまたは Windows PowerShell を使用して、設定先のインスタンスに接続します。

  2. リモートデスクトップを使用して接続した場合は、管理者として PowerShell を起動します。

  3. PowerShell で次のコマンドブロックを実行します。

    Remove-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent -Name Environment Restart-Service AmazonSSMAgent

SSM Agent プロキシ設定の優先順位

SSM Agent インスタンスで Windows Server のプロキシ設定を構成する場合、SSM Agent の起動時にこれらの設定が評価され、エージェント構成に適用されることを理解することが重要です。Windows Server インスタンスのプロキシ設定を構成する方法によって、他の設定が目的の設定よりも優先されるかどうかを判断できます。SSM Agent プロキシ設定は、次の順序で評価されます。

  1. AmazonSSMAGent レジストリ設定 (HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent)

  2. システム環境変数 (http_proxy、https_proxy、no_proxy)

  3. LocalSystem ユーザーアカウントの環境変数 (http_proxy、https_proxy、no_proxy)

  4. Internet Explorer の設定

  5. WinHTTP プロキシの設定

SSM Agent プロキシ設定とSystems Manager サービス

プロキシを使用するように SSM Agent を設定し、 インスタンスでの実行時に PowerShell や Windows Update クライアントを使用する AWS Systems Manager の機能 (Run Command や Patch Manager など) を使う場合は、Windows Server追加のプロキシ設定を行います。そうしないと、プロキシ設定が PowerShell や Windows Update クライアントによって使用され、SSM Agent プロキシ設定から継承されないため、オペレーションが失敗する可能性があります。

Run Command の場合は、Windows Server インスタンスで WinINet プロキシ設定を行います。指定される [System.Net.WebRequest] コマンドはセッション単位です。これらの設定を Run Command で実行する後続のネットワークコマンドに適用するには、同じ aws:runPowershellScript プラグイン入力内の他の Powershell コマンドの前にこのようなコマンドを指定する必要があります。

次の PowerShell コマンドでは、現在の WinINet プロキシ設定を返し、プロキシ設定を WinINet に適用します。

[System.Net.WebRequest]::DefaultWebProxy $proxyServer = "http://hostname:port" $proxyBypass = "169.254.169.254" $WebProxy = New-Object System.Net.WebProxy($proxyServer,$true,$proxyBypass) [System.Net.WebRequest]::DefaultWebProxy = $WebProxy

Patch Manager の場合は、Windows Update クライアントが更新をスキャンしてダウンロードできるように、システム全体のプロキシ設定を行います。次のコマンドは SYSTEM アカウントで実行され、設定がシステム全体に適用されるため、Run Command を使用して実行することをお勧めします。次の netsh コマンドでは、現在のプロキシ設定を返し、プロキシ設定をローカルシステムに適用します。

netsh winhttp show proxy netsh winhttp set proxy proxy-server="hostname:port" bypass-list="169.254.169.254"

Run Command の使用の詳細については、「Systems Manager Run Command を使用してコマンドを実行する」を参照してください。