2012-01-17 10 views
3

私はGoogle App Engineアプリケーションは、私は、ソースコントロール(すなわち、Gitリポジトリ)にチェックインしたくない(のOAuthとクッキーの署名鍵のような)特権の資格情報が含まれています。Google App EngineのJDKでのバージョン管理外の安全な構成を管理する

私はこのファイルをappengine-web.xmlファイルにシステムプロパティまたは環境変数として保存することを検討しましたが、このファイルには他にもたくさんのバージョンがあります。私は簡単にソース管理から除外できるように、「秘密」のアプリケーションデータを保存する場所はどこですか?

+0

こんにちは@mustpax、これを行う方法を見つけましたか? – Jaap

答えて

0

これらのものを別のファイル/ディレクトリに入れ、.gitignoreで除外します。私は通常、それが安全なリポジトリ(私は信頼できるスーパーユーザのみがアクセス可能であるファイル)での資格情報を保存し、ビルド後のスクリプトを持っているかどう

+0

私はすでに '.gitignore'について知っています。私はこの分野のベストプラクティスを見つけたいと思っています。私はこのものをバージョン管理されていないJavaファイルに保存すべきですか? 'appengine-web.xml'から別のファイルをインクルードする方法はありますか? – mustpax

+0

この場合のベストプラクティスはわかりませんが、保存したいデータに適したファイル形式を使用します。おそらくアプリケーションからロードするXMLファイルです。 – copy

1

。ソース管理内では、プロパティファイルにダミーのパスワードを設定し、ビルド後にポストビルドスクリプトを実行し、ダミーのパスワードを実際のものに置き換えます。そうすれば、パスワードはソース管理ではなく、すべてのビルド時に表示されます。これは自動ビルド/デプロイメントプロセスに依存しますが、非常に効果的です。

0

Javaの場合、spring-bootのexternalized configurationという戦略をお勧めします。このアイデアは、以下のものを上書きする設定ソースのスタックです。

  1. コマンドライン引数
  2. システムプロパティクラスパスで
  3. 環境変数
  4. ローカル設定ファイル(application.ymlまたはapplication.properties)
  5. 設定ファイル

ありません。4は通常、ユーザのホームディレクトリの隠しフォルダにあります(例:~/.myapp/application.yml)。ユーザーだけがそのファイルを読み取ることができます。

あなたの質問のために、バージョン管理されている非機密情報はソースコード(上記5号)に直接入力されます。秘密は5に入れることもできますが、ダミー値を使用します。本当の秘密は、あなたが春ブートを使用するか、同じ戦略を次のように独自のコードを書くことができますいずれか1、2、3、または4

から、実行時にダミーの値を上書きします。

関連する問題