1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Systems Manager Fleet ManagerでRDPとファイル操作を制限するIAMポリシーの設定方法について

1
Posted at

はじめに

AWS Systems Manager のFleet Managerは、ブラウザ経由でサーバーのファイルシステムを操作したり、RDP接続ができたりと非常に便利なサービスです。
しかし、便利であるが故に、色々なことができてしまうため、実際の運用の際には機能を制限する必要がありましたので、今回はその方法について記事にしたいと思います。

今回は、IAMポリシーを使って、Fleet Managerの特定機能(RDP・ファイル操作)を「Deny(拒否)」する方法について解説します。

前提

以下の環境が整っていることとします。
・マネージドインスタンス化:対象のEC2にSSM Agentが導入され、Systems Managerから操作可能な状態(マネージドインスタンス)であること。
・Windows OS: 本記事で紹介するRDP制限などは、Windows Serverを対象としています。
・IAM権限: 作業者がIAMポリシーを作成し、ユーザーやロールにアタッチできる権限を持っていること。

条件

本記事ではFleet Managerの以下の機能について制限をかけます
・GUI機能
・ファイルシステム機能(表示/コピー/削除/フォルダの作成を制限)

作成したポリシー

上記の条件を基に、以下のポリシーを作成しました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "ssm-guiconnect:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ssm:SendCommand",
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:document/AWSFleetManager-GetFileSystemContent",
                "arn:aws:ssm:*:*:document/AWSFleetManager-GetFileContent",
                "arn:aws:ssm:*:*:document/AWSFleetManager-CopyFileSystemItem",
                "arn:aws:ssm:*:*:document/AWSFleetManager-CreateDirectory",
                "arn:aws:ssm:*:*:document/AWSFleetManager-DeleteFileSystemItem"
            ]
        }
    ]
}

こちらの内容について解説していきます。

RDP機能の拒否

"Effect": "Deny",
    "Action": ["ssm-guiconnect:*"],
    "Resource": "*"

この部分では、Fleet Managerの「リモートデスクトップ」機能を対象として、WindowsインスタンスにGUIでログインする操作を拒否しています。
「ssm-guiconnect」 はFleet ManagerがRDP接続を確立するために使用するアクションになりますので、これを拒否することで、Fleet Managerを使ってのRDPはできなくなります。

ポリシー適用後、実際の画面ではこのようになります。
スクリーンショット RDP_NG.png

「ssm-guiconnect:StartConnection を実行する権限がありません」としてRDPが拒否されているのが分かります。

の 「リモートデスクトップの IAM 許可の設定」を参照

ファイルシステムの拒否

{
    "Effect": "Deny",
    "Action": ["ssm:SendCommand", "ssm:StartSession"],
    "Resource": [
                "arn:aws:ssm:*:*:document/AWSFleetManager-GetFileSystemContent",
                "arn:aws:ssm:*:*:document/AWSFleetManager-GetFileContent",
                "arn:aws:ssm:*:*:document/AWSFleetManager-CopyFileSystemItem",
                "arn:aws:ssm:*:*:document/AWSFleetManager-CreateDirectory",
                "arn:aws:ssm:*:*:document/AWSFleetManager-DeleteFileSystemItem"
        ...(以下略)

この部分では「ssm:SendCommand」と「ssm:StartSession」を拒否することで以下の実行をできないようにしています。
・GetFileSystemContent: フォルダ一覧の表示
・GetFileContent: ファイルを開く・内容の閲覧
・CopyFileSystemItem: ファイルのコピー・移動
・CreateDirectory: 新規フォルダの作成
・DeleteFileSystemItem: ファイルやフォルダの削除

このポリシーを特定のユーザーや、ロールなどにアタッチすることで、Fleet Managerの機能を制限することができます。
ポリシーの適用前では確認できていたファイルシステムが
スクリーンショット File_OK.png

ポリシー適用後ではこのようになります。
スクリーンショット File_NG.png

その他のFleet Managerのサービスの制限方法については以下のサイトを参考にしていただくと良いかもしれません。

こちらのサイトを見ると、以下の項目などについても制御がかけられそうです。
AWSFleetManager-GetProcessDetails:プロセス一覧の表示
AWSFleetManager-GetWindowsRegistryContent:レジストリの閲覧
AWSFleetManager-GetWindowsEvents:Windowsイベントログの表示

まとめ

Fleet Managerは便利なサービスだからこそ、運用するうえで制限をかける必要が出てくることもあるかと思います。
Fleet Managerの機能を丸ごと制限を掛けるのではなく、最適な権限の設定をすることで「必要な部分だけを制限する」という柔軟な使い方ができますので、運用の幅が広がりそうだと感じました。
本記事が参考になれば幸いです。

その他参考サイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?