LoginSignup
0
0

シンジ「Session Managerを使えばいいと思うよ」(AWS セッションマネージャーを使ってみた)

Posted at

EC2の公開鍵を削除した綾波「こんなときどうすればいいかわからないの。」
シンジ「Session Managerを使えばいいと思うよ」

ということでAWS Systems Manager Session Managerを使ってログインするまでのやってみた記事になります。
初歩的なことしかしていないので、悪しからず。

検証の流れ

1.EC2にてユーザ”Shinji”を作成し、"ssh-keygen"コマンドでキーペアを作成します。ログインできることを確認します。
2.公開鍵を削除してログインできないことを確認します。
3.Session Managerをセットアップして、ログインできることを確認します。

Session Manager とは

Session Manager はフルマネージド AWS Systems Manager 機能です。Session Manager を使用すると、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、エッジデバイス、オンプレミスサーバー、仮想マシン (VM) を管理できます。インタラクティブ・ワンクリック ブラウザ ベースのシェル、または AWS Command Line Interface (AWS CLI) を使用できます。Session Manager は安全かつ監査可能なノード管理を実現し、インバウンドポートを開いたり、踏み台ホストを維持したり、SSH キーの管理したりする必要はありません。また Session Manager はマネージドノードの制御されたアクセス、厳格なセキュリティプラクティス、ノードアクセス詳細がある完全監査可能なログを要件とする社内ポリシーの尊守を実現しつつ、エンドユーザーが簡単なワンクリック・クロス プラットフォームアクセスによってマネージドノードの使用を実現します。

実際にやってみる

1.EC2にてユーザ”Shinji”を作成し、"ssh-keygen"コマンドでキーペアを作成します。ログインできることを確認します。

Linuxログ
[root@EVA001 ~]# useradd Shinji
[root@EVA001 ~]#
[root@EVA001 ~]# tail /etc/passwd
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
libstoragemgmt:x:997:997:daemon account for libstoragemgmt:/:/usr/sbin/nologin
systemd-coredump:x:996:996:systemd Core Dumper:/:/usr/sbin/nologin
systemd-timesync:x:995:995:systemd Time Synchronization:/:/usr/sbin/nologin
chrony:x:994:994:chrony system user:/var/lib/chrony:/sbin/nologin
ec2-instance-connect:x:993:993::/home/ec2-instance-connect:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
ec2-user:x:1000:1000:EC2 Default User:/home/ec2-user:/bin/bash
Shinji:x:1001:1001::/home/Shinji:/bin/bash
[root@EVA001 ~]#

[Shinji@EVA001 ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Shinji/.ssh/id_rsa):
Created directory '/home/Shinji/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/Shinji/.ssh/id_rsa
Your public key has been saved in /home/Shinji/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:yJo+MFWSpBF1EQ8LOei4zQxMBQnmKlpt7ALLoGf1e64 Shinji@EVA001
The key's randomart image is:
+---[RSA 3072]----+
|oo**+o=o         |
|oo.o=o.+         |
|o+.  +. .        |
|+..o.. .         |
|=*..= o S        |
|B+*+ +           |
|+.+o+ .          |
| o o.  ..        |
|    ..E+.        |
+----[SHA256]-----+
[Shinji@EVA001 ~]$

[root@EVA001 ~]# cd /home/Shinji/.ssh/
[root@EVA001 .ssh]#
[root@EVA001 .ssh]#
[root@EVA001 .ssh]# ll
total 8
-rw-------. 1 Shinji Shinji 2602 Oct 22 10:53 id_rsa
-rw-r--r--. 1 Shinji Shinji  567 Oct 22 10:53 id_rsa.pub
[root@EVA001 .ssh]#
[root@EVA001 .ssh]# mv id_rsa.pub authorized_keys
[root@EVA001 .ssh]#
[root@EVA001 .ssh]#
[root@EVA001 .ssh]# ll
total 8
-rw-r--r--. 1 Shinji Shinji  567 Oct 22 10:53 authorized_keys
-rw-------. 1 Shinji Shinji 2602 Oct 22 10:53 id_rsa
[root@EVA001 .ssh]#
[root@EVA001 .ssh]#
[root@EVA001 .ssh]# rm id_rsa
rm: remove regular file 'id_rsa'? y
[root@EVA001 .ssh]#
[root@EVA001 .ssh]#
[root@EVA001 .ssh]# ll
total 4
-rw-r--r--. 1 Shinji Shinji 567 Oct 22 10:53 authorized_keys
[root@EVA001 .ssh]#

