AWS EC2 セッションマネージャーで接続し22番ポートを塞ぐ | アントレプログラマー

AWS EC2 セッションマネージャーで接続し22番ポートを塞ぐ

AWS

こんにちは、ニキです。

この記事では以下のような疑問を解消します。

  • セッションマネージャーとは?
  • セッションマネージャーでEC2へ接続するには?
  • EC2インスタンスへのSSH接続を禁止するには?

上記の疑問を解消する流れで解説していきます。

EC2インスタンスをすでに作成している前提で進めますが、EC2インスタンスを作成する方法は以下の記事で解説しています。

Takaharu Niki

・Webエンジニア6年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする

セッションマネージャーとは

セッションマネージャーはSystems Managerの機能のひとつです。

メリットはいろいろありますが、SSH用の22番ポートを開かなくていいのが大きく、セキュリティが高まります。

セッションマネージャーでAWS EC2へ接続するための設定

主には以下を行えば、使えるようになります。

  • インスタンスプロファイル(IAMロール)の作成
  • インスタンスプロファイルをEC2にアタッチ

現時点では接続できないことを確認

対象のインスタンスを選択し、接続 を選択。または、アクション接続 を選択します。

現時点ではセッションマネージャーを使って接続できません。

インスタンスプロファイル(IAMロール)の作成

IAMサービスのコンソールへ移動し、ロールを作成 を選択します。

以下のように設定します。

  • 信頼されたエンティティタイプ: AWSのサービス
  • ユースケース:EC2

次へ を選択します。

ポリシーを選択します。

セッションマネージャを使うには、AmazonSSMManagedInstanceCoreをロールに追加します。

AWS 管理ポリシー AmazonSSMManagedInstanceCore を含むインスタンスプロファイルが既にインスタンスにアタッチされている場合、Session Manager に必要なアクセス許可は既に付与されています。

引用 https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-getting-started-instance-profile.html

次へ を選択します。

ロール名と説明を入力します。

後からこのロールにポリシーを追加しやすいように汎用的なロール名にするのをおすすめします。

説明は、このロールがどんなロールかがわかるようにした方がいいです。

設定内容を確認し、問題なければ ロールを作成 を選択します。

インスタンスプロファイルをアタッチ

EC2のコンソール画面へ戻り、アクション – セキュリティ – IAMロールを変更 を選択します。

先ほど作成したIAMロールを選択し、IAMロールの更新 を選択します。

セッションマネージャーでAWS EC2へ接続する

インスタンスに接続できるかを確認すると、以下のように接続できるようになっています。

接続 を選択します。

Systems Managerのコンソール画面が開き、セッションが開始されます。

以下のようにログインユーザーを確認すると、ssm-userであることがわかります。

パーミッションが問題になった時等はこの辺りを覚えておくと役に立ちます。

sh-5.2$ whoami
ssm-user

ホームディレクトリはssm-user用のディレクトリが存在します。

sh-5.2$ ls /home/
ec2-user  ssm-user

ただ、ログイン時のワーキングディレクトリは/usr/binのようです。

sh-5.2$ pwd
/usr/bin

AWS EC2へのSSH接続を禁止する

運用上で不都合がなければSSH接続を禁止にした方がいいです。余計なセキュリティリスクは排除します。

以下のように、設定済みのSSHのセキュリティグループルールを削除するために、対象のセキュリティグループルールに対して 削除 を選択します。

そのあと、ルールを保存 を選択します。

まとめ

この記事では以下のような疑問を解消できるように執筆しました。

  • セッションマネージャーとは?
  • セッションマネージャーでEC2へ接続するには?
  • EC2インスタンスへのSSH接続を禁止するには?
Takaharu Niki

・Webエンジニア6年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする
AWS
Takaharu Nikiをフォローする
アントレプログラマー
タイトルとURLをコピーしました