みなさんは、Windowsサーバのパッチ適用はどのように対応していますでしょうか。 今回はEC2 Systems Managerを利用したAWS上のWindowsサーバへのパッチ適用方法をご紹介します。
目次
ロール作成
ロールは2つ作成します。 ・Systems Managerで管理するためのIAMロール ・メンテナンスウィンドウへのアクセス用IAMロール
まずは、Systems Managerで管理するためのIAMロールを作成します。 このIAMロールには[AmazonEC2ROleforSSM]のポリシーを割り当てておきます。
次にメンテナンスウィンドウへのアクセス用のロールを作成します。
このIAMロールには[AmazonSSMMaintenanceWindowRole]のポリシーを割り当てておきます。 これは後でパッチ適用するためのタスクで使用します。
このロールは作成した後に、[信頼関係]を編集します。
"ssm.amazonaws.com"を追加します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "ec2.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
EC2インスタンスへの割り当て
作成したIAMロールをEC2インスタンスに割り当てます。 今回割り当てるのは[AmazonEC2ROleforSSM]ポリシーを割り当てたほうです。
マネージドインスタンスで確認
マネージドインスタンスから見えてることを確認します。
パッチベースラインの作成
ここからパッチを適用する設定をしていきます。 今回はWindowsServer2012R2を利用しているので、製品でも同じものを指定しています。 とりあえず、分類や重要度はAllです。
パッチベースラインの作成ができました。 タグを利用してパッチグループを作成します。ここで作成したパッチグループ名を後で、EC2インスタンスのタグに使います。(値として)
EC2インスタスンスにタグを追加します。 キー名は[Patch Group]にします。値は先に作成したパッチグループ名を指定します。
メンテナンスウィンドウの設定
パッチをあてるスケジュールをメンテナンスウィンドウで作成していきます。 今回はCRON/Rate 式で設定しています。時間はutcでの指定になるので、間違えないでください。
追加したらメンテナンスウィンドウのターゲットとしてさっきのEC2インスタンスを登録します。
タスクを登録していきます。 Command Documentでは、 [AWS-ApplyPatchBaseline]を指定 Roleは最初に作成したRoleを指定
Operationですが、今回はインストールまで実施したいので[install]を選択しておきます。
実行確認
指定した時間がきたら実行されているか確認しましょう。
履歴タブから実行されているか分かります。
しばらくすると完了します。
Windows サーバで確認すると、更新プログラムがインストールされていることが確認できると思います。 Windowsだけでなく、幾つかのLinuxベースのインスタンスでも利用することができます。上手に利用することで運用コストを削減できますね。