Amazon EC2 インスタンスのキーペアを作成する - Amazon Elastic Compute Cloud

Amazon EC2 インスタンスのキーペアを作成する

Amazon EC2 を使用してキーペアを作成できます。または、サードパーティー製のツールを使用して、キーペアを作成してから、Amazon EC2 にインポートすることもできます。

Amazon EC2 は、Linux および Windows インスタンスで 2048-bit SSH-2 RSA キーをサポートしています。Amazon EC2 は、Linux インスタンスでは ED25519 キーもサポートしています。

キーペアを作成した後に SSH を使用して Linux インスタンスに接続するステップについては、「SSH を使用した Linux インスタンスへの接続」を参照してください。

キーペアを作成した後に RDP を使用して Windows インスタンスに接続するステップについては、「RDP を使用した Windows インスタンスへの接続」を参照してください。

Amazon EC2 を使用してキーペアを作成する

Amazon EC2 を使用してキーペアを作成すると、パブリックキーは Amazon EC2 内に保存されます。プライベートキーは、自分で保存します。

リージョンごとに最大 5,000 のキーペアを作成できます。増加をリクエストするには、サポートケースを作成します。詳細については、「AWS Support ユーザーガイド」の「サポートケースの作成」を参照してください。

Console
Amazon EC2 を使用してキーペアを作成するには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

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

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

  5. 使用しているオペレーティングシステムに適したキーペアのタイプを選択します。

    (Linux インスタンス) [キーペアのタイプ][RSA] または [ED25519] を選択します。

    (Windows インスタンス) [キーペアのタイプ][RSA] を選択します。Windows インスタンスでは ED25519 キーはサポートされていません。

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

  7. タグを追加するには、[タグの追加] ページで [タグの追加] をクリックし、タグのキーと値を入力します。各タグについて、これを繰り返します。

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

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

    重要

    プライベートキーのファイルを保存できるのは、このタイミングだけです。

  10. macOS または Linux コンピュータの SSH クライアントを使用して Linux インスタンスに接続する予定がある場合は、自分以外のユーザーが読み込むことができないように、次のコマンドを使用してプライベートキーファイルの許可を設定します。

    chmod 400 key-pair-name.pem

    これらのアクセス権限を設定しないと、このキーペアを使用してインスタンスに接続できません。詳細については、「エラー: Unprotected Private Key File (保護されていないプライベートキーファイル)」を参照してください。

AWS CLI
Amazon EC2 を使用してキーペアを作成するには
  1. create-key-pair コマンドを使用し、次のようにキーペアを生成してプライベートキーを .pem ファイルに保存します。

    --key-nameを使用する場合、公開キーの名前を指定します。名前には、最大 255 文字の ASCII 文字を含めることができます。

    --key-typeを使用する場合で、rsaed25519のいずれかを指定します。--key-typeパラメータを含まない場合は、デフォルトで rsa キーが作成されます。Windows インスタンスでは、ED25519 キーはサポートされていません。

    --key-formatを使用する場合で、pemppkのいずれかを指定します。--key-format パラメータを含まない場合は、デフォルトで pem キーが作成されます。

    --query "KeyMaterial"はプライベートキーのマテリアルを出力します。

    --output text > my-key-pair.pem は、プライベートキーのマテリアルを拡張機能とともにファイルに保存します。拡張子は、.pem または .ppk のいずれかです。プライベートキーには、公開キーの名前とは異なる名前を指定できますが、使いやすくするために、同じ名前を使用してください。

    aws ec2 create-key-pair \ --key-name my-key-pair \ --key-type rsa \ --key-format pem \ --query "KeyMaterial" \ --output text > my-key-pair.pem
  2. macOS または Linux コンピュータの SSH クライアントを使用して Linux インスタンスに接続する予定がある場合は、自分以外のユーザーが読み込むことができないように、次のコマンドを使用してプライベートキーファイルの許可を設定します。

    chmod 400 key-pair-name.pem

    これらのアクセス権限を設定しないと、このキーペアを使用してインスタンスに接続できません。詳細については、「エラー: Unprotected Private Key File (保護されていないプライベートキーファイル)」を参照してください。

