web-dev-qa-db-ja.com

チーム内でAWS SSH .pemファイルを管理するためのベストプラクティス

VPCを使用してEC2でいくつかの環境を実行しています。各VPCには、ネットワークへの最初のSSHエントリポイントとして使用される、強化された要塞ホストが構成されています。

プライベートVPCサブネット内のホストにアクセスするには、ユーザーはまず踏み台インスタンスにSSHで接続し、次にサブネット内の他のホストにSSHで接続します。これを行うには、ユーザーが最初のSSH接続を行うときに、SSHキー(AWSから.pemファイルとしてダウンロード)を転送します。例えば:

ssh -A [email protected]
ssh [email protected]

要塞ホストの目的は、チームメンバーが両方の.pemキーを持つ環境に安全にアクセスできるようにすることです。チームメンバーは信頼され、単一の組織内にあります。

私の質問は次のとおりです。チーム内で.pemファイルを管理および配布するための最良の方法は何ですか。

  1. チームメンバーは、接続先の環境に適した.pemファイルを見つけることができます
  2. .pemファイルのストレージは安全です
  3. 個々のユーザーにキーへのアクセスを明示的に許可できます

どんな提案でも大歓迎です。

7
Rob Blake

これらのキーを共有しないでください。限目。

各ユーザーは独自のSSHキーペアを生成し、公開キーはアクセスが必要な各システムに展開する必要があります。秘密鍵は、理由のあるとおりに名前が付けられています。各ユーザーに対して秘密であり、それらによって生成され、パスフレーズで保護され、そのユーザーのワークステーションの安全な場所に保管されている必要があります。完全に信頼されたチームであっても、共有資格情報を使用すると、(さまざまな理由により)すべてのベストプラクティスに反することになります。

ユーザーごとのキーの使用を開始すると、他の両方の問題がなくなります。

さらに、愚かなデュアルssh rigamaroleを回避するには、ユーザーのssh設定に次のように入力します。

Host internal-Host.example.com 
  Hostname internal-Host.example.com 
  User ubuntu
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand ssh bastion-Host.example.com nc %h %p 2> /dev/null

これを実行すると、ユーザーは単一のコマンドを実行して、内部ホストに直接接続できます。 $ ssh internal-Host.example.com

25
EEAA