SSH キーのローテーション - AWS Transfer Family

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SSH キーのローテーション

セキュリティ上、ベストプラクティスとして SSH キーのローテーションをお勧めします。通常、このローテーションは、セキュリティポリシーの一部として指定され、自動化した形で実装されます。セキュリティのレベルに応じて、機密性の高い通信では、SSH キーペアが 1 回しか使用されない場合もあります。これにより、キーを保存することのリスクがなくなります。ただし一般的には、SSH 認証情報を一定期間にわたって保存し、その期間をユーザーに過度の負荷がかからないような長さに設定するのが普通です。標準的な設定は 3 か月です。

注記

Infrastructure as Code を使用した自動 SSH キーローテーションについては、「」を参照してくださいTransfer Family Terraform モジュール

SSH キーのローテーションを実行するには、2 つの方法があります。

  • コンソールで新しい SSH パブリックキーをアップロードすると既存の SSH 公開キーを削除できます。

  • DeleteSSHPublic API を使用してユーザーの Secure Shell (SSH) パブリックキーを削除でき、ImportSshPublicKey API を使用してユーザーのアカウントに新しいセキュアシェル (SSH) パブリックキー公開キーを追加すれば、API で既存のユーザーを更新できます。

Console
コンソールでキーローテーションを実行するには
  1. https://console.aws.amazon.com/transfer/ で AWS Transfer Family コンソールを開きます。

  2. [Servers] (サーバー) ページに移動します。

  3. [Server ID] (サーバー ID) 列で ID を選択すると、[Server Configuration] (サーバーの構成) ページが表示されます。

  4. [Users] (ユーザー) の下で、SSH パブリックキーをローテーションするユーザーのチェックボックスをオンにし、[Actions] (アクション) を選択してから [Add key] (キーの追加) を選択すると [Add key] (キーの追加) ページが表示されます。

    or

    ユーザー名を選択してユーザーの詳細ページを表示し、SSHパブリックキーの追加を選択してキーの追加ページを表示する。

  5. 新しい SSH パブリックキーを入力し、[Add key] (キーを追加する) を選択します。

    重要

    SSH 公開鍵の形式は、生成した鍵のタイプによって異なります。

    • RSA キーの場合、形式は ssh-rsa string です。

    • ED25519 キーの場合、形式は ssh-ed25519 string です。

    • ECDSA キーの場合、生成したキーのサイズに応じてキーはecdsa-sha2-nistp256ecdsa-sha2-nistp384、または ecdsa-sha2-nistp521 で始まります。他のキータイプと同様に、最初の文字列の後には string が続きます。

    [User details] (ユーザーの詳細) ページに戻ると、先ほど入力した SSH パブリックキーが [SSH public key] (SSH パブリックキー) セクションに表示されます。

  6. 削除したい古いキーのチェックボックスをオンにしてから [Delete] (削除) を選択します。

  7. delete という語を入力して削除オペレーションを確認してから [Delete] (削除) を選択します。

API
API を使用してキーローテーションを実行するには
  1. macOS、Linux、または UNIX でコマンドターミナルを開きます。

  2. 次のコマンドを入力することで、削除したい SSH キーを取得します。このコマンドを使用するには、serverID を Transfer Family サーバーのサーバー ID に、username をユーザー名に置き換えます。

    aws transfer describe-user --server-id='serverID' --user-name='username'

    このコマンドは、ユーザーについての詳細を返します。"SshPublicKeyId": フィールドの内容をコピーします。この手順の後半で、この値を入力する必要があります。

    "SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID", "DateImported": 1621969331.072 } ],
  3. 次に、ユーザー用の新しい SSH キーをインポートします。 プロンプトで次のコマンドを入力します。このコマンドを使用するには、serverID を Transfer Family サーバーのサーバー ID に、username をユーザー名に、public-key を新しい公開鍵のフィンガープリントに置き換えます。

    aws transfer import-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-body='public-key'

    コマンドが成功した場合、出力は返りません。

  4. 最後に、次のコマンドを実行して、古いキーを削除します。このコマンドを使用するには、serverID を Transfer Family サーバーのサーバー ID に、username をユーザー名に、keyID-from-step-2 をこの手順のステップ 2 でコピーしたキー ID 値に置き換えます。

    aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username' --ssh-public-key-id='keyID-from-step-2'
  5. (オプション) 古いキーがもう存在しないことを確認するには、ステップ 2 を繰り返します。