Amazon EC2 キーペアと Windows インスタンス
キーペアは、インスタンスへの接続時に身分証明に使用するセキュリティ認証情報のセットであり、プライベートキーとパブリックキーで構成されます。パブリックキーは Amazon EC2 が保存し、プライベートキーはユーザーが保存します。インスタンスに安全にアクセスするには、プライベートキーを使用します。プライベートキーを持つ誰でもがインスタンスに接続できるため、プライベートキーは安全な場所に保存することが重要です。
インスタンスの起動時に、キーペアの入力を求められます。RDP を使用してインスタンスに接続する予定の場合は、キーペアを指定する必要があります。既存のキーペアを選択するか、新しいキーペアを作成することができます。Windows インスタンスでは、プライベートキーを使用して管理者パスワードを取得し、RDP を使用してログインします。インスタンスへの接続の詳細については、Windows インスタンスへの接続 を参照してください。キーペアと Linux インスタンスの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon EC2 のキーペアと Linux インスタンス」を参照してください。
Amazon EC2 ではプライベートキーのコピーが保持されないため、プライベートキーを失った場合、復元することはできません。ただし、プライベートキーを失くしたインスタンスに接続する方法はまだあります。詳細については、「プライベートキーを紛失した場合の Windows インスタンスへの接続」を参照してください。
Amazon EC2 が使用するキーは、2048-bit SSH-2 RSA キーです。リージョンごとに最大 5,000 のキーペアを設定できます。
目次
キーペアの作成またはインポート
Amazon EC2 を使用して、新しいキーペアを作成したり、既存のキーペアをインポートしたりできます。
オプション 1: Amazon EC2 を使用してキーペアを作成する
キーペアは、次のいずれかの方法で作成できます。
オプション 2: 独自のパブリックキーを Amazon EC2 にインポートする
Amazon EC2 を使用してキーペアを作成する代わりに、サードパーティー製のツールで RSA キーペアを作成してから、パブリックキーを Amazon EC2 にインポートすることもできます。たとえば、ssh-keygen (標準 OpenSSH インストールで提供されるツール) を使用して、キーペアを作成できます。また、Java、Ruby、Python などのさまざまなプログラミング言語では、RSA キーペアの作成に使用できる標準ライブラリが提供されています。
要件
-
以下の形式がサポートされています。
-
OpenSSH パブリックキー形式
-
Base64 でエンコードされた DER 形式
-
SSH パブリックキーファイル形式 (RFC4716
で指定) -
SSH プライベートキーファイルの形式が PEM である必要があります (たとえば、
ssh-keygen -m PEM
を使用して、OpenSSH キーを PEM 形式に変換)。
-
-
RSA キーを作成します。Amazon EC2 では DSA キーは使用できません。
-
サポートされている長さは 1024、2048、および 4096 です。
サードパーティーツールを使用してキーペアを作成するには
-
選択したサードパーティ製のツールでキーペアを生成します。
-
ローカルファイルにパブリックキーを保存します。例:
C:\keys\my-key-pair.pub
。このファイル名の拡張子は重要ではありません。 -
.pem
拡張子を持つ別のローカルファイルにプライベートキーを保存します。例:C:\keys\my-key-pair.pem
。プライベートキーファイルを安全な場所に保存します。インスタンスと対応するプライベートキーの起動時には、毎回インスタンスに接続するたびに、キーペアの名前を入力する必要があります。
キーペアを作成したら、次のいずれかの方法を使用してキーペアを Amazon EC2 にインポートします。
キーペアのタグ付け
既存のキーペアを分類および管理しやすくするため、カスタムメタデータでタグ付けすることができます。タグの仕組みの詳細については、「リソースのタグ付け」を参照してください。
新しいコンソールとコマンドラインツールを使用して、タグを表示、追加、削除できます。
キーペアのパブリックキーを取得する
ローカルの Windows コンピュータでは、PuTTYgen を使用してキーペアのパブリックキーを取得します。
PuTTYgen を起動し、[Load] を選択します。.ppk
または .pem
ファイルを選択します。PuTTYgen の [Public key for pasting into OpenSSH authorized_keys ファイル] にパブリックキーが表示されます。パブリックキーは、[パブリックキーの保存] を選択してファイルの名前を指定し、ファイルを保存後、そのファイルを開いて表示することもできます。
インスタンスメタデータを使用してキーペアのパブリックキーを取得する
インスタンスの起動時に指定したパブリックキーも、そのインスタンスメタデータを介して表示できます。インスタンスの起動時に指定したパブリックキーを表示するには、インスタンスから次のコマンドを使用します。
PS C:\>
Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
以下に出力例を示します。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE my-key-pair
インスタンスへの接続に使用するキーペアを変更しても、新しいパブリックキーを表示するようにインスタンスメタデータは更新されません。代わりに、インスタンスのメタデータは、インスタンスの起動時に指定したキーペアのパブリックキーを引き続き表示します。詳細については、「インスタンスメタデータの取得」を参照してください。
起動時に指定されたキーペアの識別
インスタンスの起動時に、キーペアの入力を求められます。RDP を使用してインスタンスに接続する予定の場合は、キーペアを指定する必要があります。
起動時に指定されたキーペアを識別するには
-
https://console.aws.amazon.com/ec2/
で Amazon EC2 コンソールを開きます。 -
ナビゲーションペインで [インスタンス] を選択し、インスタンスを選択します。
-
[説明] タブの [キーペア名] フィールドに、インスタンスの起動時に指定したキーペアの名前が表示されます。インスタンスのパブリックキーを変更したり、キーペアを追加しても、[キーペア名] の値は変更されません。
(オプション) キーペアのフィンガープリントの確認
Amazon EC2 コンソールの [キーペア] ページで、[フィンガープリント] 列にキーペアから生成されたフィンガープリントが表示されます。AWS では、キーペアが AWS とサードパーティツールのいずれで生成されたかによって、フィンガープリントの計算が異なります。AWS を使用してキーペアを作成した場合、フィンガープリントは、SHA-1 ハッシュ関数を使用して計算されます。サードパーティツールによってキーペアを作成し、パブリックキーを AWS にアップロードした場合、または AWS で作成した既存のプライベートキーから新しいパブリックキーを作成し、AWS にアップロードした場合、フィンガープリントは、MD5 ハッシュ関数を使用して計算されます。
[Key Pairs (キーペア)] ページに表示される SSH2 フィンガープリントを使用して、ローカルコンピュータにあるプライベートキーが、AWS に格納されているパブリックキーと一致することを確認できます。プライベートキーファイルをダウンロードしたコンピュータから、プライベートキーファイルを使用して SSH2 フィンガープリントを生成します。出力はコンソールに表示されるフィンガープリントと一致する必要があります。
AWS を使用してキーペアを作成した場合、OpenSSL ツールを使用して次の例のようにフィンガープリントを生成できます。
C:\>
openssl pkcs8 -in
path_to_private_key
-inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c
サードパーティーツールを使用してキーペアを作成し、パブリックキーを AWS にアップロードした場合、OpenSSL ツールを使用して、次の例のようにフィンガープリントを生成できます。
C:\>
openssl rsa -in
path_to_private_key
-pubout -outform DER | openssl md5 -c
OpenSSH 7.8 以降を使用して OpenSSH キーペアを作成し、パブリックキーを AWS にアップロードした場合、ssh-keygen を使用して、次の例のようにフィンガープリントを生成できます。
C:\>
ssh-keygen -ef
path_to_private_key
-m PEM | openssl rsa -RSAPublicKey_in -outform DER | openssl md5 -c
プライベートキーを紛失した場合の Windows インスタンスへの接続
新しく起動した Windows インスタンスに接続する際、インスタンスの起動時に指定したキーペアのプライベートキーを使用して、管理者アカウントのパスワードを復号します。
管理者パスワードを紛失し、プライベートキーを使用できなくなった場合は、パスワードをリセットするか、新しいインスタンスを作成する必要があります。詳細については、「紛失したか、期限切れとなった Windows 管理者パスワードのリセット」を参照してください。AWS Systems Manager ドキュメントを使用してパスワードをリセットする手順については、「Amazon EC2 インスタンスでのパスワードと SSH キーのリセット」 (AWS Systems Manager ユーザーガイド) を参照してください。
キーペアの削除
キーペアを削除すると、Amazon EC2 のパブリックキーのコピーのみが削除されます。キーペアの削除は、コンピュータのプライベートキーにも、このキーペアを使用して既に起動している各インスタンスのパブリックキーにも影響しません。削除したキーペアを使用して新しいインスタンスを起動することはできませんが、プライベートキー
(.pem
) ファイルを保持している間は、削除したキーペアを使用して起動した各インスタンスに引き続き接続することができます。
Auto Scaling グループ (Elastic Beanstalk 環境など) を使用している場合、削除するキーペアが起動設定で指定されていないことを確認します。Amazon EC2 Auto Scaling は異常なインスタンスを検出した場合、代わりのインスタンスを起動します。ただし、キーペアが見つからない場合は、インスタンスの起動に失敗します。
次のいずれかの方法を使用して、キーペアを削除できます。