スクリプトがこれらのサーバーのいずれかに接続できる場合、スクリプトへのアクセス権(またはスクリプトが実行されるマシンへの特権アクセス権)を持つユーザーは、それらのサーバーのいずれかに接続できます。
スクリプトを自律的に実行する必要がある場合、すべてのベットはオフになります。ここでの答えは「いいえ」です。そのような環境でパスワードを保存する絶対に安全な方法はありません。絶対に安全で実用的な方法はありません。
やむを得ないことを避けようとする代わりに、多層防御に焦点を当てるべきです。
もちろん、パスワードを適切に保護する必要があります。これは通常、それらをスクリプトとは別のファイルに保存し、制限的なファイルシステム権限を設定することを意味します。これは、セキュリティの観点から、この前でできることのすべてです。
他の方法は、プロセスに不明瞭さを追加する可能性が最も高いです。パスワードを暗号化すると、攻撃者は復号化キーを検索する必要があります。ある種のオペレーティングシステムで保護されたストレージを使用すると、他のユーザーがキーにアクセスするのを防ぐことができます(したがって、攻撃や使用が複雑である以外は、ファイルシステムのアクセス許可よりも有利です)。これらの手段は攻撃を遅らせますが、ほとんどの場合、決意のある攻撃者に対する攻撃を防ぐことはできません。
それでは、しばらくの間、パスワードをパブリックとして扱いましょう。被害を軽減するために何ができますか?
古いテスト済みのソリューションは、これらの資格情報ができることを制限することです。UNIXシステムでは、これを行うための良い方法は、スクリプト用に別のユーザーをセットアップし、アクセスするサーバーとアクセスするサーバーの両方でそのユーザーの機能を制限することです。SSHレベル、シェルレベル、またはSELinuxなどの必須アクセス制御メカニズムを使用して、ユーザー機能を制限できます。
また、スクリプトロジックをサーバーに移動することも検討してください。そうすることで、制御しやすく、特に以下のような小さなインターフェースが得られます。
モニター。サーバーへのアクセスを常に監視します。できれば、ログ認証および追加されたログのみに対して実行されるコマンド。auditd
たとえば、を使用してスクリプトファイルの変更を監視することを忘れないでください。
もちろん、これらのメカニズムの多くは、あなたが質問を暗示しているように見えるため、サーバーを制御できない場合には役に立ちません。その場合は、サーバーを管理している人と連絡を取り、スクリプトと潜在的なセキュリティの落とし穴について知らせることをお勧めします。