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 の設定の詳細については、Windows インスタンス用 Amazon EC2 ユーザーガイドの「EC2Config サービスのプロキシ設定の構成」を参照してください。
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 がプロキシを使用するように設定するには
-
リモートデスクトップまたは Windows PowerShell を使用して、プロキシを使用するように設定するインスタンスに接続します。
-
PowerShell で次のコマンドブロックを実行します。
hostname
とport
を、プロキシの情報に置き換えます。$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 のプロキシ設定をリセットするには
-
リモートデスクトップまたは Windows PowerShell を使用して、設定先のインスタンスに接続します。
-
リモートデスクトップを使用して接続した場合は、管理者として PowerShell を起動します。
-
PowerShell で次のコマンドブロックを実行します。
Remove-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent -Name Environment Restart-Service AmazonSSMAgent
SSM Agent プロキシ設定の優先順位
Windows Server インスタンスで SSM Agent のプロキシ設定を構成する場合、SSM Agent の起動時にこれらの設定が評価され、エージェント構成に適用されることを理解することが重要です。Windows Server インスタンスのプロキシ設定を構成する方法によって、他の設定が目的の設定よりも優先されるかどうかを決定できます。
SSM Agent は、HTTPS プロトコルを使用して通信します。このため、次の設定オプションのいずれかを使用して HTTPS proxy
パラメータを設定する必要があります。
SSM Agent プロキシ設定は、次の順序で評価されます。
-
AmazonSSMAGent レジストリ設定 (
HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent
) -
システム環境変数 (http_proxy、https_proxy、no_proxy)
-
LocalSystem ユーザーアカウントの環境変数 (http_proxy、https_proxy、no_proxy)
-
Internet Explorer の設定 (HTTP、セキュア、例外)
-
WinHTTP プロキシ設定 (http=、https=、bypass-list=)
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 を使用してコマンドを実行」を参照してください。