LoginSignup
3
2

More than 3 years have passed since last update.

Proxyサーバを用いるAWS環境でPatch Managerがこける場合の確認事項

Last updated at Posted at 2021-03-30

クマ松です。

Windowsサーバへパッチを適用する為にSystems Managerの一機能Patch Managerを用いている方も多いのでないでしょうか。
インターネットへの通信時にProxyサーバを経由させる環境でPatch Managerが異常終了した場合に、まず確認した方が良いことをご紹介します。

  1. SSM Agent のプロキシ設定(レジストリ)
  2. WinHTTP プロキシの設定
  3. LocalSystemユーザーアカウントのInternet Explorerのプロキシ設定

10.10.10.10:8080というプロキシとポートを利用しているような環境で、コマンドや確認結果を解説します。

SSM Agent のプロキシ設定

SSM Agentのプロキシが設定されているかを確認します。
Environmentにhttp_proxyとno_proxyが設定されていることを確認しましょう。

PS C:\Windows\system32> $serviceKey = "HKLM:\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent"
PS C:\Windows\system32> Get-ItemProperty -Path $serviceKey

Version                          : 3.0.882.0
Environment                      : {http_proxy=10.10.10.10:8080, no_proxy=169.254.169.254}
DependOnService                  : Winmgmt
Type                             : 16
Start                            : 2
ErrorControl                     : 1
ImagePath                        : "C:\Program Files\Amazon\SSM\amazon-ssm-agent.exe"
DisplayName                      : Amazon SSM Agent
ObjectName                       : LocalSystem
Description                      : Amazon SSM Agent
FailureActions                   : {128, 81, 1, 0...}
FailureActionsOnNonCrashFailures : 1
PSPath                           : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AmazonSSMAgent
PSParentPath                     : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
PSChildName                      : AmazonSSMAgent
PSDrive                          : HKLM
PSProvider                       : Microsoft.PowerShell.Core\Registry

WinHTTPプロキシ設定

管理者権限で起動したコマンドプロンプトにて、WinHTTPプロキシの設定を確認します。

netsh winhttp show proxy

現在の WinHTTP プロキシ設定:

    プロキシ サーバー:  10.10.10.10:8080
    バイパス一覧     :  169.254.169.254

LocalSystemユーザーアカウントのInternet Explorerのプロキシ設定

SYSTEMユーザ(アカウントの実際の名前はnt authority/system)はAdministratorsグループのメンバーと同じ権限レベルを持つ強力なユーザです。
Linuxでいうrootユーザに当たりますが、ユーザプロファイル情報を持たないので「SYSTEMユーザのレジストリ設定をSYSTEMユーザでRDP接続して確認」なんてことはできません。

SYSTEMユーザのInternet Explorerのプロキシ設定は以下の手順で確認します。

①Microsoftのサイトから PsTools をダウンロードします
https://docs.microsoft.com/en-us/sysinternals/downloads/psexec
PsTools.png

②ダウンロードしたzipを解凍します

③管理者権限でコマンドプロンプトを起動します
④先ほどzipを解凍して作成されたフォルダへ cd コマンドを使用して移動します
cmd.png

⑤psexec.exe -i -s -d "C:\Program Files\Internet Explorer\iexplore.exe" コマンドを実行します

PsExecの初回起動時のみ、使用許諾(PsExec License Agreement)のダイアログが表示されます。
内容を読んで[Agree]ボタンをクリックします。

pslicense.png

これでIEをSystemユーザ権限で起動することが出来ます。

⑥設定 > インターネットオプション > 接続タブ > LAN の設定 を開きます
IE.png
LANの設定.png

IE設定.png

3点とも問題なかった場合

SSMエージェント・Patch Managerを利用する為に通信が必要な宛先が3つあります。
以下の宛先をプロキシサーバでブロックしていないかを確認します。

  • ssm.ap-northeast-1.amazonaws.com
  • ec2messages.ap-northeast-1.amazonaws.com
  • s3.ap-northeast-1.amazonaws.com

何故WinHTTPとIE設定の両方の設定が必要なのか

IEってブラウザですよね。何かを検索するときにしか利用しないイメージがあります。
IEのプロキシ設定はもちろん IE が通信を行う際に利用されます。
しかし一部のWindowsアプリケーションでは、IEと同様の通信モジュールであるwininet.dllを利用しています。
その場合、IEの設定値を利用してインターネットへ通信しようとします。
IEの設定を参照しないアプリも存在します。

WinHTTPの設定とIEの設定は揃えるのが無難です。
以下のコマンドでIEのプロキシ設定をWinHTTPの設定にインポートし、両方の設定を揃えることが出来ます。

netsh winhttp import proxy source=ie

参考サイト

SSM エージェント が Windows Server インスタンス用にプロキシを使用するように設定する
グループ ポリシーを使用して Windows クライアントに WinHTTP プロキシ設定を適用する
Windows Server EC2インスタンスのプロキシ設定で気を付けるべきこと
IE からみるプロキシの設定について
System Account in Windows

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2