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

概説
TeamCityは汎用CI/CDソフトウェアプラットフォームで、柔軟なワークフロー、コラボレーション、開発慣行を可能にします。DevOpsプロセス内で継続的インテグレーション、継続的デリバリー、継続的デプロイメントを実現するソリューションです。
本プラグインにより、TeamCityサーバー(バージョン2018.1以降)をKeeperシークレットマネージャーと統合し、TeamCityでのシークレット管理をより簡単かつ安全に行えます。
機能
TeamCityビルドでKeeperボルトのシークレットを利用
KeeperシークレットマネージャープラグインをTeamCityの接続としてインストール
前提条件
Keeperシークレットマネージャーへのアクセス(クイックスタートガイドをご参照ください)
Keeperのサブスクリプションでシークレットマネージャーアドオンが有効になっていること
シークレットマネージャーポリシーが有効なロールに所属していること
シークレットが共有されているKeeperシークレットマネージャーアプリケーション
アプリケーションの作成手順については、クイックスタートガイドをご参照ください
初期化済みのKeeperシークレットマネージャー構成
TeamCityプラグインではBase64形式の構成を使用
インストール
JetBrainsプラグインリポジトリからインストール
TeamCityの**[Administration | Plugins]に移動し、[Browse plugins repository]**をクリックします。
Keeper Secrets Managerプラグインを見つけ、[Get] をクリックし、[Install to 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アプリケーションに共有する
シークレットマネージャー表記法URIでシークレットを解決するTeamCityパラメータを構成する
ビルド構成設定でビルドパラメータを使用
ほとんどのビルド構成設定では、プレーンテキスト値の代わりにビルドパラメータへの参照を使用できます。ビルド開始前に、利用可能なパラメータですべての参照が解決されます。解決できない参照はそのまま残り、ビルドログに警告が表示されます。ビルドパラメータを参照するには、名前をパーセント文字で囲みます(例: %env.KsmSecret1%)。
[Parameters] タブでは、パラメータ、プロパティ、変数の追加、編集、削除、または事前定義値の再定義が行えます。
パーセント文字で囲まれたテキストは、TeamCityによってパラメータへの参照として解釈されます。ビルド構成でパラメータが見つからない場合、この参照は暗黙のエージェント要件となり、当該パラメータが定義されたエージェントでのみビルドを実行できます。エージェントで定義された値がビルドで使用されます。
TeamCityにパーセント文字内のテキストをパラメータ参照として扱わせない場合は、パーセント文字を2つ使用します。パラメータ参照が利用できる値では、%% はビルドに値を渡す前に % に置き換えられます。たとえば、%Y%m%d%H%M%S をビルドに渡す場合は、%%Y%%m%%d%%H%%M%%S に変更します。
ワークフローの例
ビルド構成レベルでビルドパラメータを定義し、ビルドステップで使用します。
[Build Configuration Settings | Parameters] に移動します。
[Add new parameter] をクリックします。
パラメータの名前と値を入力します。[Kind] を [Environment variable (env.)] に変更します。
Name:
usernameValue:
%keeper://UserRecord1/fields/login%

パラメータを保存します。
[Build Steps] に移動します。
[Add build step] をクリックします。
Command Lineランナータイプを選択します。
[Custom script] フィールドに以下のコマンドを入力します。
echo UserName %env.username%ビルド時、このコマンドは以下のように解決されます(ログでは実際の値はマスクされますが、コマンドでは使用されます)。
ビルドステップを保存し、新しいビルドを実行します。
プラグインでは、ビルドパラメータや環境変数などで、Keeper表記法の接頭辞 keeper://NotationURI とTeamCity形式の接頭辞 keeper:NotationURI の両方を使用できます。以下の例をご参照ください。
パラメータ例:
環境変数
env.User:keeper:abcdABCDabcdABCDuvwxyz/field/login環境変数
env.Secret:keeper://MyRecord1/custom_field/Secret1
最終更新

