Amazon EC2 キーペアと Windows インスタンス - Amazon Elastic Compute Cloud

Amazon EC2 キーペアと Windows インスタンス

Amazon EC2 はパブリックキー暗号を使用して、ログイン情報の暗号化と復号を行います。パブリックキー暗号はパブリックキーを使用してデータを暗号化し、受取人はプライベートキーを使用してデータを復号します。パブリックキーとプライベートキーは、キーペアと呼ばれます。パブリックキー暗号化では、パスワードの代わりにプライベートキーを使用して、安全にインスタンスにアクセスできます。

Amazon EC2 が使用するキーは、2048-bit SSH-2 RSA キーです。リージョンごとに最大 5,000 のキーペアを設定できます。Amazon EC2 はパブリックキーのみを保存し、ユーザーが秘密キーを保存します。お客様のプライベートキーを持っていれば誰でもお客様のログイン情報を復号できるので、プライベートキーを安全な場所に保存することが重要です。

Amazon EC2 ではプライベートキーのコピーが保持されないため、プライベートキーを失った場合、復元することはできません。ただし、失われたキーペアを使用するインスタンスに接続する方法はまだあります。詳細については、「プライベートキーを紛失した場合の Windows インスタンスへの接続」を参照してください。

インスタンスを起動すると、キーペアの名前の入力を求められます。RDP を使用してインスタンスに接続する予定の場合は、キーペアを指定する必要があります。Windows インスタンスでは、プライベートキーを使用して管理者パスワードを取得してから、RDP を使用してログインします。キーペアと Linux インスタンスの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Amazon EC2 のキーペア」を参照してください

キーペアの準備

Amazon EC2 を使用して、新しいキーペアを作成したり、既存のキーペアをインポートしたりできます。

オプション 1: Amazon EC2 を使用してキーペアを作成する

キーペアは、次のいずれかの方法で作成できます。

新しいコンソール

キーペアを作成するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[キーペア] を選択します。

  3. [キーペアの作成] を選択します。

  4. [名前] に、キーペアのわかりやすい名前を入力します。Amazon EC2 は、キー名として指定した名前にパブリックキーを関連付けます。キー名には、最大 255 文字の ASCII 文字を含めることができます。先頭または末尾にスペースを含めることはできません。

  5. [File format (ファイル形式)] で、プライベートキーを保存する形式を選択します。OpenSSH で使用できる形式でプライベートキーを保存するには、[pem] を選択します。プライベートキーを PuTTY で使用できる形式で保存するには、[ppk] を選択します。

  6. [キーペアの作成] を選択します。

古いコンソール

キーペアを作成するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。

    注記

    ナビゲーションペインは Amazon EC2 コンソールの左側にあります。ペインが表示されない場合、最小化されている可能性があります。矢印を選択してペインを展開します。

  3. [Create Key Pair] を選択します。

  4. [キーペア名] に新しいキーペアの名前を入力し、[作成] を選択します。名前には、最大 255 文字の ASCII 文字を含めることができます。先頭または末尾にスペースを含めることはできません。

  5. ブラウザによって秘密キーファイルが自動的にダウンロードされます。ベースファイル名はキーペアの名前として指定した名前となり、ファイル名の拡張子は .pem となります。プライベートキーファイルを安全な場所に保存します。

    重要

    これは、プライベートキーを保存する唯一のチャンスです。インスタンスと対応するプライベートキーの起動時には、毎回インスタンスに接続するたびに、キーペアの名前を入力する必要があります。

AWS CLI

キーペアを作成するには

create-key-pair AWS CLI コマンドを使用します。

PowerShell

キーペアを作成するには

New-EC2KeyPair AWS Tools for Windows PowerShell コマンドを使用します。

オプション 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 です。

サードパーティーツールを使用してキーペアを作成するには

  1. 選択したサードパーティ製のツールでキーペアを生成します。

  2. ローカルファイルにパブリックキーを保存します。例: C:\keys\my-key-pair.pub。このファイル名の拡張子は重要ではありません。

  3. .pem 拡張子を持つ別のローカルファイルにプライベートキーを保存します。例: C:\keys\my-key-pair.pem。プライベートキーファイルを安全な場所に保存します。インスタンスと対応するプライベートキーの起動時には、毎回インスタンスに接続するたびに、キーペアの名前を入力する必要があります。

キーペアを作成したら、次のいずれかの方法を使用してキーペアを Amazon EC2 にインポートします。

新しいコンソール

パブリックキーをインポートするには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[キーペア] を選択します。

  3. [Import Key Pair (キーペアのインポート)] を選択します。

  4. [Name (名前)] に、キーペアのわかりやすい名前を入力します。名前には、最大 255 文字の ASCII 文字を含めることができます。先頭または末尾にスペースを含めることはできません。

  5. [Browse (参照)] を選択してパブリックキーに移動して選択するか、パブリックキーのコンテンツを [Public key contents (パブリックキーのコンテンツ)] フィールドに貼り付けます。

  6. [Import Key Pair (キーペアのインポート)] を選択します。

  7. インポートしたキーペアがキーペアのリストに表示されていることを確認します。

古いコンソール

