10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ポートスキャンが怖かったので Session Manager を使ってみた

10
Last updated at Posted at 2025-09-24

みなさん、Session Manager は使っていますか?私は日々の業務で酷使しています。
今回は、Session Manager を導入すべき理由と、実際の使い方・準備手順についてご紹介します。

背景と課題

例えばこのような、シンプルなクラウド構成があったとします。

Webサーバーに直接アクセスして調査やメンテナンスをしたいとき、どうすればよいでしょうか?

オンプレミスの知見のまま構成すると、多くの場合、以下のように踏み台サーバーをパブリックネットワークに配置してアクセスする構成が取られます。

しかし、踏み台サーバーをパブリックネットワークに配置すると、以下のような課題があります。

  • OSの管理が必要
  • インターネットに公開されているため攻撃対象になりやすい
  • IP制限などのセキュリティ対策が複雑
  • 監査ログの整備が必要

特にセキュリティ対策が甘い状態で一晩放置したらどうなるでしょうか。

ポートスキャンの脅威

これは Amazon GuardDuty によってポートスキャンが検出された一例です。

ポートスキャンされたインスタンスがわかったりします。

ポートスキャンしてきた端末のIPアドレスや国がわかったりもします。

これは、踏み台サーバーが外部からスキャンされている証拠です。

ポートスキャンとは?

  • 対象のコンピュータの複数のポートに対して接続要求を行い、要求に対する応答を確認することにより、利用可能なポートを探すこと
  • 管理者が意図していないのに接続できるポートが存在する場合は、セキュリティ上の危険性があるため対処が必要となる場合がある
  • 攻撃者は、ポートスキャンによって、攻撃可能なポートを探索する

例えるならば。

泥棒が、家の窓が開かないか片端から試していて、今にも侵入してきそう。

こんな感じです。

ポートスキャンって泥棒に入る一歩手前の行為なのですよね。

どうですか?想像してみるとちょっと怖くないですか?

できればこんな思いはしたくないです。

こんなときは Session Manager を使おう

Session Manager とは

  • フルマネージド型の AWS Systems Manager のツール
  • インバウンドポートを開いたり、踏み台サーバーや SSH キーを管理したりする必要はありません
  • コンソールや CLI からワンクリックでマネージドノードへアクセス
  • ポート転送

Session Manager を使うと、元々こんな構成だったのが、

こんな構成になります。

Session Manager を使う準備

準備は簡単で、3つ設定するだけです。

詳細な手順は AWS のホームページに記載されているのでポイントだけ記載していきます。

1. 接続先サーバーに Systems Manager Agent をインストール(プリインストール済みの場合もあり)

2. IAMロールを作成し、AmazonSSMManagedInstanceCore ポリシーを付与

3. VPCエンドポイントを作成(NATゲートウェイがある場合は不要)

コンソールから接続してみる

EC2インスタンス一覧の画面で、接続したいインスタンスにチェックを入れ、接続ボタンをクリック。

セッションマネージャーのタブを選択し、接続ボタンをクリック。

Linux系のサーバーはこんな感じの画面が表示されます。

シェルの画面です。いつも通り使えてメンテナンスできそうと思いました。

Windowsサーバーもこんな感じの画面が表示されます。

パワーシェルの画面です。普段パワーシェルで操作しないので、なかなかつらいです・・。

Windowsサーバーにはリモートデスクトップで接続したい!

LinuxならCLIで快適に操作できますが、WindowsはGUIで操作したいですよね。
Session Manager のポート転送機能を使えば、ローカル端末からリモートデスクトップ接続が可能になります。

Session Manager のポート転送機能を使う準備

これも準備は簡単で、2つ設定するだけです。

1. ローカル端末に AWS CLI をインストール

IAM アイデンティティセンターを使用しない環境の場合はこちらの設定が必要

IAM アイデンティティセンターを使用する環境の場合はこちらの設定が必要

2. ローカル端末に Session Manager プラグインを忘れずにインストール

リモートデスクトップで接続してみる

以下のコマンドをパワーシェルで実行します。(instance_id、profile の箇所は書き換えます)

aws ssm start-session --target <instance_id> --document-name AWS-StartPortForwardingSession --parameters "localPortNumber=13389,portNumber=3389" --profile <profile>

こんな表示になればポート転送が開始されています。

IAM アイデンティティセンターを使用する環境の場合、コマンドを以下のようにすると、ログインもやってくれて便利です。

$env:AWS_PROFILE = <profile>; (aws sts get-caller-identity) -or (aws sso login); aws ssm start-session --target <instance_id> --document-name AWS-StartPortForwardingSession --parameters "localPortNumber=13389,portNumber=3389"

その後、localhost:13389 を指定すればリモートデスクトップで接続できます。

まとめ

ポートスキャンが怖かったら、Session Manager を使おう!

  • セキュアなアクセスが可能
  • 踏み台サーバー不要
  • ポートスキャンの心配なし

簡単な準備で導入できるので、ぜひ活用してみてください!

10
1
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
10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?