PowerShell
Amazon EC2 を使用してキーペアを作成するには

New-EC2KeyPair AWS Tools for Windows PowerShell コマンドを使用し、次のようにキーを生成して .pem または .ppk ファイルに保存します。

-KeyNameを使用する場合、公開キーの名前を指定します。名前には、最大 255 文字の ASCII 文字を含めることができます。

-KeyTypeを使用する場合で、rsaed25519のいずれかを指定します。-KeyTypeパラメータを含まない場合は、デフォルトで rsa キーが作成されます。Windows インスタンスでは、ED25519 キーはサポートされていません。

-KeyFormatを使用する場合で、pemppkのいずれかを指定します。-KeyFormat パラメータを含まない場合は、デフォルトで pem キーが作成されます。

KeyMaterialはプライベートキーのマテリアルを出力します。

Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem は、プライベートキーのマテリアルを拡張機能とともにファイルに保存します。拡張子は、.pem または .ppk にすることができます。プライベートキーには、公開キーの名前とは異なる名前を指定できますが、使いやすくするために、同じ名前を使用してください。

PS C:\> (New-EC2KeyPair -KeyName "my-key-pair" -KeyType "rsa" -KeyFormat "pem").KeyMaterial | Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem

AWS CloudFormation を使用してキーペアを作成する

AWS CloudFormation を使用して新しいキーペアを作成すると、プライベートキーは AWS Systems Manager パラメータストアに保存されます。パラメータ名の形式は次のとおりです。

/ec2/keypair/key_pair_id

詳細については、「AWS Systems Manager ユーザーガイド」の「AWS Systems Manager パラメータストア」を参照してください。

AWS CloudFormation を使用してキーペアを作成するには
  1. テンプレートに AWS::EC2::KeyPair リソースを指定します。

    Resources: NewKeyPair: Type: 'AWS::EC2::KeyPair' Properties: KeyName: new-key-pair
  2. キーペアの ID を取得するには、次のように describe-key-pairs コマンドを使用します。

    aws ec2 describe-key-pairs --filters Name=key-name,Values=new-key-pair --query KeyPairs[*].KeyPairId --output text

    以下は出力例です。

    key-05abb699beEXAMPLE
  3. キーのパラメータを取得するために、次のように get-parameter コマンドを使用して、キーマテリアルを .pem ファイルに保存します。

    aws ssm get-parameter --name /ec2/keypair/key-05abb699beEXAMPLE --with-decryption --query Parameter.Value --output text > new-key-pair.pem
必要な IAM 許可

AWS CloudFormation がユーザーに代わって Parameter Store パラメータを管理できるようにするには、AWS CloudFormation またはユーザーにより引き受けられた IAM ロールは、次の許可を持っている必要があります。

  • ssm:PutParameter – プライベートキーマテリアル用パラメーターの削除を許可します。

  • ssm:DeleteParameter - プライベートキーマテリアルを保存したパラメータの削除する許可を付与します。この権限は、キーペアが AWS CloudFormation によってインポートまたは作成されたかに関係なく必要です。

スタックによって作成またはインポートされたキーペアを AWS CloudFormation が削除する場合、AWS CloudFormation がキーペアをインポートする際ではなく、キーペアを作成する際にのみパラメーターを作成する場合でも権限チェックが実行され、パラメータを削除する権限があるかどうかが判断されます。AWS CloudFormation はアカウント内のどのパラメータとも一致しない偽造パラメータ名を使用して必要なアクセス許可をテストします。そのため、AccessDeniedException エラーメッセージに偽造されたパラメータ名が表示されることがあります。

サードパーティー製のツールを使用してキーペアを作成し、Amazon EC2 にパブリックキーをインポートする

Amazon EC2 を使用してキーペアを作成する代わりに、サードパーティー製のツールで RSA または ED25519 のキーペアを作成してから、パブリックキーを Amazon EC2 にインポートすることもできます。

