こんにちは、櫻井です。今回はEC2にSSHキーを使わずにログインをする事ができる、SSMセッションマネージャ(以下SSM)を使ったログイン方法を紹介していこうと思います。
目次
SSMを使うメリット
- 踏み台サーバをなくすことが出来る
- セキュリティーグループでSSHポート開放が不要になる
- SSHキーの管理が不要になる
導入方法
- AWSCLIを利用するためのIAMユーザの作成
- EC2にアタッチするためのロールを作成
- EC2を立ち上げる。
- AWS CLIをインストールする
- AWS CLI 用 Session Manager をインストールする
- aws configure を設定する
- SSMでログインする
AWSCLIを利用するためのIAMユーザの作成
- マネジメントコンソールからIAM→ユーザーを選択し、ユーザーを追加を押下。
- 任意のユーザー名を入力し、アクセスキー、プログラムによるアクセスのチェックを入れる。(必須)
※パスワード – AWS マネジメントコンソールへのアクセスについて、今回作成するユーザーがマネジメントコンソールにアクセスする必要がなければチェックしなくても大丈夫です。
- ユーザーに権限を付与する。今回はテストなのでEC2のフルアクセスとSSMフルアクセスを付与する。実際はベストプラクティスに則ったものを付与してください。
- 後は流れに沿ってユーザ作成をする。作成後アクセスキーとシークレットアクセスキーが表示されるので、なにかに控えておいてください。
EC2にアタッチするためのロールを作成する
- IAM→ロール→ロールの作成を押下し、信頼されたエンティティタイプでAWSのサービスを選択し、ユースケースでEC2を選択する。
- ロールに必要なポリシーをアタッチする
- 任意の名前をつけて作成する
EC2を立ち上げる
EC2にSSMを使った接続をするためには、EC2にSSMエージェントがインストールされている必要があります。
こちらのリンクから、SSMエージェントが元々インストールされているインスタンスを確認することが出来ます。自分が使用したいインスタンスにSSMエージェントがインストールされていない場合は、別途インストールする必要があることに注意してください。
今回はSSMエージェントが元々インストールされている、Amazon Linux2を利用します。
- AMIはAmazon Linuxを選択する
- キーペア無しを選択する(推奨されませんと書いてあるがSSMでログインする場合は無しでOK)
- ネットワーク設定の編集を押下し、インバウンドセキュリティーグループを削除する。
※現在、このテンプレートにセキュリティグループルールは含まれていません。起動テンプレートに含める新しいルールを追加してください。となっていればOK
- 高度な詳細を展開し、IAMインスタンスプロフィールに先ほど作成したロールを選択する
- インスタンスを起動する。(手順の中になかった項目については任意で設定してください)
AWS CLIをインストールする
こちらは環境によってインストール方法が異なるので、以下のドキュメント通りにインストールしてください。
AWS CLI の最新バージョンをインストールまたは更新します。
AWS CLI 用の Session Manager プラグインをインストールする
こちらもAWS CLI 同様に環境によってインストール方法が異なるので、以下のドキュメント通りにインストールしてください。
AWS CLI 用の Session Manager プラグインをインストールする
aws configreを設定する
AWS CLIがインストールされたターミナルでaws configureを設定する
1 2 3 4 5 6 |
$aws configure AWS Access Key ID: {アクセスキーID} AWS Secret Access Key: {シークレットアクセスキー} Default region name: {利用しているリージョン} Default output format: {jsonもしくはyaml} |
SSMでログインする
- AWS CLIがインストールされたターミナルで以下のコマンドを実行する
1 |
aws ssm start-session --target {インスタンスID} |
以下のように表示されていれば、無事SSMでログインできていることになる。
まとめ
SSMを使ったログインをすることができるようになると、SSHキーの管理が必要なくなったり、SSHのポートを開ける必要がなく、セキュリティー面でも安全になる等メリットが非常に多いので、ぜひ利用してみてください。
一緒に働く仲間を募集中!
ギークフィードではAWSエンジニアを募集しています。
興味がある方はこちらからエントリーをしてぜひ一緒に働きましょう!
- 特定の時間あたりのlambda実行数をSlackに通知する - 2023-12-23
- 公衆電話からでも使える電話帳サービスをLEX + AmazonConnectで作ってみた - 2023-12-19
- SQSを使ってlambdaを10秒ごとに定期実行する - 2023-12-14
- Slack と AWS の電話番号登録アプリ – Bolt + CDK ソースコード解説 - 2023-03-26
- SlackとAWSを組み合わせた電話番号登録アプリの開発 – Boltフレームワーク+CDKで作ってみた - 2023-03-26