AWSで秘密鍵・公開鍵を複数環境で利用する
AWSを使い始めて、EC2でインスタンスを立ち上げることができたけど、
この先何しようか?とか、もっとうまく活用したい、という方向けに
知ってること、調べたことなどのTipsをアウトプットしていきたいと思います。
秘密鍵・公開鍵を複数環境で利用する
新しい環境でEC2を作成する際にAWS側にキーペアがない場合は、
AWS側でキーペアを作成し、秘密鍵をダウンロードしてそれを使ってsshするかと思います。
しかしこのキーペアが利用できる範囲はap-northeast-1などのリージョンに限られます。
複数のリージョンを使い分けたい場合や、サービス等によっては複数のアカウントの環境もある場合、
(サービス数)×(利用リージョン数)
ものキーペアを発行することになり、ログインするときにどの鍵を使うかの管理が煩雑になりそうです。
そうならないためにはAWS側にキーペアの作成に作成させるのではなく、
キーペアのインポートを利用すると1つのキーペアを複数環境に配置することが可能です。
GUI(マネジメントコンソール)の場合
EC2サービスの画面にある ネットワーク & セキュリティ > キーペアのメニューを開きます。
するとキーペアの作成の他にキーペアのインポートというメニューがあります。
そちらをクリックすると以下のような画面が出てきます。
キーペア名はAWS上で表示される名前なので任意の名前を決めてください。
インポート方法としては2種類あり、
- パブリックキー(公開鍵)をファイルとしてアップする方法
- パブリックキー(公開鍵)の内容をテキストボックスにコピペする方法
があります。
環境にもよるかもしれませんが、エクスプローラーで公開鍵のファイルを選ぶのは面倒なので、私は後者がオススメです。
また、間違っても秘密鍵のほうをアップロードしないようにしましょう。
(多分エラーが出てアップロードされないだけで危険はないかと思いますが)
AWS CLIの場合
AWS CLIからであればもっと簡単に実施できます。
AWS CLIがインストール済の前提ですが、そちらも後日記事にしたいと思います。
ユーザーのデフォルトの鍵を使ってhogehogeというキーペア名で作る場合は以下のようになります。
$ aws ec2 import-key-pair --key-name hogehoge --public-key-material "`cat ~/.ssh/id_rsa.pub`"
コマンドが成功していれば以下のような出力が出ます。
{ "KeyName": "hogehoge", "KeyFingerprint": "(フィンガープリント)" }
あとは実際に作成されたキーペアを使ったEC2インスタンスにログインできれば成功です!