
【第7回】AWS Systems Manager攻略マニュアル「Fleet Manager 導入方法、権限まとめ」
Ops Todayでは「面倒なAWSシステム運用を効率化しよう!」をテーマに、AWSリソースを含むシステムの運用をする際に便利なサービス「AWS Systems Manager」に関する記事を複数回にわたってご紹介しています。(記事一覧はこちら)
今回は、Fleet Managerの概要と導入、権限について解説します。
Fleet Managerとは
Fleet Managerは、AWS またはオンプレミスやマルチクラウドで稼働するマネージドノードをリモート管理できる機能です。Fleet Managerでは、具体的に次のようなことを実現できます。
マネージドノードステータス
マネージドインスタンスの実行ステータスやSSMエージェントのpingステータス、バージョン情報などを一覧表示して可視化できます。
インスタンス情報の表示
マネージドノードにアタッチされたボリュームに保存されているフォルダおよびファイルのデータ、パフォーマンスデータ、ログデータに関する情報をリアルタイムで表示できます。
アカウントとレジストリの管理
マネージドノードのOSユーザーアカウントとWindowsマシンのレジストリを管理します。
機能単位のアクセス制御
IAMポリシーを使用して、Fleet Manager 機能へのアクセスを制御できます。Fleet Managerの各種機能について使用権限を設定し、ユーザーまたは組織単位で権限を制御できます。
Red Hat ナレッジベース・ポータルへのアクセス
Red Hat Enterprise Linux (RHEL) インスタンスから Red Hat Knowledgebase Portal のバイナリ、ナレッジシェア、ディスカッションフォーラムにアクセスできます。
IoTエッジデバイス情報の表示
IoTエッジデバイスについて、AWS IoT Greengrass Thing名、SSMエージェントのpingステータス、バージョン情報などを表示できます。
これらFleet Managerの機能を利用することで、マネージドノードに手動で接続することなく、一般的なシステム管理タスクを実施することができます。マネージドノードがWindowsであろうとLinuxであろうと、Iotエッジデバイスであろうと、1つの統合コンソールから一元的にノード管理できるため、ノード運用の効率化を図れます。
Fleet Managerの導入方法
前提条件
Fleet Managerは次の前提条件を満たせば使い始めることができます。
- マネージドノードであること(SSMエージェントをインストールしていること)
- Fleet Managerを使用するユーザーに必要な権限が付与されていること
SSMエージェントをインストールする手順、オンプレミスマシンをマネージドノードとして構成する手順は、別記事「AWS Systems Managerにマネージドノードを追加しよう!」にまとめていますので、ご参考ください。前提条件については、Fleet Managerを利用するために必要な権限設定についてのみ解説することとします。
Fleet Managerの利用に必要な権限
Fleet Manager を使用するには、IAMユーザーまたはIAMロールの権限設定が必要です。Fleet Manager の全機能へのアクセスを提供する IAM ポリシーを作成するか、ポリシーを変更して選択した機能へのアクセスを許可することができます。
AWS Systems ManagerのユーザーガイドではサンプルIAMポリシーも公開されており、そのままコピー&ペーストして作成したIAMポリシーをIAMユーザーやIAMロールに適用することで、FleetManagerに対して機能単位でアクセス制御できます。
ただ、このサンプルに関する具体的な説明は無いので、簡単にまとめたいと思います。
アクション
アクションは、IAMポリシーステートメントのAction要素に該当し、操作を行うAPIやCLIコマンドへのアクセスを制御します。FleetManagerコンソールを起動した際に、マネージドノードの情報を取得して表示するのもアクションによるものです。
1つのアクションにつき複数のAPIへのアクセス、あるいは1つのAPIにつき複数のアクションを必要とする場合があり、細かい制御は困難だと思います。
そこで、ユーザーガイドのサンプルと同じ内容となりますが、FleetManagerに関しては、次の読み取りアクションに関する制御をIAMポリシーステートメントに記述すれば良いでしょう。
次のアクションを、IAMポリシーステートメントのGeneralブロックにおけるActionに記述して許可してください。
アクション名 | 概要 |
---|---|
DescribeInstanceAssociationsStatus | 指定したインスタンスの関連付けのステータスを表示する許可を付与 |
DescribeInstancePatches | 指定したインスタンスのパッチに関する全般的な詳細を表示する許可を付与 |
DescribeInstancePatchStates | 指定したインスタンスのパッチに関するステータスの詳細を表示する許可を付与 |
DescribeInstanceProperties | マネージドインスタンスのノードをレンダリングするアクセス許可をユーザーの Amazon EC2コンソールに付与します |
GetCommandInvocation | 指定した呼び出しまたはプラグインのコマンド実行に関する詳細を表示する許可を付与 |
GetServiceSetting | AWS サービスのアカウントレベルの設定を表示する許可を付与 |
GetInventorySchema | 指定したインベントリ項目タイプのインベントリタイプまたは属性名のリストを表示する許可を付与 |
ListComplianceItems | 指定したリソース上の指定したリソースタイプに対するコンプライアンスステータスを一覧表示する許可を付与 |
ListInventoryEntries | 指定したインスタンスの指定したインベントリタイプのリストを表示する許可を付与 |
ListTagsForResource | 指定したリソースのリソースタグのリストを表示する許可を付与 |
ListCommandInvocations | 指定したインスタンスに送信されたコマンド呼び出しに関する情報を一覧表示する許可を付与 |
ListAssociations | 指定されたSSMドキュメントまたはマネージドインスタンスの関連付けを一覧表示する許可を付与 |
※上記に加えて、EC2ブロックで「DescribeInstances」、「DescribeTags」を許可する必要があります。
また、後述するタグの追加/削除機能を利用する場合は、次のアクションを追加します。
アクション名 | 概要 |
---|---|
AddTagsToResource | 指定された AWS リソースの 1 つ以上のタグを追加または上書きする許可を付与 |
RemoveTagsFromResource | 指定したリソースから指定したタグキーを削除する許可を付与 |
※上記に加えて、EC2ブロックで「CreateTags」、「DeleteTags」を許可する必要があります。
SSMドキュメント
SSM ドキュメント(AWS Systems Manager ドキュメント)は、Systems Manager がマネージドインスタンスで実行するアクションを定義したドキュメントです。Systems Manager には、事前設定済みのドキュメントが約680個ほど用意されています(2025年1月時点)。
IAMポリシーステートメントのSendCommandにおけるResourceブロックにて、SSMドキュメントを記述することで、機能単位でのアクセス制御が可能です。
Fleet Managerには、次の機能が用意されています。
- マネージドノードへの接続(ターミナル、リモートデスクトップ)
- ファイルシステムの管理(フォルダやファイルの作成、変更、削除)
- パフォーマンス情報の参照(CPU、メモリ、ディスクIO、ネットワークトラフィック等)
- プロセス管理(プロセスの開始、終了)
- ユーザーおよびグループ管理(ユーザーやグループの作成、変更、削除)
- Windowsイベントログ管理
- Windowsレジストリ管理(キーやエントリの作成、変更、削除)
これら機能の詳細については、別記事「Fleet Manager実践編」の「Fleet Managerで用意されているツール」をご参照ください。
これらの機能を利用するのに、SSMドキュメントによるIAMユーザーやIAMロール単位でのアクセス制御が可能です。Fleet Manager の運用ポリシーを設計したうえで、SSMドキュメントによる適切な権限制御を行えば、セキュリティ性や信頼性の高いクラウド運用を実現できます。
以下は、Fleet Managerと関連するSSMドキュメントの一覧です。「読み取り権限」の列に○が付いているもののみ許可すれば、設定値の変更を許可しないIAMポリシーステートメントを作ることができます。
SSMドキュメント名 | 概要 | 読み取り権限 |
---|---|---|
AWSFleetManager-AddUsersToGroups | 指定されたすべてのグループにユーザーのリストを追加します | |
AWSFleetManager-CopyFileSystemItem | ローカルのファイルまたはディレクトリをコピーします | |
AWSFleetManager-CreateDirectory | 指定されたパスにディレクトリを作成します。 | |
AWSFleetManager-CreateGroup | ローカルグループを作成します。 | |
AWSFleetManager-CreateUser | ローカルユーザーアカウントを作成します。 | |
AWSFleetManager-CreateUserInteractive | インタラクティブ(対話形式的)にローカルユーザーアカウントを作成します。 | |
AWSFleetManager-CreateWindowsRegistryKey | Windowsレジストリキーを作成します。 | |
AWSFleetManager-DeleteFileSystemItem | ローカルのファイルまたはディレクトリを削除します。 | |
AWSFleetManager-DeleteGroup | ローカルグループを削除します。 | |
AWSFleetManager-DeleteUser | ローカルユーザーアカウントを削除します。 | |
AWSFleetManager-DeleteWindowsRegistryKey | Windowsレジストリキーを削除します。 | |
AWSFleetManager-DeleteWindowsRegistryValue | Windowsレジストリの値を削除します。 | |
AWSFleetManager-GetDiskInformation | 接続されているEBSボリュームのディスク情報を取得します。 | ○ |
AWSFleetManager-GetFileContent | ファイルの内容を取得します。 | ○ |
AWSFleetManager-GetFileSystemContent | ユーザーアカウント関連のアクションを実行します。 | ○ |
AWSFleetManager-GetGroups | ローカルグループに対して読み取り操作を行います。 | ○ |
AWSFleetManager-GetPerformanceCounters | パフォーマンスカウンタ情報を取得します。 | ○ |
AWSFleetManager-GetUsers | プロセスの詳細情報を取得します。 | ○ |
AWSFleetManager-GetUsers | ローカルユーザーアカウントに対する読み取り操作を実行します。 | ○ |
AWSFleetManager-GetWindowsEvents | Windows イベントログの一覧を表示します。 | ○ |
AWSFleetManager-GetWindowsRegistryContent | デフォルトのWindowsレジストリビューを使用して、Windows レジストリの表示およびナビゲーション関連の操作を実行します。 | ○ |
AWSFleetManager-MountVolume | ボリュームディスクを初期化し、使用可能なパーティションを作成することで、指定されたEBSボリュームをマウントします。 | |
AWSFleetManager-MoveFileSystemItem | ローカルのファイルまたはディレクトリを移動します。 | |
AWSFleetManager-RemoveUsersFromGroups | 指定されたすべてのグループからユーザーのリストを削除します。 | |
AWSFleetManager-RenameFileSystemItem | ローカルファイルまたはディレクトリの名前を変更します。 | |
AWSFleetManager-SetWindowsRegistryValue | Windowsレジストリの値を設定します。 | |
AWSFleetManager-StartGUIConnection | ポート転送によるGUI接続を開始します。 | |
AWSFleetManager-StartProcess | プロセスを開始します。 | |
AWSFleetManager-TerminateProcess | プロセスまたはプロセスツリーを終了します。 |
さいごに
今回は「AWS Systems Managerフル攻略マニュアル」の第7回ということで、FleetManagerの機能概要と権限設定について解説しました。
こちらの別記事「Fleet Manager実践編」では、FleetManagerの機能をいろいろと使ってみます。是非とも合わせて参考にしてください。