EC2 Systems Managerを利用したWindowsアップデート

みなさんは、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ベースのインスタンスでも利用することができます。上手に利用することで運用コストを削減できますね。