web-dev-qa-db-ja.com

AWS EC2キーペアを管理するためのベストプラクティス

私たちの組織はアマゾンウェブサービス(AWS)を使用しており、クライアントごとに異なるサブネット(VPC)で実行されている複数のEC2インスタンスがあります。アプリケーションは開発中であり、これらのインスタンスにリモート(SSHまたはRDP)する必要があります。

EC2インスタンスがアクセスするには、キーペアが必要です(Linuxの場合はSSH、Windows RDPの場合は管理者パスワード)。秘密鍵は物理ファイルの形式であり、1度だけ生成して1度ダウンロードできます。このファイルが失われると、インスタンスに接続できなくなります。

秘密キーを管理するために広く受け入れられている業界標準のベストプラクティスはありますか?

現在、ポータブルハードドライブに物理的なバックアップ(暗号化)がありますが、それが最善の解決策ではないようです。大企業が災害に耐えられるようにするために、どのような方法が採用されていますか?

12
Lemonseed

秘密/公開鍵の一般的な管理に関して、SEにはすでに他の回答済みの質問があります: ベストプラクティスは何ですか:ホストごとに個別のsshキーとユーザーVSすべてに対して1つのsshキーホスト? および キーペアを管理するための一般的な実用的な戦略は何ですか?

AWS固有の詳細について:AWSの外部で独自のキーペアを作成し、公開キーをAmazonにアップロードできます。 LinuxおよびWindowsシステム用の独自のキーを作成するためのドキュメントは、 Amazon EC2ドキュメント にあります。キーの正しい形式を使用していることを確認してください(キーのアップロードフォームに貼り付けるテキストは、ssh-rsaで始まる必要があります)。

追加のキーを追加した場合は、新しいインスタンスを起動するときにそれらを選択できます。後で手動で追加することもできます(Linuxシステムの場合:~/.ssh/authorized_keysファイルに公開鍵を追加します)。

編集:あなたはあなたの質問へのコメントで@ジェダイによって与えられたアドバイスに従う必要があります:

秘密鍵はユーザーに対して秘密でなければなりません。ユーザーは、パーソナライゼーションと監査性の両方のために、独自のキーとアカウントを持っている必要があります。

パーソナライゼーションと説明責任のためだけでなく、誰かがチームを離れたときのキーの取り消しについても、キーペアが危険にさらされます。

5
twobeers

EC2とsshに関するベストプラクティスをまとめました。これが link です。これは便利な場合があります。要約すれば:

  1. 1人あたり1つのSSHキーを持っている
  2. SSH鍵を保護する-秘密鍵を共有しないで、可能であれば暗号化する
  3. AWSが生成したキーを使用しない
  4. 個別のログイン(ユーザー)IDを使用する
  5. Sudoに全員へのアクセスを許可しない
  6. 非公開インスタンスを非表示にする
  7. SSHポート転送とSSHエージェント転送を使用する
1
user3392439