web-dev-qa-db-ja.com

資格情報をbash変数に安全に格納する方法は?

ユーザー資格情報はREST-APIへの複数の要求に必要であるため、シェルスクリプト変数にキャッシュする必要があります。これはbashスクリプトファイル自体には保存されません。ユーザーは資格情報の入力を求められ、これらはスクリプトの実行中に再利用されます。

他の非特権プロセスがこれらの変数を読み取れないようにそれらを保存する最良の方法は何ですか?

5
Thomas R

資格情報をプレーンテキストで格納することは常に難しいケースであり、ケースバイケースです。主なルールは、パスワードをスクリプト内に保存しないことです。

スクリプトを手動でのみ実行する場合(スクリプトを実行している場合)、パスワードをスクリプトに保存せず、スクリプトを実行するたびにパスワードを尋ねるようにします。

スクリプトが自動的に実行される場合:

  • 必要な目的で特定のユーザーを作成します。ユーザーが最小限の権限を持っていることを確認してください。ユーザーが他のファイルにアクセスできず、必要なスクリプト以外のものを実行する権限がないことを確認してください。
  • パスワードを含むファイルを作成し、このファイルからスクリプトを読み取ります。このパスワードファイルを他のユーザーから読み取れないようにしてください。
  • パスワードは認証する唯一の方法ですか?一部のアプリケーションは秘密鍵/公開鍵をサポートしています。できればそれを使ってください。秘密鍵が安全であることを確認してください。
  • これらの資格情報が危険にさらされる可能性は、それらを保存しているという事実だけによって高まることに注意してください。このことを念頭に置いて、軽減アクションを計画します。たとえば、アカウントに最小限のアクセス許可があることを確認し、アカウントが特定のサーバーからのみログインできることを確認し、ログ監視ツール(またはSIEM)を実装して、このアカウントにアラートが送信されるようにします。使用されている。

このトピックについて NIXスタック交換に関する非常に優れた記事 があります。パスワード付きのスクリプトを実装する前に、ぜひチェックしてください。

6
Ricardo Reimao