SSHログインのキーベースの管理に切り替えることを検討しており、世界中のアクセスキーを集中管理できるキー管理システムがあるかどうか疑問に思っています。
システムは、理想的にはクライアントごとにキーを発行し、必要に応じてそれらを取り消して、サーバーマシンキーをオンザフライで更新できるようにする必要があります。
商用またはオープンソースのいずれかでこのようなシステムを知っている人はいますか?
注:明確にするために、かなり大量のクラウドサーバー(EC2のような)と少量のサービスユーザーのキー管理が必要です。 LDAP +パッチは以下の方法が良いかもしれないと示唆しています。
これを行う方法はたくさんあります。 LDAPキーの保管については何度か言及されていますが、私はそれを実行しましたが、実際には機能します。ただし、LDAPには独自の管理機能があるので、学習する必要があります。
私は、管理者の認証などの単純なことに対する外部ネットワークの依存関係が最小限である、シンプルで堅牢なサーバーの大ファンなので、はるかに堅牢なSSHキー配布戦略に傾倒します-私は構成管理システムがそれを処理します。全員の公開鍵は構成管理システムに保持され、ユーザーがログインできるようにする必要がある場合はいつでも、その鍵が追加されます。設定システムは、指定されていないキーを削除することも認識しているため、誰かが離れたりキーを変更したりした場合、キー設定を削除するだけで、次回の設定システムの実行時にキーが削除されます。
キーペアはユーザーが生成する必要があります。
ユーザーはプライベートハーフを保持します-あなたはそれを決して見るべきではありません。誰かの秘密鍵を読み取り/使用できる形式で持っている場合、セキュリティが間違っています。
パブリックハーフは(Webフォーム、電子メール、CDで提供されるCDなどの任意のメカニズムによって)提供され、必要に応じて集中化されます。一部の場所では、公開鍵がLDAPに保管されています。その他authorized_keys
展開システムを使用したファイル。
私の環境では、シェルアクセスを必要とするユーザーから公開鍵が提供されています。これらのキーはLDAPシステムに追加され、sshd
は LDAP公開キーパッチ を使用して、各ユーザーに対してリストされた公開キーを参照して認証します。
誰かが追加のキーを追加したり、既存のキーを取り消す必要がある場合、彼らは管理者に知らせ、私たちがそれを処理します。最終的には、ユーザーが自分の公開鍵をローテーションできるシステムを実装します。
私たちの各サイトには、LDAPレプリケーションでマスターに同期されたLDAPサーバーのペアがあり、各場所でデータの一貫性(およびアクセス可能)を維持しています。
私が説明したことはすべて、オープンソースソフトウェアで実行できます。同じことをする市販品もあります。
利用可能なオプションをより徹底的に調査し、どのオプションが環境に最も適しているかを決定する必要があります。さらに(より具体的な)質問がある場合は、おそらくさらに役立つでしょう。
キーペアはどこにでも生成されるべきではなく、各ユーザーのコンピューター上で生成されるべきです。秘密鍵は、そのような理由で名前が付けられています。
とはいえ、ユーザーの公開鍵のある種の集中化されたリポジトリの使用例を見ることができました。 1つのオプションは、OpenLDAPに公開鍵を保存することです-OpenSSHの最近のバージョンは、LDAPから鍵を読み取ることができます。
Userify [1](私が作業している場所)、Universal Key Manager [2]、SSH Key Box [3]など、多くの優れた商用およびオープンソースソリューションがあります。それは、ニーズが何であるかによって異なります。運用を分散させながら管理を一元化するものを探します(サーバーがログインする際に中央の権限に依存しないようにするため...その場合、たとえば、サーバーにログインできない場合があります。 LDAPサーバーがダウンしています!)
以下のSlantディスカッションも参照してください。
私はこれが少し古い質問であることを知っていますが、Googleはこの種のものを探すときにかなり高い質問を返します。
LDAP以外のソリューションを探している私たちのために、「SKM」プロジェクトを見つけました: https://sites.google.com/site/jeromeboismartel/code-s-corner/ssh-key-management -with-skimp