20

バージョン管理にパスワードを保存しないようにするために、どのような戦略を使用していますか?

現在、開発/テスト/本番パスワードを3つの異なるファイルに保存しており、展開中に適切なファイルが使用されます。これはすべてバージョン管理に取り組んでいますが、すべての開発者がそれらのパスワードを知る必要があるわけではないので、私はあまり満足していません(特に、プロジェクトが続く間だけアクセスできるアウトソーシングされたパスワードは、1か月しかありません)。

データベースにパスワードを保存することは、優れたオプションではありません。

  • Springコンテキスト(Javaアプリ)の初期化中にほとんどのデータが必要ですが、単一のデータベースに接続し、その後、残りのデータベースに接続して残りのアプリケーションを初期化するためのスキャフォールディングを構築したくありません
  • 一部のパスワードは、展開にのみ関連しています。さまざまなサーバー、キーストアなどにアクセスするためのパスワード。これらは、アプリケーションがまったくロードされないため、アプリケーションの起動後にロードできないものです。

開発者のマシンから、バージョン管理からコードをチェックアウトしてビルド/デプロイメントスクリプトを実行する専用コンピューターにデプロイメント構成を移動することを考えていますが、それを行うための最良の方法がよくわかりません。

また、究極のセキュリティは必要ないということも言う必要があります。すべての開発者のディスクにパスワードを設定して、簡単にしすぎないようにしたいだけです。

だから私はあなたの経験/ベストプラクティスを求めています。どうしますか?

4

6 に答える 6

10

環境固有の構成プロパティたとえば、ソース管理に含まれておらず、ビルドプロセスの一部でもないプロパティファイルを挿入する傾向があります。新しい環境をセットアップする場合、そのセットアップの一部は、データベースアドレス、資格情報と名前、関連するリモートホストの名前などを含むプロパティファイルを作成することです。

Springでは、を使用しPropertyPlaceholderConfigurerてプロパティファイルをロードします。Springで見つけられる必要があります。これは通常、アプリケーションサーバーの下の適切なディレクトリに配置することを意味します。

または、ラッパーを使用してアプリケーションサーバーを実行し、JVMの起動オプションにこれらのプロパティファイルをクラスパスに追加して、Springがそれらを見つけられるようにします。

于 2009-09-17T01:38:52.667 に答える
7

私はこれに対する2つのアプローチを見てきました:

  • 開発者がアクセスできないソース管理の別のツリーにパスワードを移動します。
  • パスワードをソース管理に入れないでください。専任のビルドマネージャー担当者は、デプロイが完了するたびにパスワードを入力する必要があります。これは、ビルドプロセス/マージ/リリースに取り組んでいる常勤の人がいた銀行にありました。
于 2009-09-17T01:42:21.567 に答える
3

これはすべての場合に機能するわけではありませんが、サービスのIDとしてNT AUTHORITY \ NETWORK SERVICEを使用することの素晴らしさが出てきます。このIDを使用する場合、パスワードを維持する必要はありません-コンピューターのAD資格情報をDOMAINNAME\MACHINENAME $の形式で使用するだけで、保護されたネットワークとデータベースへのアクセスを行うことができます。

もちろん、注意すべき重要な点がいくつかあります。特に、セキュリティ境界を共有する2つのアプリが同じサーバー上でこのようにホストされていないことです。

于 2009-09-17T01:42:33.270 に答える
0

パスワードをo/sユーザー環境変数に入れます。

そのユーザーまたはrootのみが、ファイルと同じように値を読み取ることができますが、ソース管理にチェックインされる可能性はありません。

于 2013-11-03T00:08:54.207 に答える
0

リポジトリの外にlocal_settingsがあるのは良いことだと思います。

https://stackoverflow.com/a/21570849/1675586

于 2014-02-05T07:18:18.993 に答える
0

それらを保存しない代わりに、暗号化された形式で保存することができます。したがって、新しい開発者が開始するたびにIMまたはEメールを介してクレデンシャルファイルを送信する手間がかかりません...クレデンシャルを暗号化できるように、プロジェクト固有のマスターパスワードを一度伝えるだけです。

于 2016-03-21T13:49:19.390 に答える