はじめに
EC2を作るとき、SSHアクセスするためのキーペアを選びます。
このとき新しいキーペアを作るか既存のキーペアを使うかを選択できるのですが、今回はそのEC2キーペアをCLI(AWS Command Line Interface)から作ってみましょう。awscli
の設定については「AWS CLIをセットアップしよう」でご紹介しています。
EC2キーペアとは
そもそもEC2のキーペアとはどのようなものなのでしょうか。
EC2へ接続する際に身分を証明するセキュリティ認証として、2つのキーからなるセットがキーペアです。
1つは自身で管理するプライベートキー。もう1つはEC2のインスタンスに保管されるパブリックキーです。
このキーペアにより、セキュリティを考慮したSSH接続が可能となっています。
キーペアの作成
awscli
が設定されていればキーペアを作るのは簡単です。
実際には下のコマンドを実行するだけでキーペアが出来上がります。
# ~/.ssh ディレクトリがない人は mkdir ~/.ssh しておいてください
aws ec2 create-key-pair --key-name aws-example-key --query 'KeyMaterial' --output text >~/.ssh/aws-example-key.pem
--key-name
は、AWS上でのこのキーペアの名称を入力します。--query 'KeyMaterial'
の部分を指定することで「unencryptedでPEMエンコードされたRSA秘密鍵」を生成します。
これはこういうものだと思っていただければ大丈夫です。
あとは--output text
でテキストとして出力されるものを ~/.ssh/aws-example-key.pem に保存しています。
鍵を使うためには適切なパーミッションを指定しておく必要があります。
そこで、以下のように400
に指定します。
chmod 400 ~/.ssh/aws-example-key.pem
これでキーペアの作成は完了です。
キーペアの確認
それでは、AWS上にキーペアが作成されたのか、これもawscli
から確認してみましょう。
これにはec2 describe-key-pairs
というコマンドを以下のように使います。
正常にキーペアが作られていればレスポンスが返ってきます。
aws ec2 describe-key-pairs --key-name aws-example-key
# {
# "KeyPairs": [
# {
# "KeyName": "aws-example-key",
# "KeyFingerprint": "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00"
# }
# ]
# }
また、GUIからEC2を作る際にも選択できるようになっています。
キーペアの削除
キーペアが不要になったらawscli
から削除もできます。以下を実行してみましょう。
削除系のコマンドはちょっと怖いので--dry-run
でどうなるか確認してから実行するとどうなるかわかります。
aws ec2 delete-key-pair --key-name aws-example-key --dry-run
# An error occurred (DryRunOperation) when calling the DeleteKeyPair operation: Request would have succeeded, but DryRun flag is set.
Errorと出るので一瞬「おや?」と思いますが、ちゃんとDryRunOperation
によるエラーであることがわかります。
また、Request would have succeeded
と言っているので大丈夫です。--dry-run
フラグを削除すれば実際にキーペアが削除されます。
まとめ
このようにキーペアをawscli
から作成・削除することができます。