AWS エバンジェリストシリーズ AWSの基礎を学ぼう の 特別編 Systems Managerその1に参加し、AWS Systems Manager (以下、SSM)で Fleet Manager (以下、フリートマネージャー)を触った。
セッションマネージャーは触ったことがあるが、フリートマネージャーについてはあまり知らなかったので、別途調査したことと、ハンズオン後半で躓いたEC2 インスタンスのパフォーマンスカウンター閲覧 (に必要な KMS でのセッション暗号化)について記載する。
1.Fleet とは(自己解釈)
Weblio 英和辞典さんによると
fleet
【名詞】艦隊、海軍、船団、隊、団
【形容詞】速い,快速の.
「サーバーフリート」という言葉はインスタンスセット、インスタンスの集まりを表すようなので、「サーバー群の管理」というような意味である模様。
2.SSM の フリートマネージャー とは
- フリートマネージャーは SSM の機能の一つ
- AWS またはオンプレミスで実行されているノードをリモートで管理
- AWS マネジメントコンソールからサーバーフリート全体の正常性とパフォーマンスステータスを表示
- 個々のノードからデータを収集し、コンソールから一般的なトラブルシューティングと管理タスクを実行
- リモートデスクトッププロトコル (RDP) を使用した Windows インスタンスへの接続、フォルダとファイルのコンテンツの表示、Windows レジストリの管理、オペレーティングシステムのユーザー管理などが可能
2-1.セッションマネージャーとフリートマネージャーの違い
どちらも共に、SSM の機能の一種で、以下の特徴がある。
- SSH ポート 22 や RDP ポート 443 などを開放せずに、サーバをリモートで管理できる
- SSM Agent のインストールが必要
- 管理するサーバ側で SSM にアクセスするための権限(IAM ロール)が必要
- SSM に接続する通信経路の確保が必要
- SSM Agent のインストール・通信経路が確保されていればオンプレミスのサーバも管理できる
以下、軽く触ってみた私の個人的な見解だが
セッションマネージャー
- Windows Server への接続は CUI となる
フリートマネージャー
- Windows Server へ RDP 接続できる
- AWS マネジメントコンソール上で以下情報を参照できる
- (Windows の場合)Windows イベントログ、Windows レジストリ
- パフォーマンスカウンター
- ファイルシステム
- プロセス新規
- ユーザーとグループ
3.使い方
日本語のハンズオンがあるので貼っておく。
3-1.フリートマネージャーで EC2 インスタンスのパフォーマンスカウンターを見る
3-1-1.フリートマネージャーで EC2 インスタンスのパフォーマンスカウンターを見る際の仕組み
-
フリートマネージャーは、セッションマネージャーを使用してパフォーマンスデータを取得する
- つまりセッションマネージャーを利用するための準備が必要
- セッションマネージャーで EC2 インスタンスに接続するための準備
- SSM へのアクセス権限 (
AmazonSSMManagedInstanceCore
) がある IAM ロールをEC2 インスタンスに付与 - SSM (セッションマネージャー) から EC2 インスタンスへの通信経路確保
- 今回は VPC 内のパブリックサブネットに配置した EC2 インスタンスに、Internet Gateway 経由で接続する
- SSM へのアクセス権限 (
3-1-2.なぜ KMS で暗号化するのか?
- フリートマネージャーで EC2 インスタンスのパフォーマンスカウンターを見るには、セッションマネージャーの設定で AWS Key Management Service (AWS KMS) 暗号化が有効化されている必要がある
3-1-3.何を暗号化するのか?
セッションデータの KMS キー暗号化を有効にする (コンソール)を参照すると、「マネージドノードと AWS アカウント内のユーザーのローカルマシン間で送信されるセッションデータが、KMS キー暗号化プログラムで暗号化される」と記載されている。
実際は end-to-end の共通鍵暗号化で、SSM Agent から SSM へのデータの受け渡し通信だけが暗号化されるわけではないとのこと。
(例えば S3 などへの保存も暗号化された状態。セッションマネージャー関連のデータ全般が暗号化されるという感じ)
ちなみに、 AWS クラウド内の通信は、パブリックIP 同士であってもデフォルトで TLS 1.2 暗号化が提供されている。
参考:Q:2 つのインスタンスがパブリック IP アドレスを使用して通信する場合、またはインスタンスがパブリックな AWS のサービスエンドポイントと通信する場合、トラフィックはインターネットを経由しますか?
AWS KMS で作成したキーでセッションデータを暗号化するオプションを使用する場合、SSM SSM Agent バージョン 2.3.539.0 以降がインストールされている必要がある。
KMS キーは EC2 インスタンス側で使えるように、キーユーザーに EC2 インスタンスに付与した IAM ロールを指定しておく。
3-2.フリートマネージャーで EC2 インスタンスに接続する
3-2-1.IAM ロールの作成
- IAM マネジメントコンソールに移動
- ロールを作成
- 信頼されたエンティティタイプ:AWS のサービス
- ユースケース:EC2
- 次へ
- 許可を追加
- 管理ポリシーである
AmazonSSMManagedInstanceCore
をチェック - 次へ
- 管理ポリシーである
- ロール名を指定してロールを作成
3-2-2.EC2 インスタンスの作成(今回は Windows )
- EC2 マネジメントコンソールに移動
- インスタンスを起動
- 名前とタグで任意の名前を記入
- アプリケーションおよび OS イメージ (Amazon マシンイメージ)で Windows を選択
- 任意のキーペアを指定
- ネットワーク設定
- 高度な詳細を展開
- IAM インスタンスプロフィールで「3-2-1.IAM ロールの作成」で作成した IAM ロールを選択する
- インスタンスを起動
3-2-3.SSM フリートマネージャーで接続確認
- SSM マネジメントコンソールに移動
- 画面左のナビゲーションペインでフリートマネージャーを選択
- 起動した Windows Server にチェックを入れ [ノードアクション] - [リモートデスクトップ (RDP) との連携]
- キーペアを選択し、connect
- Windows の GUI が表示される
- フリートマネージャーでは IME 日本語設定しても日本語が入力できない難点がある。手元のローカル端末からコピペすることはできる。
3-3.フリートマネージャーで パフォーマンスカウンターを確認する
3-3-1.KMS 暗号化キーを作成
- KMS マネジメントコンソールに移動
- 画面左のナビゲーションペインでカスタマー管理型のキーを選択し[キーの作成]
- [キーのタイプ][キーの使用]はそのまま次へ
- エイリアスに任意の文字列を入力し次へ
- キー管理者で任意の IAM ユーザを選択し次へ
- キーの使用アクセス許可を定義「3-2-1.IAM ロールの作成」で作成した IAM ロールを選択し次へ
- 完了
3-3-2.セッションマネージャーで暗号化を有効化
- SSM マネジメントコンソールに移動
- 画面左のナビゲーションペインでフリートマネージャーを選択
- 起動した Windows Server のノード ID リンクをクリック
- 「パフォーマンスカウンター」を選択するとエラーになる。エラー内の「セッション設定」をクリックする
- セッションマネージャーの設定画面が開く
- 「KMS encryption」で「Enable KMS encryption」にチェックを入れ、「3-2-5.KMS 暗号化キーを作成」で作成したキーを選択
- 画面下部の「保存」をクリックする
3-3-3.フリートマネージャーで パフォーマンスカウンターを確認する
- SSM マネジメントコンソールに移動
- 画面左のナビゲーションペインでフリートマネージャーを選択
- 起動した Windows Server のノード ID リンクをクリック
- 「パフォーマンスカウンター」を選択すると、パフォーマンスカウンターが確認できるようになっている
参考