AWS関連

【AWS】EC2のキーペアを別リージョンにコピーする

はじめに

EC2インスタンスを起動する際、キーペアを作成して利用すると思いますが、

別リージョンでも同じキーペアを使い回す方法があるということで少し調べてみました。

方法としては 「インポートキーペア」機能 を利用して、対象リージョンに公開鍵を登録(インポート)するだけです。

利用シーンとしては限られると思いますが、リージョンごとに複数インスタンスを立ち上げたい場合などには有用かと思います。

簡単な操作だったので、インポート機能を利用してみました。(インポートまでで、インスタンスの起動までは行ってません)

キーペアを作成する (ローカル)

# ローカル環境でキーペア作成
ssh-keygen -C "" -f ~/Downloads/id_rsa_sayjoy01
# (パスフレーズの入力を2回求められるので、未入力のままEnter)

# 実行結果の確認
ls -l ~/Downloads | grep sayjoy01
# (出力結果)
-rw-------    1 XXXXXXXXXXXXX  staff        2578 11  9 11:55 id_rsa_sayjoy01
-rw-r--r--    1 XXXXXXXXXXXXX  staff         554 11  9 11:55 id_rsa_sayjoy01.pub

  • -f オプションで鍵の作成場所、およびファイル名を指定することが可能。
  • -C オプションに “” を渡すことで、コメントを空で指定することができる。(デフォルトで末尾にユーザ名とホスト名が記述されるのを防ぐ)

無事にキーペアが作成できたことを確認し、次はAWSにインポートしていきます。

ちなみに、、
鍵の作成場所については、未指定の場合でもファイルの保存場所を指定する際(上記コマンド実行時に表示される1つ目の質問)に、ディレクトリおよび任意のファイル名を指定することが可能です。
また、今回は使い捨てを想定しているため「Download」フォルダに作成しています。(作業後、キーペアは削除済み)

公開鍵をAWSにインポートする

GUI(コンソール画面)での操作

EC2 コンソール画面を開き、左ペインで [キーペア] をクリックする
画面右上の [アクション] から [キーペアをインポート] をクリックする

キーペアに利用する名前を入力する
キーペアファイルを指定する
(もしくは、テキストボックスに直接公開鍵ファイル内の文字列を転記してもよい)
画面右下の [キーペアをインポート] をクリックする
(<注> 秘密鍵ではなく、公開鍵”〜.pub” を指定すること)

キーペア一覧にて、インポートが成功していることを確認する
(あとはインスタンス作成時に当該キーペアを指定して利用するだけでOK)

CLIでの操作

# 改めてキーペアを作成(一応、新たに作成したキーペアを利用するため)
ssh-keygen -C "" -f ~/Downloads/id_rsa_sayjoy02


# キーペアのインポート
aws ec2 import-key-pair \
    --key-name sayjoy12 \
    --public-key-material fileb://~/Downloads/id_rsa_sayjoy02.pub \
    --region ap-northeast-1 \
    --profile XXXXXXXX
# (出力結果)
{
    "KeyFingerprint": "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX",
    "KeyName": "sayjoy12",
    "KeyPairId": "key-XXXXXXXXXXXXXXXXX"
}


# キーペアのインポート結果を確認
aws ec2 describe-key-pairs \
    --key-name sayjoy12 \
    --region ap-northeast-1 \
    --profile XXXXXXXX
# (実行結果)
{
    "KeyPairs": [
        {
            "KeyPairId": "key-XXXXXXXXXXXXXXXXX",
            "KeyFingerprint": "XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX",
            "KeyName": "sayjoy12",
            "Tags": []
        }
    ]
}

  • –profile オプションは省略可能

一応、コンソール画面でもインポートが成功していることを確認する

キーペアを削除する(後片付け|CLI のみ)

# AWS内のキーペア削除
aws ec2 delete-key-pair \
    --key-name sayjoy12 \
    --region ap-northeast-1 \
    --profile sayjoy_aws

aws ec2 delete-key-pair \
    --region ap-northeast-1 \
    --key-name sayjoy11 \
    --profile sayjoy_aws

※削除手順については、コンソール画面での操作方法は割愛。

まとめ

「やってみた」、と言っても鍵を作成してインポートした部分のみですが、問題なく作業を終えることが出来ました。

AWS(の特定リージョン)にインポートが完了すれば、あとは利用するだけなので、キーペアをコピーする方法を確認することが出来ました。

以上です。

最後まで読んでいただきありがとうございました。