EC2 Instance ConnectでのブラウザベースのSSH接続
目次
課題~ターミナルソフトが使えない状態でのインスタンス接続~
あるPCにターミナルソフトが何も入っておらず、インストール、ダウンロードもしてはいけない。
そんな極限状態でサーバにログインする必要性に迫られた。
無茶だろ!と思ったが、EC2 Instance ConnectならAWSマネジメントコンソールからSSH接続ができるのだ!
ただし、Amazon Linux 2 (すべてのバージョン),Ubuntu 16.04 以降に限るが・・・。
一応覚えておいて損はないと思い、しっかり調べてみた。
制約事項
・Amazon Linux 2 (すべてのバージョン),Ubuntu 16.04 以降
・インスタンスにパブリック IPv4 アドレスが必要
・IPv6 アドレスを使用した接続はサポートしていない
・Safari ブラウザはサポートされていない
前提条件
・インスタンスに Instance Connect をインストールする ※Amazon Linux 2 2.0.20190618 以降であれば不要作業
・ローカルコンピュータに SSH クライアントをインストールする ※ほぼ不要作業
参考:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-connect-methods.html
作業記録
AmazonLinux2でインスタンスを新規作成
特筆すべきことはありません。
EIPの割り当て、関連付け
IPv4 アドレスが必要なので、EIPを関連付けするなりしてください。自動割り当てパブリック IPを有効にしてある場合は必須ではありません。
ポート開放
EC2_INSTANCE_CONNECT用に22ポートを開けてください。
アドレス範囲は下記サイトで確認できます。東京リージョンであれば「3.112.23.0/29」です。※2020年9月29日時点
https://ip-ranges.amazonaws.com/ip-ranges.json
ip_prefix "3.112.23.0/29" region "ap-northeast-1" service "EC2_INSTANCE_CONNECT" network_border_group "ap-northeast-1"
IAMユーザにアクセス許可を付与
わたしはAWSマネジメントコンソールにルートアカウントでログインしちゃってる(本当はよくない)のでこの作業はやっていません。
必要であれば下記サイトに従い、IAMユーザにアクセス付与。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-instance-connect-set-up.html#ec2-instance-connect-configure-IAM-role
EC2 Instance Connectのインストール
Amazon Linux 2 2.0.20190618 より前のAmazon Linux 2であればインストールが必要なのですが、今回はそもそもターミナルソフトではログインできないという条件なので・・・。
接続
あとはAWSマネジメントコンソールのEC2画面から対象インスタンスをチェック、”接続”をクリックして”EC2 Instance Connect”→”接続”とやるだけです。
そうすればブラウザ上に見慣れた黒い画面が出てきます。
その他のEC2 Instance Connectのメリットについては下記サイトをご覧ください。
https://aws.amazon.com/jp/about-aws/whats-new/2019/06/introducing-amazon-ec2-instance-connect/
うーん、AmazonLinux2(とUbuntu)のみ対応か・・・。
セッションマネージャーを使え、ということなのだろうか。