こんにちは、ニキです。
この記事では以下のような疑問を解消します。
- セッションマネージャーとは?
- セッションマネージャーでEC2へ接続するには?
- EC2インスタンスへのSSH接続を禁止するには?
上記の疑問を解消する流れで解説していきます。
EC2インスタンスをすでに作成している前提で進めますが、EC2インスタンスを作成する方法は以下の記事で解説しています。
セッションマネージャーとは
セッションマネージャーはSystems Managerの機能のひとつです。
メリットはいろいろありますが、SSH用の22番ポートを開かなくていいのが大きく、セキュリティが高まります。
セッションマネージャーでAWS EC2へ接続するための設定
主には以下を行えば、使えるようになります。
- インスタンスプロファイル(IAMロール)の作成
- インスタンスプロファイルをEC2にアタッチ
現時点では接続できないことを確認
対象のインスタンスを選択し、接続 を選択。または、アクション – 接続 を選択します。
現時点ではセッションマネージャーを使って接続できません。
インスタンスプロファイル(IAMロール)の作成
IAMサービスのコンソールへ移動し、ロールを作成 を選択します。
以下のように設定します。
- 信頼されたエンティティタイプ: AWSのサービス
- ユースケース:EC2
次へ を選択します。
ポリシーを選択します。
セッションマネージャを使うには、AmazonSSMManagedInstanceCoreをロールに追加します。
AWS 管理ポリシー
AmazonSSMManagedInstanceCore
を含むインスタンスプロファイルが既にインスタンスにアタッチされている場合、Session Manager に必要なアクセス許可は既に付与されています。
次へ を選択します。
ロール名と説明を入力します。
後からこのロールにポリシーを追加しやすいように汎用的なロール名にするのをおすすめします。
説明は、このロールがどんなロールかがわかるようにした方がいいです。
設定内容を確認し、問題なければ ロールを作成 を選択します。
インスタンスプロファイルをアタッチ
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接続を禁止するには?