SSHでサーバーログインするのが普通かと思っていましたが、とにかく秘密鍵の管理が面倒です。とくに他の人にログイン情報を渡す時に秘密鍵をメールで送るわけにもいかず、手渡しするか郵送するか、キーペアを作って公開鍵を送ってださいと言うのも万人受けしないし・・・と困ってしまいますね。
最近はAWS EC2の画面からセッションマネージャーを直接呼び出せるようになったので、自分のサーバーでも試してみました。AWSのアカウントさえちゃんと管理しておけば秘密鍵の管理から解放されて便利なので、覚書を残しておこうと思います。
1. AWS EC2 インスタンスにSSMエージェントをインストールする
SSHログイン後、このページに書かれている手順の通りインストールします。私のインスタンスはCentOS 7なので、以下のコマンドを実行します。サーバー側の準備はたったこれだけ。
$ sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm $ sudo systemctl enable amazon-ssm-agent $ exit
2. IAM から セッションマネージャー用のIAMロールを作る
-1. AWSログイン後、IAMをクリック
-2. ロール – ロールの作成
-3. AWSサービス – EC2 – 次のステップ: アクセス権限
-4. [ssm]で検索し、AmazonSSMFullAccessにチェック、次のステップ: タグ
-5. 適当にタグをつけます。
-6. 適当に名前と説明をつけて、ロールの作成
3. EC2インスタンスにセッションマネージャ用 IAMロールを付与
-1. EC2 – インスタンス – アクション – インスタンスの設定 – IAMロールの割り当て/置換
-2. セッションマネージャ用 IAMロールを選択して、適用
4. セッションマネージャーでEC2にログインする
-1. EC2- インスタンス – 接続から、セッションマネージャ – 接続
-2. ブラウザから、SSHなしでサーバーにログインできました!
ただし、Safariでは文字が入力できないみたいなので、セッションマネージャーでログインするにはChromeやFirefoxが必要です。