キーペアの要件
  • サポートされているタイプ:RSA および ED25519。Amazon EC2 は DSA キーを受け付けません。

  • サポートされる形式:

    • OpenSSH パブリックキー形式 (~/.ssh/authorized_keys の形式)。EC2 Instance Connect API の使用中に SSH を使用して接続する場合は、SSH2 形式もサポートされます。

    • SSH プライベートキーファイル形式は PEM または PPK である必要があります

    • (RSA のみ)Base64 でエンコードされた DER 形式

    • SSH パブリックキーファイル形式 [RFC4716] で指定

  • サポートされているキーの長さ 1024、2048、および 4096。EC2 Instance Connect API の使用中に SSH を使用して接続する場合は、長さ 2048 および 4096 がサポートされます。

サードパーティーツールを使用してキーペアを作成するには
  1. 選択したサードパーティ製のツールでキーペアを生成します。例えば、ssh-keygen (標準 OpenSSH インストールで提供されるツール) を使用しできます。また、Java、Ruby、Python などのさまざまなプログラミング言語では、RSAまたはED25519 キーペアの作成に使用できる標準ライブラリが提供されています。

    重要

    プライベートキーは、PEM または PPK 形式である必要があります。例えば、ssh-keygen -m PEM を使用して OpenSSH キーを PEM 形式で生成します。

  2. ローカルファイルにパブリックキーを保存します。例えば、~/.ssh/my-key-pair.pub と指定します。このファイル名の拡張子は重要ではありません。

  3. .pem または .ppk 拡張子を持つローカルファイルにプライベートキーを保存します。例えば、~/.ssh/my-key-pair.pem~/.ssh/my-key-pair.ppk などです。

    重要

    プライベートキーファイルを安全な場所に保存します。インスタンスと対応するプライベートキーの起動時には、毎回インスタンスに接続するたびに、パブリックキーの名前を入力する必要があります。

Amazon EC2 を使用してキーペアを作成する代わりに、サードパーティー製のツールで RSA キーペアを作成してから、パブリックキーを Amazon EC2 にインポートすることもできます。

キーペアの要件
  • サポートされているタイプ: RSA。Amazon EC2 は DSA キーを受け付けません。

    注記

    Windows インスタンスでは ED25519 キーはサポートされていません。

  • サポートされる形式:

    • OpenSSH パブリックキー形式

    • SSH プライベートキーファイル形式は PEM または PPK である必要があります

    • (RSA のみ)Base64 でエンコードされた DER 形式

    • SSH パブリックキーファイル形式 [RFC4716] で指定

  • サポートされているキーの長さ 1024、2048、および 4096。

サードパーティーツールを使用してキーペアを作成するには
  1. 選択したサードパーティ製のツールでキーペアを生成します。例えば、ssh-keygen (標準 OpenSSH インストールで提供されるツール) を使用しできます。また、Java、Ruby、Python などのさまざまなプログラミング言語では、RSA キーペアの作成に使用できる標準ライブラリが提供されています。

    重要

    プライベートキーは、PEM または PPK 形式である必要があります。例えば、ssh-keygen -m PEM を使用して OpenSSH キーを PEM 形式で生成します。

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

  3. .pem または .ppk 拡張子を持つローカルファイルにプライベートキーを保存します。例えば、C:\keys\my-key-pair.pemC:\keys\my-key-pair.ppk などです。EC2 コンソールから Windows インスタンスに接続するときに選択できるのは .pem ファイルだけなので、このファイルのファイル名拡張子は重要です。

    重要

    プライベートキーファイルを安全な場所に保存します。インスタンスと対応するプライベートキーの起動時には、毎回インスタンスに接続するたびに、パブリックキーの名前を入力する必要があります。

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

Console
パブリックキーを Amazon EC2 にインポートするには
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

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

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

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

    注記

    EC2 コンソールからインスタンスに接続すると、コンソールはプライベートキーファイルの名前としてこの名前が提示します。

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

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

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

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

import-key-pair AWS CLI コマンドを実行します。

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

describe-key-pairs AWS CLI コマンドを実行します。

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

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

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

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