AWSのEC2インスタンスのキーペアとは
EC2インスタンスにキーペアを設定する主な目的
EC2インスタンスに不正アクセスされるリスクを減らすためである。
EC2インスタンスにパブリックIPアドレスを割り当てた場合は、インターネットから直接アクセス可能なため不正アクセスのリスクがある。
キーペアを使用することで、外部からアクセスされることのない秘密鍵を保持し、それを使用してEC2インスタンスにログインすることができる。
具体的には
EC2起動の過程で、キーペアを新規作成した時に秘密鍵ファイルが自分のパソコン(Macの場合はDownloadsフォルダ)にダウンロードされる。
次にパブリックIPアドレスを持つEC2インスタンスにログインする際に、自分のパソコンに保存した秘密鍵ファイルを使用してSSH接続を行う。EC2インスタンスには公開鍵が格納されており、秘密鍵ファイルを使ってSSH接続を行うことで、公開鍵と秘密鍵のペアが一致するかどうかを認証し、正当なユーザーであることを確認する。
キーペア使用上の注意点
キーペアは簡単に作成することができ、使い捨てにすることもできる。
また、秘密鍵ファイルが自分のMacに保存されている限り、キーペアは新規のEC2を作成する時に使い回せる。
ただし、秘密鍵を紛失した場合、EC2インスタンスにログインすることができなくなる。
私は秘密鍵ファイルを自分のMac上だけで保存しているので、自分のMacが壊れてデータが失われたら2度とログインできないようだ。
Macからec2インスタンスに接続しようとしたらエラーが出たときの話
"Permissions 0644 for 'key.pem' are too open."というエラーメッセージが出て接続できなかった。
chatGPTに聞いてみたら、このエラーメッセージは、秘密鍵ファイル key.pem のアクセス許可が他の人が読み取ることができるようになっているため、SSHが許可されていないことを示しているそうだ。
以下のコマンドを使用して、key.pemファイルのアクセス許可を修正し、再度試みたらssh接続ができた。
chmod 400 key.pem
このコマンドで所有者に読み取りおよび書き込みの権限が与えられ、他の人にはアクセスできないようになる。