ログインできるかを確認

[USER]@[PC] aws_pem % ssh -i "shinji.pem" Shinji@[パブリックIP]
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
Last login: Sun Oct 22 10:50:56 2023
[Shinji@EVA001 ~]$

2.公開鍵を削除してログインできないことを確認します。

Linuxログ
#公開鍵をなくした体で移動させる
[root@EVA001 .ssh]# mv authorized_keys /home/Shinji/
[root@EVA001 .ssh]#
[root@EVA001 .ssh]#
[root@EVA001 .ssh]# ll
total 0
[root@EVA001 .ssh]#
[root@EVA001 .ssh]#
[root@EVA001 .ssh]# ll /home/Shinji/
total 4
-rw-r--r--. 1 Shinji Shinji 567 Oct 22 10:53 authorized_keys
[root@EVA001 .ssh]#

#ログインできない
[USER]@[PC] aws_pem % ssh -i "shinji.pem" Shinji@[パブリックIP]
Shinji@[パブリックIP]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
[USER]@[PC] aws_pem %

3.Session Managerをセットアップして、ログインできることを確認します。

まず、なにも設定していない状態でEC2の接続をクリックしてみます。
接続するためにIAMインスタンスプロファイルが必要とのこと
SSMが使用できません.png

Session Managerのセットアップについて

①使用するインスタンスにSSM agentが入っているかを確認する。
System Manager でサポートされているオペレーティングシステム

②インスタンスプロファイルを作成し、EC2インスタンスにアタッチする。
ステップ 1: Systems Manager にインスタンスのアクセス許可を設定する

③VPCエンドポイントを作成
下記の4つエンドポイントの作成が必要

エンドポイント 説明
com.amazonaws.region.ssm Systems Manager サービスのエンドポイント
com.amazonaws.region.ec2messages Systems Manager は、このエンドポイントを使用して SSM Agent から Systems Manager サービスへの呼び出しを行います
com.amazonaws.region.ec2 Systems Manager を使用して VSS 対応のスナップショットを作成する場合は、EC2 サービスへのエンドポイントがあることを確認します。EC2 エンドポイントが定義されていない場合、アタッチした Amazon EBS ボリュームを列挙する呼び出しは失敗し、Systems Manager コマンドが失敗します。
com.amazonaws.region.ssmmessages このエンドポイントは、Session Manager を使用して安全なデータチャネルを経由しインスタンスに接続する場合にのみ必要です。

※com.amazonaws.regionは利用しているリージョン

ステップ 2: VPC エンドポイントを作成する


プロファイルの作成

①信頼されたエンティティを選択

項目 設定
信頼されたエンティティタイプ AWS のサービス
ユースケース EC2

②許可を追加
AmazonSSMManagedInstanceCore を選択
③名前、確認、および作成
名前などを入力し、作成

作成したロール

FireShot Capture 033 - SSMInstanceProfile - IAM - Global - us-east-1.console.aws.amazon.com.png

EC2インスタンスにアタッチ

①EC2サービスに移動し、対象インスタンスを選択
②[アクション]>[IAMロールを変更]で作成したIAMロールを選択

VPCエンドポイントの作成

①VPCサービスに移動して、左ペインの Endpointsをクリックし、 エンドポイントを作成
②エンドポイントを作成にて下記のように入力

項目 設定
名前タグ エンドポイントの名前
サービスカテゴリ AWS のサービス
サービス com.amazonaws.ap-northeast-1.ssm
com.amazonaws.ap-northeast-1.ec2messages
com.amazonaws.ap-northeast-1.ec2
com.amazonaws.ap-northeast-1.ssmmessages
VPC 対象のVPC
EC2インスタンスにて接続を確認する

FireShot Capture 034 - Systems Manager - ap-northeast-1 - ap-northeast-1.console.aws.amazon.com.png

めちゃくちゃに楽ですね!
すべてはゼーレのシナリオの通りに

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0