TeamCity

KeeperシークレットマネージャープラグインでTeamCityビルドのシークレットにアクセス

概要

TeamCityは汎用CI/CDソフトウェアプラットフォームで、柔軟なワークフロー、コラボレーション、開発慣行を促進し、DevOpsプロセス内で継続的な統合、継続的なデリバリー、継続的なデプロイメントを成功させるソリューションです。

このプラグインを使用すると、TeamCityサーバー (バージョン 2018.1 以降) を Keeperシークレットマネージャーと統合して、TeamCityでのシークレットの管理をより簡単かつ安全に行うことができます。

特徴

  • TeamCityビルドでKeeperボルトのシークレットを使用する

  • KeeperシークレットマネージャープラグインはTeamCityの接続としてインストールされます

要件

インストール

JetBrainsプラグインリポジトリからインストール

  • TeamCityで「Administration | Pluginsに移動し、[Browse plugins repository]をクリックします。

  • Keeper Secrets Managerプラグインを見つけて、[Get]をクリックし、http[s]://<teamcityUrl> にインストールします

  • [Install]をクリックしてプラグインをインストールことを確認します。

  • インストール後にプラグインを有効にするには、プラグインのコンテキストメニューをクリックし、[Load]を選択します。

Web UI経由でプラグインをインストールする

  • こちらのGithubページから TeamCity KSMプラグインのZIPファイルの最新バージョンをダウンロードします。

  • 「Administration | Plugins」ページに移動し、対応するリンクを使用してローカルマシンからプラグインのZIPファイルをアップロードします。

プラグインを手動でインストールする

  • ZIPプラグインファイルを<TeamCity Data Directory>/pluginsディレクトリにコピーします。ディレクトリ内に以前のバージョンのプラグインがある場合は (プラグイン パッケージの名前は異なる場合があります)、削除しておきます。

プラグインを有効にする

  • インストール後にプラグインを有効にするには、プラグインのコンテキストメニューをクリックし、[Load]を選択します。サーバーを再起動させることなくプラグインが有効になります。

Web UI経由でプラグインをアンインストール

  • [Administration | Plugins]に移動し、リストから対象の外部プラグインを見つけて、その横にある矢印アイコンをクリックし、[Delete]を選択します。

  • プラグインが削除されると、サーバーを再起動するオプションがページに表示されますので、それをクリックして、プラグインのバージョンが[Administration | Plugins]のリストに表示されなくなったことを確認します。

プラグインを手動でアンインストール

  • <TeamCity Data Directory>/pluginsディレクトリからプラグインパッケージを削除し、TeamCityサーバーを再起動します。

セットアップ

接続の設定

接続を作成すると、現在のプロジェクトにネストされたすべてのサブプロジェクトで接続を使用できます。ルートプロジェクトに接続を追加した場合、サーバー全体で使用できるようになります。

接続を追加するには、対象プロジェクトの設定に移動し、[Connections]ページを開いて、[Add Connection]をクリックします。接続タイプに[Keeper Vault]を選択し、他の接続と区別するためにDisplay nameを設定します。

  • 「Project Administration | Connections」で、[Add Connection]をクリックします。

  • 接続タイプとして「Keeper Vault」を選択します。

  • トークンを指定します。有効なKSM構成を貼り付けます (要件をご参照ください)。

  • 接続を保存します。

TeamCityビルドでシークレットを使用

以下は、TeamCityサーバーからKeeperボルト内のシークレットを使用する際の手順となります。

  • Keeperボルトにシークレットを作成し、対応するKSMアプリケーションと共有します。

  • Secrets Manager Notation URIを使用してシークレットを解決するTeamCityパラメータを構成します。

ビルド構成設定でのビルドパラメータを使用

ほとんどのビルド構成設定では、実際のプレーンテキスト値を使用する代わりに、ビルドパラメータへの参照を使用できます。ビルドを開始する前に、TeamCity は使用可能なパラメータを使用してすべての参照を解決します。解決できない参照がある場合はそのまま残され、ビルドログにそれぞれの警告が表示されます。ビルドパラメータを参照するには、%env.KsmSecret1%のように名前をパーセント文字で囲みます。

「Parameters」タブでは、新しいパラメータ/プロパティ/変数を追加、編集、削除したり、事前定義された値を再定義したりできます。

パーセント文字で囲まれたテキストは、TeamCityによってパラメータへの参照として解釈されます。ビルド構成でパラメータが見つからない場合、この参照は暗黙のエージェント要件となり、そのようなビルド構成は、このパラメータが定義されているエージェントでのみ実行できます。エージェント定義の値がビルドで使用されます。

TeamCityがパーセント文字内のテキストをパラメータへの参照として扱わないようにするには、パーセント文字を2つ使用します。パラメーター参照がサポートされている値で%% が使用されている場合、ビルドに値を渡す前に%に置き換えられます。たとえば、 %Y%m%d%H%M%Sをビルドに渡す場合には、%%Y%%m%%d%%H%%M%%Sに変更されます。

ワークフローの例

ビルド構成レベルでビルドパラメータを定義し、ビルドステップで使用します。

  1. 「Build Configuration Settings | Parameters」に移動します。

  2. [Add new parameter]をクリックします。

  3. パラメータの名前と値を入力します。パラメータの「Kind」を[Environment variable (env.)]に変更します。 Name: username Value: %keeper://UserRecord1/fields/login%

  1. パラメータを保存します。

  2. Build Stepsに進みます。

  3. [Add build step]をクリックします。

  4. Command Line ランナータイプを選択します。

  5. [Custom script]フィールドに以下のコマンドを入力します。 echo UserName %env.username% ビルドの場合、このコマンドは次のように解決されます (ログでは実際の値はマスクされますが、実際のコマンドでは使用されます)

    echo UserName *****

  6. ビルドステップを保存し、新しいビルドを実行します。

プラグインでは、ビルドパラメータ、環境変数などでKeeper表記法の接頭辞 (keeper://NotationURI) と TeamCityスタイルの接頭辞 (keeper:NotationURI) の両方が使用できます。以下の例をご参照ください。

パラメータの例

  • 環境変数env.User: keeper:abcdABCDabcdABCDuvwxyz/field/login

  • 環境変数env.Secret: keeper://MyRecord1/custom_field/Secret1

最終更新