SSM Agent が Windows Server インスタンス用にプロキシを使用するように設定する
このトピックの情報は、2016 年 11 月以降に作成された、Nano インストールオプションを使用しない Windows Server インスタンスに該当します。Session Manager を使用する予定の場合は、HTTPS プロキシサーバーはサポートされていないことに注意してください。
注記
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 は、Windows Server 2008 および 2008 R2 のいずれのオペレーションとも互換性がない場合があります。Windows Server 2008 バージョンで正式にサポートされている最後の SSM Agent のバージョンは 2.3.1644.0 です。
開始する前に
SSM Agent がプロキシを使用するように設定する前に、以下の重要な情報に注意してください。
次の手順ではコマンドを実行し、SSM Agent がプロキシを使用するように設定します。コマンドには、IP アドレスを含む no_proxy
設定が含まれています。この IP アドレスは、Systems Manager のインスタンスメタデータサービス (IMDS) エンドポイントです。no_proxy
を指定しない場合、Systems Manager への呼び出しによってプロキシサービスからアイデンティティを引き受けるか (IMDSv1 フォールバックが有効の場合)、Systems Manager への呼び出しが失敗します (IMDSv2 が強制されている場合)。
-
IPv4 の場合は、
no_proxy=169.254.169.254
を指定します。 -
IPv6 の場合は、
no_proxy=[fd00:ec2::254]
を指定します。インスタンスメタデータサービスの IPv6 アドレスは、IMDSv2 コマンドと互換性があります。IPv6 アドレスは、AWS Nitro System 上に構築されたインスタンスでのみアクセス可能です。詳細については、「Amazon EC2 ユーザーガイド」の「インスタンスメタデータサービスバージョン 2 の仕組み」を参照してください。
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=IP address for instance metadata services (IMDS)
") 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:IP address for instance metadata services (IMDS)
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
、secure
、exceptions
) -
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 の使用の詳細については、「AWS Systems Manager Run Command」を参照してください。