どうもGre212です。
みなさん、踏み台サーバーの管理やEC2インスタンスの鍵の管理など面倒に感じたことはありませんか?
その悩み、もしかしたらセッションマネージャーで解決できるかもしれません!
意外と便利なセッションマネージャー、設定も意外と簡単にできちゃいます。
今回は、セッションマネージャーのメリットと設定方法を紹介します。
セッションマネージャーとは
セッションマネージャーを使うと、ブラウザのAWSマネジメントコンソールから、
対象のEC2インスタンスに鍵認証の設定無しでアクセスすることができます。
つまり、鍵の管理から解放されます。やったー!
でも、設定とか使い方が大変だったりするんじゃないの?とお思いのあなた。
それも実は意外と簡単です。さっくり手順を紹介していきましょう。
セッションマネージャーを使うために必要な手順
- EC2インスタンスにSSMエージェントをインストールする
- EC2インスタンス用のIAMロールを作成する
- EC2インスタンスに作成したIAMロールをアタッチする
なんとこれだけです。作業時間としてはおよそ15分程度で完了します。
では、具体的な手順の紹介です。
EC2インスタンスにSSMエージェントをインストール
手順として記述しましたが、実はAmazonLinux2にはSSMエージェントがプリインストールされています。 AmazonLinux2 を利用中の方はこの手順はスキップして問題ありません!
また、EC2で選択できるその他多くのOSにもSSMエージェントがプリインストールされています。
AmazonLinux2以外のOSを利用している方は、下記の記事より利用中のOSへインストールの必要があるかを確認、インストールしてください。
Session Manager を通して SSH 接続のアクセス許可を有効にして制御する - AWS Systems Manager
OSごとに細かく対応が異なるため、本記事では割愛します。
EC2インスタンスのIAMロールを作成する
このステップでは、必要なポリシーを付与したEC2インスタンス用のIAMロールを作成します。
※既にEC2インスタンスのIAMロールが存在する場合は、既存のIAMロールに下記のポリシーをアタッチしてください。
IAMロールの作成画面を開きます。
1つ目の画面では
信頼されたエンティティタイプは “AWSのサービス”
ユースケースは “EC2” を選択します。
次に、ポリシーを選択します。
AmazonSSMManagedInstanceCore
というAWS管理のポリシーがあるので、これを選択します。
そのまま次の画面に進み、ロールの作成を完了します。
これで、ロールの作成が完了しました。
作成したIAMロールをEC2インスタンスにアタッチする
前のステップで作成したIAMロールをEC2インスタンスにアタッチします。
該当するインスタンスを選択し、
「インスタンスの変更」→「セキュリティ」→「IAMロールの変更」を選択します。
次に、プルダウンから先ほど作成したポリシーを選択し、更新ボタンを押します。
これだけで、必要な作業は完了です!
EC2インスタンスに接続する
ここまで設定が完了すると、マネジメントコンソールからEC2インスタンスにアクセスできるようになっています。
EC2を選択して、「接続」ボタンをクリックします。
そこから「セッションマネージャー」のタブを選択します。
「接続」ボタンを押すとシェルが立ち上がり、今までと同じように作業を行うことができます!
※ユーザーは ec2-user ではなく ssm-user になっています。注意してください。
※もし、下記のようなエラーが出る場合は、しばらく待ってからページをリロードしてみてください。IAMロールの反映に時間がかかっている可能性が高いです。
これで、晴れてssh鍵をいちいちサーバーに登録したりしなくても、EC2にアクセスして作業をすることができるようになりました! 「Aさんの公開鍵どれでしたっけ?」みたいな不毛なやりとりも無くせますし、起動時にダウンロードした秘密鍵の紛失に怯えなくても済みます。
以上がセッションマネージャーの紹介でした。 ぜひみなさんもセッションマネージャーを使って、ストレスフリーなEC2ライフを送ってください!