翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
キーの管理
このセクションでは、キーの生成方法やローテーション方法など、SSHキーに関する情報を確認できます。 AWS Lambda で Transfer Family を使用してキーを管理する方法の詳細については、ブログ記事「A AWS Transfer Family と を使用したユーザーセルフサービスキー管理の有効化 AWS Lambda
注記
AWS Transfer Family は、RSA、ECDSA、および ED25519キーを受け入れます。
このセクションでは、Pretty Good Privacy (PGP) キーを生成および管理する方法も説明します。
ユーザーキーとサーバーキーでサポートされるアルゴリズム
AWS Transfer Family内のユーザーキーペアとサーバーキーペアでは、以下のキーアルゴリズムがサポートされています。
注記
ワークフローのPGP復号に使用するアルゴリズムについては、PGP「キーペア でサポートされているアルゴリズム」を参照してください。
-
の場合ED25519:
ssh-ed25519
-
の場合RSA:
-
rsa-sha2-256
-
rsa-sha2-512
-
-
の場合ECDSA:
-
ecdsa-sha2-nistp256
-
ecdsa-sha2-nistp384
-
ecdsa-sha2-nistp521
-
注記
古いセキュリティポリシーSHA1ではssh-rsa
、 をサポートしています。詳細については、「暗号アルゴリズム」を参照してください。
サービスマネージドユーザーのSSHキーを生成する
サービスマネージド認証方法を使用してユーザーを認証するようにサーバーを設定できます。この方法では、ユーザー名とSSHキーがサービス内に保存されます。ユーザーのパブリックSSHキーは、ユーザーのプロパティとしてサーバーにアップロードされます。このキーは、キーベースの標準認証プロセスの一部としてサーバーによって使用されます。各ユーザーは、個々のサーバーで複数のパブリックSSHキーをファイルに保存できます。ユーザ 1 人あたりに保存できるキー数の制限については、「Amazon Web Services 全般のリファレンス」の「AWS Transfer Family エンドポイントとクォータ」を参照してください。
サービスマネージド認証方法の代わりに、カスタム ID プロバイダー、または を使用してユーザーを認証できます AWS Directory Service for Microsoft Active Directory。詳細については、カスタム ID プロバイダーの使用 または AWS Directory Service ID プロバイダーの使用 を参照してください。
サーバーがユーザー認証に使用できる方法は 1 つのみ (サービスマネージドまたはカスタム ID プロバイダー) であり、サーバーの作成後にそのメソッドを変更することはできません。
macOS 、Linux、または Unix でのSSHキーの作成
macOS 、Linux、または Unix オペレーティングシステムでは、 ssh-keygen
コマンドを使用してSSHパブリックキーとSSHプライベートキーを作成し、キーペアとも呼ばれます。
macOS 、Linux、または Unix オペレーティングシステムでSSHキーを作成するには
-
macOS、Linux、または UNIX でコマンドターミナルを開きます。
-
AWS Transfer Family は、RSA-、ECDSA-、および ED25519形式のキーを受け入れます。生成するキーペアのタイプに基づいて適切なコマンドを選択してください。
注記
以下の例では、パスフレーズは指定していません。この場合、ツールはパスフレーズの入力を要求し、確認のためもう一度入力するように求めます。パスフレーズを作成すると、秘密鍵の保護が強化され、システム全体のセキュリティも向上する可能性があります。パスフレーズは復元できません。忘れた場合は、新しいキーを作成する必要があります。
ただし、サーバーホスト鍵を生成する場合、Transfer Family サーバーは起動時にパスワードを要求できないため、コマンドで
-N ""
オプションを指定する(またはプロンプトが表示されたらEnter
を 2 回押す)ことで、空のパスフレーズを「必ず」指定する必要があります。-
RSA 4096 ビットキーペアを生成するには:
ssh-keygen -t rsa -b 4096 -f
key_name
-
ECDSA 521 ビットキーペアを生成するには (ECDSA のビットサイズは 256、384、521 です)。
ssh-keygen -t ecdsa -b 521 -f
key_name
-
ED25519 キーペアを生成するには:
ssh-keygen -t ed25519 -f
key_name
注記
はSSHキーペアファイル名です。key_name
ssh-keygen
出力の例を以下に示します。ssh-keygen -t rsa -b 4096 -f key_name Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in key_name. Your public key has been saved in key_name.pub. The key fingerprint is: SHA256:8tDDwPmanTFcEzjTwPGETVWOGW1nVz+gtCCE8hL7PrQ bob.amazon.com The key's randomart image is: +---[RSA 4096]----+ | . ....E | | . = ... | |. . . = ..o | | . o + oo = | | + = .S.= * | | . o o ..B + o | | .o.+.* . | | =o*+*. | | ..*o*+. | +----[SHA256]-----+
注記
上記の
ssh-keygen
コマンドを実行すると、現在のディレクトリにパブリックキーとプライベートキーが作成されます。これで、SSHキーペアを使用する準備が整いました。ステップ 3 と 4 に従って、サービスマネージドユーザーのSSHパブリックキーを保存します。これらのユーザーは、Transfer Family サーバーエンドポイントでファイルを転送するときに キーを使用します。
-
-
.ファイルを見つけて開きます。key_name
.pub -
テキストをコピーし、サービスマネージドユーザーのSSHパブリックキーに貼り付けます。
-
で AWS Transfer Family コンソールを開きhttps://console.aws.amazon.com/transfer/
、ナビゲーションペインからサーバーを選択します。 -
[サーバー] ページで、更新するユーザーを含むサーバーの [サーバー ID] を選択します。
-
パブリックキーを追加するユーザーを選択します。
-
SSH パブリックキーペインで、SSHパブリックキーの追加 を選択します。
-
生成したパブリックキーのテキストをSSHパブリックキーテキストボックスに貼り付け、キーの追加 を選択します。
新しいキーはSSHパブリックキーペインに表示されます。
-
Microsoft Windows でのSSHキーの作成
Windows では、若干異なるSSHキーペア形式が使用されます。パブリックキーは PUB
形式、プライベートキーは PPK
形式である必要があります。Windows では、P uTTYgen を使用して適切な形式でSSHキーペアを作成できます。P を使用して、 を使用して生成されたプライベートキーssh-keygen
を .ppk
ファイルuTTYgen に変換することもできます。
注記
プライベートキーファイルを .ppk
形式ではない状態で WinSCP を提示すると、そのクライアントはキーを .ppk
形式に変換することを提案します。
Windows uTTYgen で P を使用してSSHキーを作成するチュートリアルについては、SSH.com ウェブサイト
SSH2 パブリックキーをPEM形式に変換する
AWS Transfer Family は、フォーマットPEMされたパブリックキーのみを受け入れます。SSH2 パブリックキーがある場合は、変換する必要があります。SSH2 パブリックキーの形式は次のとおりです。
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20160402" AAAAB3NzaC1yc2EAAAABJQAAAgEAiL0jjDdFqK/kYThqKt7THrjABTPWvXmB3URI : : ---- END SSH2 PUBLIC KEY ----
PEM パブリックキーの形式は次のとおりです。
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAA...
次のコマンドを実行して、SSH2フォーマットされたパブリックキーをPEMフォーマットされたパブリックキーに変換します。置換 ssh2-key
SSH2 キーの名前、および PEM-key
PEM キーの名前。
ssh-keygen -i -f
ssh2-key
.pub >PEM-key
.pub
SSH キーのローテーション
セキュリティのために、SSHキーをローテーションするベストプラクティスをお勧めします。通常、このローテーションは、セキュリティポリシーの一部として指定され、自動化した形で実装されます。セキュリティのレベルによっては、機密性の高い通信では、SSHキーペアを 1 回だけ使用できます。これにより、キーを保存することのリスクがなくなります。ただし、SSH認証情報を一定期間保存し、ユーザーに過度の負担をかけない間隔を設定する方がはるかに一般的です。標準的な設定は 3 か月です。
SSH キーローテーションを実行するには、次の 2 つの方法を使用します。
-
コンソールで、新しいSSHパブリックキーをアップロードし、既存のSSHパブリックキーを削除できます。
-
を使用してAPI、 を使用してユーザーの Secure Shell (SSH) パブリックキーDeleteSshPublicKeyAPIを削除し、 ImportSshPublicKeyAPIを使用してユーザーのアカウントに新しい Secure Shell (SSH) パブリックキーを追加することで、既存のユーザーを更新できます。
PGP キーの生成と管理
Transfer Family がワークフローで処理するファイルでは、Pretty Good Privacy (PGP) 復号を使用できます。ワークフローステップで復号を使用するには、 PGP キーを指定する必要があります。
AWS ストレージブログには、ファイルの暗号化と復号化、ファイルの暗号化と復号化を PGPと で AWS Transfer Family
PGP キーの生成
PGP キーの生成に使用する方法は、オペレーティングシステムと使用しているキー生成ソフトウェアのバージョンによって異なります。
Linux または Unix を使用している場合は、パッケージインストーラーを使用して gpg
をインストールします。お使いの Linux ディストリビューションに応じて、以下のコマンドのいずれかが動作するはずです。
sudo yum install gnupg
sudo apt-get install gnupg
Windows または macOS の場合は、「https://gnupg.org/download/
PGP キージェネレーターソフトウェアをインストールしたら、 gpg --full-gen-key
または gpg --gen-key
コマンドを実行してキーペアを生成します。
注記
GnuPG
バージョン 2.3.0 以降を使用している場合は、gpg --full-gen-key
を実行する必要があります。作成するキーのタイプの入力を求められたら、 RSAまたは を選択しますECC。ただし、 を選択した場合はECC、必ず次のいずれかを選択してください。NIST または BrainPool 楕円曲線。選択しない Curve 25519.
PGPキーペアでサポートされているアルゴリズム
PGP キーペアでは、次のアルゴリズムがサポートされています。
-
RSA
-
エルガマル
-
ECC:
-
NIST
-
BrainPool
-
注記
Curve25519 キーはサポートされていません。
役立つgpg
サブコマンド
以下は gpg
に役立つサブコマンドです。
-
gpg --help
— このコマンドには、使用可能なオプションが一覧表示され、例もいくつか含まれている場合があります。 -
gpg --list-keys
— このコマンドは、作成したすべてのキーペアの詳細を一覧表示します。 -
gpg --fingerprint
— このコマンドは、各キーのフィンガープリントを含む、すべてのキーペアの詳細を一覧表示します。 -
gpg --export -a
— このコマンドは、user-name
キーの生成時に使用されたキーの公開キー部分をエクスポートします。user-name
PGP キーの管理
PGP キーを管理するには、 を使用する必要があります AWS Secrets Manager。
注記
シークレットネームには、Transfer FamilyのサーバーIDが含まれます。つまり、PGPキー情報を に保存する前に、サーバーを既に識別または作成しておく必要があります AWS Secrets Manager。
すべてのユーザーに 1 つのキーとパスフレーズを使用する場合は、PGPキーブロック情報をシークレット名 に保存できます。ここでaws/transfer/
、 server-id
/@pgp-default
は Transfer Family サーバーの ID です。このデフォルト・キーは、server-id
がワークフローを実行するユーザと一致するキーがない場合に使用されます。user-name
または、特定のユーザーのキーを作成できます。この場合、シークレットネームのフォーマットは aws/transfer/
となり、server-id
/user-name
は Transfer Family サーバーのワークフローを実行しているユーザーと一致します。user-name
注記
Transfer Family サーバーごとに、ユーザーごとに最大 3 つのPGPプライベートキーを保存できます。
復号で使用するPGPキーを設定するには
-
GPG 使用している のバージョンに応じて、次のいずれかのコマンドを実行して、Curve 25519 暗号化アルゴリズムを使用しないPGPキーペアを生成します。
-
GnuPG
バージョン 2.3.0 以降を使用している場合は、次のコマンドを実行します。gpg --full-gen-key
RSA
を選ぶこともできるし、ECC
を選んだ場合は楕円曲線にNIST
かBrainPool
を選ぶこともできます。gpg --gen-key
代わりに を実行する場合は、ECCCurve 25519 暗号化アルゴリズムを使用するキーペアを作成します。現在、PGPキーはサポートされていません。 -
2.3.0
GnuPG
より前のバージョンでは、 RSAがデフォルトの暗号化タイプであるため、次のコマンドを使用できます。gpg --gen-key
重要
キー生成プロセス中に、パスフレーズと E メールアドレスを指定する必要があります。これらの値は必ず書き留めておいてください。この手順の後半で AWS Secrets Manager に鍵の詳細を入力するときに、パスフレーズを提供する必要があります。また、次のステップでプライベートキーをエクスポートする場合も、同じメールアドレスを指定する必要があります。
-
-
以下のコマンドを実行してプライベートキーをエクスポートします。このコマンドを使うには、
を秘密鍵ブロックを保存するファイル名に、private.pgp
をキーペアを生成したときに使った電子メールアドレスに置き換えます。marymajor@example.com
gpg --output
private.pgp
--armor --export-secret-keymarymajor@example.com
-
AWS Secrets Manager を使用してPGPキーを保存します。
-
にサインイン AWS Management Console し、 で AWS Secrets Manager コンソールを開きますhttps://console.aws.amazon.com/secretsmanager/
。 -
左側のナビゲーションペインで [サーバー] を選択します。
-
[シークレット]ページで、[新しいシークレットの保存]を選択します。
-
[シークレットタイプの選択] ページの[シークレットタイプ] で[その他のシークレットタイプ] を選択します。
-
[キー/値のペア] セクションで、[キー/値] タブを選択します。
-
キー —
PGPPrivateKey
と入力します。注記
PGPPrivateKey
文字列は正確に入力する必要があります。文字の前や間にスペースを入れないでください。 -
「値」 — 秘密鍵のテキストを値フィールドに貼り付けます。プライベートキーのテキストは、この手順の前半でキーをエクスポートしたときに指定したファイル (
private.pgp
など) にあります。キーは-----BEGIN PGP PRIVATE KEY BLOCK-----
で始まり、-----END PGP PRIVATE KEY BLOCK-----
で終わります。注記
テキストブロックには秘密鍵のみが含まれ、公開鍵も含まれていないことを確認してください。
-
-
[行を追加] を選択し、[キー/値のペア] セクションで [キー/値] タブを選択します。
-
キー —
PGPPassphrase
と入力します。注記
PGPPassphrase
文字列は正確に入力する必要があります。文字の前や間にスペースを入れないでください。 -
value – PGPキーペアの生成時に使用したパスフレーズを入力します。
注記
最大 3 セットのキーとパスフレーズを追加できます。2 つ目のセットを追加するには、2 つの新しい行を追加し、キーには
PGPPrivateKey2
とPGPPassphrase2
を入力し、別のプライベートキーとパスフレーズを貼り付けます。3 番目のセットを追加するには、キー値はPGPPrivateKey3
とPGPPassphrase3
でなければなりません。 -
-
[Next (次へ)] を選択します。
-
[シークレットの設定] ページで、シークレットの名前と説明を入力します。
-
デフォルトキー、つまり Transfer Family のすべてのユーザーが使用できるキーを作成する場合は、
aws/transfer/
と入力します。server-id
/@pgp-default
を、復号ステップを持つワークフローを含むサーバーの ID に置き換えます。server-id
-
特定の Transfer Family ユーザーが使用するキーを作成する場合は、
aws/transfer/
と入力します。server-id
/user-name
を復号ステップを持つワークフローを含むサーバーの ID に置き換え、server-id
をワークフローを実行しているユーザー名に置き換えます。user-name
は、Transfer Family サーバーが使用している ID プロバイダーに保存されます。user-name
-
-
[次へ] を選択し、[ローテーションの設定] ページのデフォルトを受け入れます。次いで、[次へ] を選択します。
-
[レビュー] ページで [ストア] を選択し、シークレットを作成して保存します。
-
次のスクリーンショットは、特定の Transfer Family サーバのユーザ marymajor
の詳細を示している。この例では、3 つのキーとそれに対応するパスフレーズが表示されています。
サポートされているPGPクライアント
次のクライアントは Transfer Family でテストされており、PGPキーの生成や、ワークフローで復号するファイルの暗号化に使用できます。
-
GPG4Win + クレオパトラ。
注記
[ファイルの署名/暗号化] を選択した場合は、[名前をつけて署名] の選択が解除されていることを確認してください。現在、暗号化されたファイルへの署名はサポートされていません。
-
「GnuPG」の主要なバージョン:2.4、2.3、2.2、2.0 および 1.4。
他のPGPクライアントも機能する可能性がありますが、ここで言及されているクライアントのみが Transfer Family でテストされていることに注意してください。