web-dev-qa-db-ja.com

travis-ciでの秘密APIキーの使用

travis-ciprojects のいずれかに使用したいと思います。

このプロジェクトはAPIラッパーであるため、テストの多くはシークレットAPIキーの使用に依存しています。ローカルでテストするには、それらを環境変数として保存するだけです。 Travisでこれらのキーを使用する安全な方法は何ですか?

90
user94154

Travisには、環境変数を暗号化する機能があります( "Encrypting environment variables" )。これは、シークレットAPIキーを保護するために使用できます。これをHeroku APIキーに使用できました。

必要なことは、travis gemをインストールし、必要な文字列を暗号化して、暗号化された文字列を.travis.yml。暗号化は1つのリポジトリに対してのみ有効です。 travisコマンドは、リポジトリの公開キーを取得し、ビルド中に文字列を解読できます。

gem install --user travis
travis encrypt MY_SECRET_ENV=super_secret -r my_username/my_repo

これにより、次の出力が得られます。

Please add the following to your .travis.yml file:

  secure: "OrEeqU0z6GJdC6Sx/XI7AMiQ8NM9GwPpZkVDq6cBHcD6OlSppkSwm6JvopTR\newLDTdtbk/dxKurUzwTeRbplIEe9DiyVDCzEiJGfgfq7woh+GRo+q6+UIWLE\n3nowpI9AzXt7iBhoKhV9lJ1MROrnn4DnlKxAEUlHTDi4Wk8Ei/g="
96
Odi

travis ciのドキュメントの this によると、

HerokuとTravis CIの両方のコマンドラインクライアントがインストールされている場合は、プロジェクトディレクトリから次のコマンドを実行して、キーを取得し、暗号化して.travis.ymlに追加できます。

travis encrypt $(heroku auth:token) --add deploy.api_key

以下 チュートリアルを参照して、OSに応じてherokuクライアントをインストールします

6

シークレットを定義することもできます リポジトリ設定の変数

リポジトリ設定で定義された変数はすべてのビルドで同じであり、古いビルドを再起動すると、最新の値が使用されます。これらの変数は、フォークでは自動的に使用できません。

リポジトリ設定で変数を定義します:

  • リポジトリごとに異なります。
  • サードパーティの資格情報などの機密データが含まれます。

リポジトリ設定で変数を定義するには、ログインしていることを確認し、問題のリポジトリに移動し、歯車メニューから「設定」を選択し、「環境変数」セクションの「新しい変数を追加」をクリックします。

4
pomber

別のAPIキーセットを使用し、同じ方法で実行します。 travisボックスはビルド実行用にセットアップされ、ビルドが終了すると再び完全に解体されます。ビルド中にボックスへのルートアクセス権があるため、ボックスで何でもできます。

0
markus