2023-03-06 · 2분
AWS SSM(Systems Manager)— Patch Manager
Patch Manager の役割と対応 OS フリートを整理し、実践では Amazon Linux 2 のカスタムパッチベースライン、メンテナンスウィンドウ、Run Command タスク登録によるスケジュールパッチまで行います。
2023-02-28 · 5분
この記事は公開から2年以上経過しています。

まとめ:今あるものより良いものがあるなら乗り換える!

ユーザーを 1 つ作って Access Key を発行し、AWS CLI に接続済みの状態で進めます。
IAM で EC2 に紐づけるロールを先に作っておきましょう。

上のように設定して Next を押します。ここで EC2 Role for AWS Systems Manager を選択する必要があります。

きちんと進めていれば、特に追加設定なしで AmazonSSMManagedInstanceCore という権限が追加されているのが確認できます。この権限だけあれば OK です。Next を押し、Role name だけ入力して Create Role を押しましょう。
では EC2 に移動してプライベートなインスタンスを 1 つ作ってみます。

EC2 の設定は上のように、キーペアを別途作り、VPC を作って private-a ゾーンに配置し、security groups には 22 番と 3306、80、443 と、Web・DB・SSH 関連の基本的なポートだけ開けておきます。

その後、作った EC2 をクリックして設定に入り、Modify IAM role を押します。

先ほど作った IAM ロールがあるのが確認できます。それを選択して Update IAM Role を押します。
その後テストで SSH 接続を試しても、パブリック IP がないため当然つながりません。かといって Bastion EC2 があるわけでもないので接続は不可能です。
しかしここまできちんと進めていれば、**「aws ssm start-session --target <instances ID>」**と入力すると問題なく接続できるのが確認できます。

アカウントのすべての EC2 インスタンスでデフォルトで AWS Systems Manager を有効化する機能を発表 AWS Systems Manager のお客様は、デフォルトホスト管理構成(DHMC)エージェントを使い、一度の操作で Systems Manager を有効化してアカウントのすべての EC2 インスタンスの権限を構成できるようになりました。 — aws.amazon.com
今回のアップデート(2023-02-17)で、AWS Systems Manager に Default Host Management Configuration(DHMC)という新しい設定が追加されました。
この DHMC は、SSM の Fleet Manager で権限(IAM ロール)を指定する形で設定します。そして SSM Agent がインスタンスプロファイルの代わりに DHMC に設定されたロールから認証情報を取得し、SSM の各種機能を実現する形になります。
簡単に言うと「EC2 プロファイルがないときにフォールバックされるデフォルトルール」のことです。
※ 注意)SSM Agent は Ver.3.2.582.0 以上である必要があります。これ以前の SSM Agent は DHMC をサポートしません。
まず DHMC で構成する IAM ロールを作ります。
AWS の AmazonSSMManagedEC2InstanceDefaultPolicy というポリシーで作ります。このポリシーは元々 AmazonSSMManagedInstanceCore とほぼ同じですが、ssm:getParameter(s) の 2 つのポリシーは許可されていません。
もし EC2 インスタンスから SSM Parameter Store の読み込みもしたい場合は、AmazonSSMManagedInstanceCore ベースでポリシーを作るのがよいです。

SSMManagedEC2InstanceDefaultRole という名前で作ります。Next を押し続けて作成し、作ったロールをクリックして開きます。

SSMManagedEC2InstanceDefaultRole -> Trust relationships -> Edit trust policy を押します。

ec2.amazonaws.com -> ssm.amazonaws.com に変えて Update policy を押します。では DHMC の設定をしに行きましょう。


上の写真のように IAM Role を変更して Configure を押せば DHMC 設定は完了です。次に EC2 を作ります。
EC2 作成時、プロファイルは設定しなくて構いません。インスタンスメタデータ設定は V1 と V2 を使うようにします。そして User-data には以下のコードを入れます。
#!/bin/bash
cd /tmp
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
EC2 Linux インスタンスに Systems Manager Agent をインストール Amazon EC2 Linux インスタンスの起動時に AWS Systems Manager Agent(SSM Agent)をインストールするにはどうすればよいですか?最終更新日:2023 年 1 月 31 日 Amazon Elastic Compute Cloud(Amazon EC2)Linux インスタンスを起動 — aws.amazon.com

IAM Role が設定されていない状態であることが確認できます。

DHMC が有効な場合、この状態でも SSM Host Manager が管理ノードとして認識します。

その後 Session Manager に入って Connect を押すと接続できることが確認できます。上でやったように CLI でも構いません。


yum info amazon-ssm-agent を入力してみると、正しいバージョンが表示されることを確認できました。
原文(韓国語): tistory — 2023-02-28 公開、当ブログへ移行。この翻訳は AI の協力で作成されました。
…