パブリックキーをインポートするには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。

  3. [Import Key Pair] を選択します。

  4. [Import Key Pair] ダイアログボックスで [Browse] を選択し、前に保存したパブリックキーファイルを選択します。[Key pair name] フィールドにキーペアの名前を入力し、[Import] を選択します。名前には、最大 255 文字の ASCII 文字を含めることができます。先頭または末尾にスペースを含めることはできません。

  5. インポートしたキーペアがキーペアのリストに表示されていることを確認します。

AWS CLI

パブリックキーをインポートするには

import-key-pair AWS CLI コマンドを使用します。

キーペアが正常にインポートされたことを確認するには

describe-key-pairs AWS CLI コマンドを使用します。

PowerShell

パブリックキーをインポートするには

Import-EC2KeyPair AWS Tools for Windows PowerShell コマンドを使用します。

キーペアが正常にインポートされたことを確認するには

Get-EC2KeyPair AWS Tools for Windows PowerShell コマンドを使用します。

キーペアのタグ付け

既存のキーペアを分類および管理しやすくするため、カスタムメタデータでタグ付けすることができます。タグの仕組みの詳細については、「リソースのタグ付け」を参照してください。

新しいコンソールとコマンドラインツールを使用して、タグを表示、追加、削除できます。

新しいコンソール

既存のキーペアのタグを表示、追加、または削除するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[キーペア] を選択します。

  3. キーペアを選択し、[アクション]、[タグの管理] の順に選択します。

  4. [Manage tags] セクションには、キーペアに割り当てられているすべてのタグが表示されます。

    • タグを追加するには、[Add tag] を選択し、タグのキーと値を入力します。キーペアごとに最大 50 個のタグを追加できます。詳細については、「タグの制限」を参照してください。

    • タグを削除するには、削除するタグの横にある [Remove] を選択します。

  5. [Save changes] を選択します。

AWS CLI

キーペアのタグを表示するには

describe-tags AWS CLI コマンドを使用します。次の例では、すべてのキーペアのタグの説明を表示します。

C:\> aws ec2 describe-tags --filters "Name=resource-type,Values=key-pair"
{ "Tags": [ { "Key": "Environment", "ResourceId": "key-0123456789EXAMPLE", "ResourceType": "key-pair", "Value": "Production" }, { "Key": "Environment", "ResourceId": "key-9876543210EXAMPLE", "ResourceType": "key-pair", "Value": "Production" }] }

特定のキーペアのタグの説明を表示するには

describe-key-pairs AWS CLI コマンドを使用します。

C:\> aws ec2 describe-key-pairs --key-pair-ids key-0123456789EXAMPLE
{ "KeyPairs": [ { "KeyName": "MyKeyPair", "KeyFingerprint": "1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f", "KeyPairId": "key-0123456789EXAMPLE", "Tags": [ { "Key": "Environment", "Value": "Production" }] }] }

既存のキーペアにタグを付けるには

create-tags AWS CLI コマンドを使用します。次の例では、既存のキーペアに Key=Cost-CenterValue=CC-123 のタグが付けられています。

C:\> aws ec2 create-tags --resources key-0123456789EXAMPLE --tags Key=Cost-Center,Value=CC-123

キーペアからタグを削除するには

delete-tags AWS CLI コマンドを使用します。例については、AWS CLI Command Referenceの「」を参照してください。

PowerShell

キーペアのタグを表示するには

Get-EC2Tag コマンドを使用します。

特定のキーペアのタグの説明を表示するには

Get-EC2KeyPair コマンドを使用します。

既存のキーペアにタグを付けるには

New-EC2Tag コマンドを使用します。

キーペアからタグを削除するには

Remove-EC2Tag コマンドを使用します。

キーペアのパブリックキーを取得する

ローカルの 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

インスタンスへの接続に使用するキーペアを変更しても、新しいパブリックキーを表示するようにインスタンスメタデータは更新されません。代わりに、インスタンスのメタデータは、インスタンスの起動時に指定したキーペアのパブリックキーを引き続き表示します。詳細については、「インスタンスメタデータの取得」を参照してください。

(オプション) キーペアのフィンガープリントの確認

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 は異常なインスタンスを検出した場合、代わりのインスタンスを起動します。ただし、キーペアが見つからない場合は、インスタンスの起動に失敗します。

次のいずれかの方法を使用して、キーペアを削除できます。

新しいコンソール

キーペアを削除するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[キーペア] を選択します。

  3. 削除するキーペアを選択し、[Delete (削除)] を選択します。

  4. 確認フィールドで、Delete を入力し、[Delete (削除)] を選択します。

古いコンソール

キーペアを削除するには

  1. https://console.aws.amazon.com/ec2/ で Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインの [NETWORK & SECURITY] で、[Key Pairs] を選択します。

  3. キーペアを選択し、[Delete] を選択します。

  4. プロンプトが表示されたら、[Yes] を選択します。

AWS CLI

キーペアを削除するには

delete-key-pair AWS CLI コマンドを使用します。

PowerShell

キーペアを削除するには

Remove-EC2KeyPair AWS Tools for Windows PowerShell コマンドを使用します。