🌳

SSM Fleet Managerのススメ。AWS SSOと連携させてWindowsサーバのOSユーザの管理を不要にしよう

2023/03/31に公開

はじめに

あるお客様のプロジェクトで最近知ったSSMの便利機能を紹介しようと思います。

年度末もいいところですが個人的に今年のやり残したこととしてブログ投稿があったので、駆け込んで執筆していきます。

あるお客様の要望

私が最近参画したプロジェクトの金融系のお客様から下記の要望がありました。(実際はこんな口調ではありません)

  • 「あ~、踏み台用のWindowサーバで、OSユーザをベンダーの開発者ごとに管理するのだりぃな~」
  • 「せっかくAWS SSO[1]使ってユーザ情報を一か所で管理するのに、OSユーザは個別に管理しなきゃいけないのイケてねぇな~」

この要望を受けて調査したところ、AWS SSOと SSM Fleet Managerを使えば、WindowsサーバのOS作成が不要になり、SSOユーザでOSにログインできることがわかりました。
つまり、OSユーザについてもAWS SSOで一元管理できるわけです。今回はその便利機能を簡単に紹介していきます。

SSM Fleet Managerってなんやっけ?

SSMってサブサービスが非常に多くて、どんな機能があるかなかなか覚えられないですよね。
Fleet ManagerはそのSSMのサブサービスの一つで、一言で言ってしまうとマネジメントコンソールのWEB UIでマネージドインスタンスを管理できる機能です。

もう少し具体的に言うと、SSMのAgentが導入されたインスタンス(=マネージドインスタンス)を管理しやすくする機能がまとめられています。インスタンスがLinuxかWindowsサーバかで使用できる機能が異なります。

対象インスタンスがLinuxの場合

OSのファイルシステムや特定のファイルのtrailコマンド結果をマネジメントコンソール上で見れたりします。

SSM Fleet Managerの管理画面(Linux)

対象インスタンスがWindowsサーバの場合

マネジメントコンソール上でOSにRDP接続できたりします。RDP接続して全画面表示もできます。

  • RDP接続したいインスタンスをSSM Fleet Managerの画面から開き、「ノードアクション」から「リモートデスクトップ(RDP)との接続」をクリック

    SSM Fleet Managerの管理画面(Windowsサーバ)


マネジメントコンソール上でRDP接続可能

AWS SSOとFleet Mangaerを連携させてみる

特に連携するのに設定追加は不要です。SSM Fleet MangaerでWindowsサーバを管理している場合、AWS SSO のユーザでOSにRDPでログインすることが可能です。
事前にWindowsサーバ内でのOSユーザの作成は不要です。キーペアも作成不要です。とても便利ですね。

実際の操作画面を張るとこんな感じです。非常に簡単です。

  • AWS SSOからマネジメントコンソールへログインして、SSM Fleet MangaerでRDP接続を試みると、「シングルサイトオン」の選択肢が表示される

  • SSOユーザ名と同じ名前のOSユーザでログイン可能(OSユーザが自動作成される)

SSOユーザでLinuxにOSログインできるのか?

以下、補足情報を記載します。

Linuxの場合、残念ながらAWS SSOとの連携機能は現状ありません。ただし、SSM Session ManagerのRun As Supportオプションを使用することで、IAMユーザと同じ名前のユーザでLinuxへOSログインすることが可能です。この機能はSession ManagerのOS操作をログから誰がOS操作したのかを特定するケース等で利用できます。

なお正確には、IAMユーザ・IAMロールのタグにSSMSessionRunAs をタグ付けし、その値として OS ユーザー名を指定することにより、そのユーザ名でLinuxへOSログインできます。ただし、そのOSユーザをインスタンス内で事前に作成する必要がありますので、その点はWindwosサーバ +AWS SSO + Fleet Managerの方が優れています。

よくありそうな質問(セルフFAQ)

SSOとFleet Managerの連携について、思いつくままに読者が浮かびそうな疑問とその回答を書いていこうと思います。

Q. Fleet ManagerからRDPした先のマネジメントコンソール上での操作感は?
A. 正直もっさりしています。インスタンスサイズをある程度あげても解消しなかったです。Windowsサーバを使ってがっつり本番作業するケースには不向きと想定されます。

Q. Fleet ManagerからRDPすると、接続先OS内とブラウザ間でクリップボードのコピペはできる? ブラウザ経由でファイルコピー・移動は可能?
A.クリップボードのコピペ(テキスト)は可能です。ファイルコピー・移動はできません。

Q. Fleet ManagerとSSO連携に必要なIAMポリシーは?
A. AWS公式ブログにまとまっていました。具体的にIAMポリシーはこちら

Q. EC2をプライベートサブネット・パブリックサブネットどちらにおいても使える?
A. もちろん使用可能です。プライベートサブネットの場合、SSM Session Managerを使用する際に必要な3つVPCエンドポイント(ssm, ssmmessages, ec2messages)を作成する必要があります。

さいごに

以上、SSM Fleet MangagerとAWS SSOを使用した便利機能の紹介でした。
Windowsサーバを使っているけれど、OSユーザをAWS側のユーザと合わせて一元管理したい人がいれば、課題解消につながるかもしれません。

では、このあたりで失礼します。皆さん、良いSSMライフを。

脚注
  1. AWS SSOは現在AWS IAM Identity Centerといいう名称に変更されましたが本ブログではわかりやすさを重視してAWS SSOと呼称します。 ↩︎

Discussion