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 インスタンスへの接続」と「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 にインポートすることもできます。

キーペアの要件
  • サポートされている型:

    • (Linux と Windows) RSA

    • (Linux のみ) ED25519

      注記

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

    • Amazon EC2 は DSA キーを受け付けません。

  • サポートされる形式:

    • OpenSSH パブリックキー形式 (Linux の場合、~/.ssh/authorized_keys の形式)

    • (Linux のみ) EC2 Instance Connect API の使用中に SSH を使用して接続する場合は、SSH2 形式もサポートされます。

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

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

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

  • サポートされている長さ:

    • 1024、2048、および 4096。

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

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

    重要

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

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

  3. .pem または .ppk 拡張子を持つローカルファイルにプライベートキーを保存します。例えば、~/.ssh/my-key-pair.pem または ~/.ssh/my-key-pair.ppk (Linux、macOS)、あるいは C:\keys\my-key-pair.pem または C:\keys\my-key-pair.ppk (Windows)。インスタンスへの接続に使用するツールによっては特定のファイル形式が必要になるため、ファイル拡張子は重要です。OpenSSH には .pem ファイルが必要であり、PuTTY には .ppk ファイルが必要です。

    重要

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

キーペアを作成したら、次のいずれかの方法を使用してパブリックキーを 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 コマンドを実行します。