AWS
EC2

EC2をAMIからリストアする際にキーペアをどうするか

AMIからリストア時に別のキーペアを選択するとどうなるか

そもそもの始まりは、東京リージョンで作成したEC2をAMI取得してバージニアリージョンで
新しく起動させる際に「キーペア」の選択画面で既存のキーがなかったのであれ?と思い調べた次第です。
ついでにキーペアを別のものを選択したら上書き?とかいろいろ疑問で調べました。

キーペアはリージョン別

まず調べてみたところ、キーペアはアカウント内共有ではなくリージョン別のようです。
明確にドキュメントに記載は見つかりませんでしたがリージョンあたりと記載があるので間違いないと思います。

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-key-pairs.html
キーペアを作成する
Amazon EC2 が使用するキーは、2048-bit SSH-2 RSA キーです。リージョンあたり最大 5000 のキーペアを持つことができます。

検証してみる

image.png

東京リージョンにAmazonLinuxを起動させて、AMIを取得して3パターン試しました。

①AMIから東京リージョンで作成した別のキーペアを選択して起動

②AMIをバージニアにコピーして、バージニアリージョンに作成したキーペアを選択して起動

③AMIをバージニアにコピーして、キーペアの選択はなしで起動

①AMIから東京リージョンで作成した別のキーペアを選択して起動

まずは起動したEC2に接続してみます。

$ ssh -i ap-northeast-1-001.pem ec2-user@10.0.136.237

接続先のauthorized_keysを確認します。

$ cat .ssh/authorized_keys
ssh-rsa xxxxxxxx........  ap-northeast-1-001

$ md5sum .ssh/authorized_keys
f6128bdb94c2179c6f9183d40dedd908  .ssh/authorized_keys

次にAMIを取得して、先ほどとは別のキーペアを指定して新しいインスタンスを作成します。
(EC2の作成過程は省略します)

ssh -i ap-northeast-1-002.pem ec2-user@10.0.136.160
[ec2-user@ip-10-0-136-160 ~]$

では、先ほどのAMIの取得したEC2に選択したキーペア「ap-northeast-1-001.pem」でログインを試します。

ssh -i ap-northeast-1-001.pem ec2-user@10.0.136.160
[ec2-user@ip-10-0-136-160 ~]$

無時ログインできました。authorized_keysを見てみましょう。

$ cat .ssh/authorized_keys
ssh-rsa xxxxxxxx........  ap-northeast-1-001
ssh-rsa xxxxxxxx........  ap-northeast-1-002

$ md5sum .ssh/authorized_keys
c87931fc2d2949c6bb7304152c3d3381  .ssh/authorized_keys

②AMIをバージニアにコピーして、バージニアリージョンに作成したキーペアを選択して起動

AMIもキーペアと同じく、リージョン別になるためAMIはコピーしておき
コピーしたAMIからインスタンスを作成します。

$ ssh -i us-east-1.pem ec2-user@172.31.38.107
[ec2-user@ip-172-31-38-107 ~]$

$ cat .ssh/authorized_keys
ssh-rsa xxxxxxxx........  ap-northeast-1-001
ssh-rsa xxxxxxxx........  us-east-1

$ md5sum .ssh/authorized_keys
de006191497abe8ba53e88856c3fcda8  .ssh/authorized_keys

③AMIをバージニアにコピーして、キーペアの選択はなしで起動

東京リージョンでAMIを取得しキーペアはなしで起動します。

$ ssh -i ap-northeast-1-001.pem ec2-user@172.31.39.140
[ec2-user@ip-172-31-39-140 ~]$

$ cat .ssh/authorized_keys
ssh-rsa xxxxxxxx........  ap-northeast-1-001

$ md5sum .ssh/authorized_keys
f6128bdb94c2179c6f9183d40dedd908  .ssh/authorized_keys

まとめ

結論はキーペアを別のものを選択するとssh/authorized_keysに鍵が追記されていくでした。

ちゃんと読んだらドキュメントにも書いてありました。。。

インスタンスから Linux AMI を作成し、AMI を使用して別のリージョンまたはアカウントの新しいインスタンスを起動すると、新しいインスタンスには元のインスタンスからのパブリックキーが含まれます。これにより、元のインスタンスと同じプライベートキーファイルを使用して新しいインスタンスに接続できます。

勝手に自動で上書きかと思ってました。
まあ鍵なくしたらAMIからキーペアを作成して起動すれば問題ないですね!(鍵なくすなよ)

以上です。