本記事は ディップ with 全部俺 AdventCalendar 19日目の記事です。
最近はDockerやserverlessなサービスの台頭であまりVM(EC2)インスタンスを立てることは少なくなってきたかと思います。
しかし、AWSのに閉じたVPCからしかアクセスできないRDSに接続して中身を見たい。
マイグレーションを実施するのにEC2インスタンスが必要等、細かい単位ではまだまだEC2の利用はあると思います。
今回はそんなEC2インスタンスに対し、sshではない接続方法として、SessionManagerの紹介をしたいと思います。
what is Session Manager?
Session Manager はフルマネージド型 AWS Systems Manager 機能で、インタラクティブなワンクリックブラウザベースのシェル、または AWS CLI を介して Amazon EC2 インスタンスを管理できます。Session Manager は、インバウンドポートを開いたり、踏み台ホストを維持したり、SSH キーを管理したりすることなく、安全で監査可能なインスタンスの管理を提供します。Session Manager は、Amazon EC2 インスタンスへの簡単なワンクリックのクロスプラットフォームアクセスをエンドユーザーに提供しつつ、インスタンスへの制御されたアクセス、厳格なセキュリティプラクティス、インスタンスアクセスの詳細を含む、完全に監査可能なログを必要とする企業ポリシーに準拠することを容易にします。
公式より
つまりどういうこと?
sshではなく、AWSの機能として、EC2に対してCLIのAccessができちゃうモノ。 セキュリティーグループで特定のIPからのsshAccessを許可する設定の追加や踏み台サーバの用意なしにアクセスできるようになります。
事前準備
SessionManagerを利用するためにはいくつかの事前準備が必要です。
- EC2で利用しているIAMロールに
AmazonEC2RoleforSSM
ポリシーがアタッチされていること。 - 該当インスタンスに
amazon-ssm-agent
がインストールされていること
※AmazonLinuxの場合、すでにインストールされているのでupdateを実施すれば良い
上記の準備が整えばSessionManagerを利用することが出来ます。
インスタンス作成当初からSessionManagerを使いたい
事前準備をEC2を立てるときにしてしまえばEC2作成当初からSessionManagerを利用することが可能です。
1.のポリシーについては与えるロールに予めアタッチしておきましょう。
2.のamazon-ssm-agentについてはEC2作成時のユーザデータのところに下記Commandを入力します。
#!/bin/bash yum update -y
※上記はAmazonLinuxを利用している場合に有効です。
それ以外のディストリビューションの場合はPackageManager経由でamazon-ssm-agentをインストールしましょう。下記にCentOSの場合を記載します。
#!/bin/bash set -o xtrace sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
実際に作ってみよう
今回は紹介記事のため、下記のようなインスタンスを用意しました。
SecurityGroupはあえてSSHポートを締め出しています。
※AmazonLinux2のため、ユーザデータ欄には上記の yum update
のCommandが入力されています。
また、登録するキーペアについてもSSMを利用するので登録なしとします。
作成されるのを待ちます。
※Nameは一覧に移ったあとわかりやすいように追加しています。
使ってみよう
今回は紹介のため、コンソール上でのAccessを行います。
サービス名はSessionManagerではなくSystemManagerです。
SystemManagerの画面の左サイドバーからセッションマネージャーを選択します。
セッションマネージャーの画面から「セッションの開始」をクリックします。
すると、ターゲットインスタンスを選択する画面になるので、ターゲットとなるインスタンスを選択し、「セッションの開始」をクリックします。
すると、別タブで黒い画面が表示されます。
これでセッションマネージャーから無事にEC2インスタンスへAccess出来たことになります。
AWS CLIからもセッションマネージャを利用しTerminalライクに接続できるので、そちらもチャレンジしてみてください。
以上