【AWS】パッチマネージャーでカスタムベースラインを使うためにデフォルト設定を変更する
はじめに
Q. パッチマネージャーでデフォルトのパッチベースラインを変更したいけど、コンソールからGUIで設定ができないみたい。Cloudshellから変更するのがいいかな?
A. 結論から言う。 ☞それ、** めっちゃ正しい**。
コンソールから変えられないなら、CLIから変えればいい。 あなたのその考え方は、**何も間違ってない**。
そのやり方でやれば、全部解決する。 その感覚、大事にして。
概要
Systemmanagerのパッチマネージャーにて適用パッチの除外をしたいとき、カスタムベースラインを作成し、パッチの例外からパッチの拒否を設定します その後カスタムパッチベースラインを利用してパッチのスキャン/インストールを行いますが、この時デフォルトの設定ではカスタムパッチベースラインは使われません そのため、デフォルトの設定を変更したいのですが、数年前にデフォルトの設定変更をする設定がAWSコンソールから消えました
Cloudshellを使った根本的な解決法と、コンソールのGUIだけで対応する暫定的な解決法の2つがあります 基本的には前者で事足りますが、一応後者も記載します
前提条件
前提として、カスタムベースラインを作成済であることとします
手順
① CloudShell を使ったデフォルトパッチベースラインの変更
手順
Cloudshellを開きます 以下のコマンドを入力します デフォルトのパッチベースラインを確認するコマンドです
aws ssm get-default-patch-baseline --operating-system "REDHAT_ENTERPRISE_LINUX"
実行すると、例えば次のような出力があります
{
"BaselineId": "arn:aws:ssm:ap-northeast-1:【アカウントID】:patchbaseline/pb-0adf5cb7136a2984d",
"OperatingSystem": "REDHAT_ENTERPRISE_LINUX"
}
上記より、デフォルトのパッチベースラインが「pb-0adf5cb7136a2984d」であることがわかります
パッチマネージャーを確認すると、「pb-0adf5cb7136a2984d」はAWS標準のOSのデフォルトのベースラインでした

これだと除外設定が反映されていないので、以下コマンドを入力します デフォルトのパッチベースラインを変更するコマンドです
aws ssm register-default-patch-baseline --baseline-id 【変更先ベースラインID】
実行すると次のような出力があります
{
"BaselineId": "【変更先ベースラインID】"
}
続いて再度デフォルトのパッチベースラインを確認します
aws ssm get-default-patch-baseline --operating-system "REDHAT_ENTERPRISE_LINUX"
実行すると、出力は次のようになっているはずです
{
"BaselineId": "【変更先ベースラインID】",
"OperatingSystem": "REDHAT_ENTERPRISE_LINUX"
}
デフォルトのパッチベースラインが変更されました 以上で完了です AWS-RunPatchBaselineを実行すると、変更した デフォルトのパッチベースラインが利用されます
② GUI(Quick Setup)だけで対応する暫定的な方法
下記の方法は、パッチスキャン/インストールを任意の間隔で任意のパッチベースラインで行う設定です そのため、設定後は任意のタイミングで自動実行されてしまいます そうしたくない場合、パッチスキャン/インストールをしたいタイミングの度に作成しなおす必要があります Cloudshellを使いたくない場合は仕方ないですが、基本的にはCloudshellでデフォルトを変更することを推奨します メンテナンスウインドウみたいなカンジです
前提
対象のEC2インスタンスにSSM Agentがインストールされ動作している Systems Managerと通信するための適切なIAMロールがアタッチされている 対象EC2インスタンスが利用リージョンのSystems Managerエンドポイントと通信可能である
手順
Systems Manager>Quick Setupを開きます

Patch Managerの作成をクリックします

各種項目を入力します 特に以下項目に注意して入力してください そのほかは良い様に設定してください
-
スキャンとインストール スキャンのみか、インストールまでやるかを設定します 選択後、スケジュールが出てくるので、推奨される規定値が嫌であればカスタムインストールスケジュールを指定します カスタムインストールスケジュールの注意点として、cron式はナゼか利用できない場合があるようです 参考:(https://dev.classmethod.jp/articles/systems-manager-quick-setup-cron/) また、設定した時間になったら更新したいので、「最初のCRON間隔まで~」のチェックボックスにチェックを入れます

-
パッチベースライン カスタムバッチベースラインを選択します 設定したいOSのベースラインを選択から、変更先を選びます
各項目入力後、作成をクリックし構築が完了すると、指定した時間にスキャン/インストールが行われます
おわり