接続を構成
TeamCity 接続は、外部サービスへのアクセスに必要な資格情報を保存します。このサードパーティサービスの種類に基づいて、2 つの主要な接続カテゴリがあります。
- VCS 接続
これらの接続は、GitHub、GitLab、Bitbucket クラウドなどの VCS プロバイダーへのアクセスに必要な情報を保存します。これらの接続は、プロジェクト、ビルド構成、パイプラインを最も速く作成する方法を提供します。認証は自動的に処理されるため、リポジトリを選択するだけでビルドステップの設定を開始できます。

接続が設定されていない場合は、新しいパイプライン、ビルド構成、ルートごとに資格情報を提供する必要があります。
- 非 VCS 接続
このカテゴリの接続は、VCS プロバイダ以外のサービスにアクセスするために必要な情報を保存し、リモートリポジトリソースの取得とは無関係の目的で使用されます。例:
Amazon Web サービス接続により、TeamCity は AWS クラウドエージェントを管理し、ビルドアーティファクトを S3 バケツに保存できます。
Google 接続は、対応する認証モジュールによって使用され、ユーザーが Google アカウントを使用して TeamCity にログインできるようにします。
Slack 接続は、Slack 通知を設定し、ビルドステップからカスタム Slack メッセージを送信するために使用されます。
HashiCorp Vault 接続を使用すると、シークレットボールトから値を取得するリモートパラメーターを作成できます。
新しい接続を作成するには、次の手順を実行します。
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプを選択し、他の接続タイプと区別するために表示名を設定し、以下のように構成します。

新しい設定やパイプラインを追加する際は、ビルドを設定するページから新しい VCS 接続を作成することもできます。ドロップダウンメニューで新しいリポジトリを接続するオプションを選択すると、利用可能なオプションが表示されます。

Azure DevOps
TeamCity には 2 つのタイプの Azure DevOps 接続があります。
Azure DevOps OAuth 2.0 を使用すると、Azure DevOps Services アカウント経由で TeamCity にサインインし、Azure Git リポジトリから TeamCity プロジェクトを作成できます。
Azure DevOps PAT を使用すると、Azure Git および TFVC リポジトリから TeamCity プロジェクトを作成できます。
Azure DevOps OAuth2.0 接続
この接続を設定すると、TeamCity が Azure の DevOps リソースにアクセスできるようになります。さらに、TeamCity ユーザーは Azure の DevOps 認証情報を使用して TeamCity にアクセスできるようになります。
Azure DevOps OAuth 2.0 接続を構成するには:
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「Azure DevOps OAuth 2.0」を選択します。
リダイレクトリンクに追加される一意の ID を生成するために、一意のリダイレクト URI を有効にする設定が有効になっていることを確認してください。この設定は、ミックスアップ攻撃(悪意のある認可サーバーが実際の認可サーバーを装い、被害者のクライアントから認可コード(トークン)を漏洩させる攻撃)のリスクを軽減することで、設定のセキュリティを強化します。
%unique-url-sample%URL 形式を使用することで、攻撃者が TeamCity で承認されたアドレスを手動で作成することが不可能になります。サーバー URL を
https://login.microsoftonline.com/{tenantId}形式で入力します。TeamCity の指示に従って、Microsoft Entra ID でアプリケーションを登録します。
TeamCity ツールチップからリダイレクト URI 値を Azure アプリにコピーします。
TeamCity の権限を制御するためのアプリ承認スコープを指定します。最低限必要なスコープは、「ID(読み取り)」、「プロジェクトとチーム(読み取り)」、「コード(読み取り)」です。書き込みアクセスを必要とする TeamCity 機能(例: ステータス発行者のコミット)を使用する場合は、追加のスコープを含める必要がある場合があります。
アプリの準備ができたら、TeamCity コネクションの追加ダイアログに戻り、アプリケーションのアプリ ID およびクライアントシークレットの値を対応するフィールドに貼り付けます。
承認されたスコープ値を編集して接続のアクセス権限を制限するか、このフィールドを空のままにします。
セットアップを終了するには、保存をクリックします。
Azure DevOpsPAT 接続
このタイプの接続では、個人アクセストークンを使用します。これにより、Git または TFVC リポジトリ URL からのプロジェクトの作成、Azure DevOpsVCS ルートの作成、Azure ボードの作業項目トラッカーとの統合が可能になります。
Azure DevOps PAT 接続を構成するには:
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「Azure DevOps PAT」を選択します。開いたページには、TeamCity を Azure DevOps サービスに接続するときに使用するパラメーターが表示されます。
Microsoft のドキュメント(英語)の説明に従って、Azure DevOps Services アカウントにログインして、すべての範囲で個人用アクセストークンを作成します。
TeamCity で接続の構成を続けます: 開いている接続の追加ページで、指定します
https://{account}.visualstudio.com形式のサーバー URL またはhttps://{server}:8080/tfs/としての Azure DevOps サーバー個人アクセストークン
接続のテストをクリックして、TeamCity がリソースにアクセスできることを確認し、新しい接続を保存します。
接続が設定され、リポジトリ URL を指定できるいくつかの場所で小さな Azure DevOps Services アイコンがアクティブになります。URL からビルド構成を作成、URL から VCS ルートを作成、Azure DevOps サーバー VCS ルートを作成、Azure ボードの作業項目トラッカーを作成。アイコンをクリックし、Azure DevOps Services にログインして TeamCity を承認します。TeamCity には、利用可能なすべてのリソースへのフルアクセスが付与されます。
TFS/VSTS でホストされている Git リポジトリの CommitStatus Publisher を構成する場合、VSTS プロジェクト接続が構成されていれば、パーソナルアクセストークンに自動的に入力できます。
Bitbucket クラウド
Bitbucket クラウドへの接続は、次の目的で使用できます。
Bitbucket URL からプロジェクトを作成します。
URL からの VCS ルートを作成します。
Mercurial VCS ルートを作成します。
Bitbucket クラウド課題トラッカーと統合します。
Bitbucket クラウド認証を有効にします。
Bitbucket クラウド接続フォームは複数のパラメーターを提供します。Bitbucket で新しい OAuth コンシューマー(英語)を作成するために使用する必要があります。
コンシューマーが作成された後:
その鍵と秘密をコピーします。
TeamCity の接続フォームに戻ります。
キーとシークレットを貼り付けます。
接続を保存します。
Bitbucket アイコンは、リポジトリ URL を指定できるいくつかの場所でアクティブになります。それをクリックして、Bitbucket プロファイルで TeamCity を承認します。TeamCity にはリポジトリへのアクセスが許可されます。複数の Bitbucket 接続を設定すると、各アイコンの横にサーバーの URL が表示されるため、使用中のサーバーを区別しやすくなります。
Bitbucket サーバーおよびデータセンター
Bitbucket サーバーおよびデータセンターとの統合により、現在次のことが可能になります。
TeamCity が Bitbucket データにアクセスできるようにするには、Bitbucket で受信アプリケーションリンクを作成し、TeamCity に必要なアクセス許可を付与する必要があります。
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「Bitbucket サーバー / データセンター」を選択します。
コールバック URL に追加される一意の ID を生成するには、固有のコールバック URL を有効にする設定が有効になっていることを確認してください。この設定により、ミックスアップ攻撃のリスクが軽減され、セットアップのセキュリティが強化されます。ミックスアップ攻撃とは、悪意のある認証サーバーを利用して実際の認証サーバーを偽装し、被害者のクライアントを騙して認証コード (トークン) を漏らさせる攻撃です。
/oauth/bitbucketserver/rid:your_unique_id/accessToken.htmlURL 形式を使用すると、攻撃者が TeamCity によって確認されるアドレスを手動で作成できなくなります。別のブラウザータブで、Bitbucket " 管理 | アプリケーションリンク」ページに移動します。
次のパラメーターを使用して新しいアプリケーションリンク(英語)を作成します。
アプリケーションタイプ: 外部アプリケーション
方向: 受信
リダイレクト URL: <コピー URL from the TeamCity new connection tab>
アプリケーションの権限: 「リポジトリ」の「書き込み」にチェックを入れます
アプリケーションリンクの準備が整うと、Bitbucket は「クライアント ID」と「クライアントシークレット」の値を生成します。これらの値をコピーして、TeamCity の新規接続タブの対応するフィールドに貼り付けます。
接続のテストをクリックして、TeamCity がリソースにアクセスできることを確認し、新しい接続を保存します。
GitHub
TeamCity を使用すると、通常の GitHub.com インスタンスと GitHub エンタープライズの両方への接続を作成できます。
GitHub への接続は、次の目的で使用できます。
GitHub URL からプロジェクトを作成します。
URL からの VCS ルートを作成します。
Git VCS ルートを作成します。
GitHub 課題トラッカーと統合します。
GitHub.com 認証と GitHub エンタープライズ認証を有効にします。
コミットステータスパブリッシャーおよびプルリクエストビルド機能のアクセストークンを提供します。
GitHub アプリ経由の接続を使用して、変更について TeamCity サーバーに通知する Webhook(英語) を構成できます。
ニーズに応じて、GitHub アプリまたは GitHub OAuth アプリケーションを介して動作する GitHub への接続を作成できます。
接続が正常に構成されると、リポジトリ URL を指定できるいくつかの場所で GitHub アイコンがアクティブになります。これをクリックすると、GitHub プロファイルで TeamCity が承認されます。TeamCity にはプライベートリポジトリのフルコントロールが付与され、リポジトリフックを書く権限が付与されます。複数の GitHub 統合を構成すると、各アイコンの横にサーバー URL が表示されるため、使用中のサーバーを区別しやすくなります。
GitHub アプリ
GitHub アプリ(英語)は、TeamCity などのサードパーティサービスが、「サービス」ユーザーアカウントを保持せずに GitHub リポジトリに接続できるようにする統合です。GitHub OAuth アプリケーションと比較して、GitHub アプリはきめ細かい権限を誇り、アプリがアクセスできるリポジトリをより細かく制御できます。詳細については、この記事を参照してください: GitHub アプリと OAuth アプリの違い(英語)。
さらに、GitHub App 接続を介して作成された構成では、VCS トリガーと Commit Status Publisher ビルド機能の従来の組み合わせを置き換える GitHub チェック Webhook トリガーを使用できます。
適切な GitHub アプリがまだない場合は、TeamCity にそのアプリを登録させ、この新しいアプリを使用する接続を一度に作成することができます。TeamCity はマニフェスト(英語)を使用して新しい GitHub アプリを登録します。
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「GitHub アプリ」を選択します。この接続タイプは、通常の GitHub および GitHub エンタープライズアカウントの両方で機能します。
TeamCity がマニフェストから GitHub アプリを登録できる(英語)ようにするには、自動作成モードを選択します。

GitHub サーバーの URL (「/username」なし) を指定し、このアプリがコミット後のフックを送信するか、組織にアクセスできるようにするか、あるいはその両方を選択します。
新しい GitHub アプリで組織リポジトリへのアクセスを提供する必要がある場合は、所有者設定を組織に切り替え、対応するフィールドに組織名を入力します。
画面の指示に従って GitHub アカウントにログインし、TeamCity にアプリの登録を許可し、個人アカウントまたは組織アカウントにアプリをインストールします。
新しい GitHub アプリを手動で作成し、このアプリを使用する TeamCity 接続を構成するには:
上記のリストの手順 1 ~ 3 を繰り返します。
接続の作成モードをマニュアルに切り替えます。
コールバック URL に追加される一意の ID を生成するには、固有のコールバック URL を有効にする設定が有効になっていることを確認してください。この設定により、ミックスアップ攻撃のリスクが軽減され、セットアップのセキュリティが強化されます。ミックスアップ攻撃とは、悪意のある認証サーバーを利用して実際の認証サーバーを偽装し、被害者のクライアントを騙して認証コード (トークン) を漏らさせる攻撃です。
/oauth/githubapp/rid:your-unique-id/accessToken.htmlURL 形式を使用すると、攻撃者が TeamCity によって確認されるアドレスを手動で作成できなくなります。別のブラウザータブで、GitHub アカウントに移動し、TeamCity 接続の説明の指示に従って新しいアプリを作成します。このプロセスで GitHub が秘密鍵を生成することに注意してください。この
.private-key.pemファイルを安全な場所に保存します。GitHub アプリの一般設定を開きます。必要な値 (アプリ ID、クライアント ID、クライアントシークレット) をコピーし、TeamCity ダイアログに貼り付けます。
GitHub アプリ Webhook(英語) が設定されている場合は、そのシークレットを設定し、同じ値を Webhook シークレットフィールドにコピーします。GitHub はこの Webhook を使用して、サーバーが GitHub の変更を継続的にポーリングするのではなく、変更が発生したときにリポジトリをスキャンする必要があることを TeamCity サーバーに通知できます。参照: VCS コミット後フックの設定。
所有者 URL を入力します。これは、この GitHub アプリがインストールされている個人アカウントまたは組織へのリンクです。
GitHub から送信された秘密鍵をアップロードします。
接続のテストをクリックして、TeamCity がリソースにアクセスできることを確認し、新しい接続を保存します。
GitHub OAuth アプリケーション
OAuth アプリケーションはユーザーアクセストークンを生成し、TeamCity などのサードパーティサービスがこれらのサービスを承認したユーザーに代わってアクションを実行できるようにします。
GitHub OAuth アプリケーションを利用する TeamCity 接続を作成するには:
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「GitHub.com または GitHub Enterprise」を選択します。
GitHub OAuth アプリケーションがまだない場合は、TeamCity の指示に従って新しいアプリケーションを作成してください(英語)。
OAuth アプリケーションの設定からクライアント ID とシークレットをコピーし、TeamCity ダイアログに貼り付けます。GitHub Enterprise の場合は、さらに GitHub サーバー URL を貼り付ける必要があります。
接続のテストをクリックして、TeamCity がリソースにアクセスできることを確認し、新しい接続を保存します。
GitLab
GitLab 接続には、https://gitlab.com(英語) サイトでホストされているアカウント用の GitLab.com と、自己ホスト型 GitLab Community Edition (CE) または Enterprise Edition (EE) サーバー上のアカウント用の GitLab CE/EE の 2 種類があります。
GitLab への接続は、次の目的で使用できます。
URL からの VCS ルートを作成します。
GitLab 課題トラッカーと統合します。
GitLab.com 認証を有効にします。
OAuth アプリケーションはユーザーアクセストークンを生成し、TeamCity などのサードパーティサービスがこれらのサービスを承認したユーザーに代わってアクションを実行できるようにします。
GitLab OAuth アプリケーションを使用する TeamCity 接続を作成するには:
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「GitLab.com または GitLab CE/EE」を選択します。
GitLab CE/EE 接続のみ: コールバック URL に追加される一意の ID を生成するために、固有のコールバック URL を有効にする設定が有効になっていることを確認します。この設定により、ミックスアップ攻撃のリスクが軽減され、セットアップのセキュリティが強化されます。ミックスアップ攻撃とは、悪意のある認証サーバーを利用して実際の認証サーバーを偽装し、被害者のクライアントを騙して認証コード (トークン) を漏らさせる攻撃です。
/oauth/gitlab/rid:your_unique_id/accessToken.htmlURL 形式を使用すると、攻撃者が TeamCity によって確認されたアドレスを手動で作成できなくなります。GitLab OAuth アプリケーションをまだ持っていない場合は、GitLab の手順に従って、次のいずれかのスコープで OAuth アプリケーションを作成します。
GitLab で新しいアプリケーションを追加するフォームに記入する場合:
アプリケーションの名前を選択します
TeamCity ダイアログからリダイレクト URL を GitLab フォームにコピーします
スコープで、API をチェックしてください
「アプリケーションを保存」をクリック
GitLab アプリケーション設定からアプリケーション ID とシークレットをコピーし、TeamCity ダイアログに貼り付けます。
GitLab CE/EE 接続の場合、GitLab CE/EE サーバーのベース URL (例:
https://gitlab.mydomain.com) もサーバー URL フィールドに入力する必要があります。GitLab.com 接続の場合、ベース URL は常にhttps://gitlab.comであるため、このフィールドは不要であることに注意してください。接続のテストをクリックして、TeamCity がリソースにアクセスできることを確認し、新しい接続を保存します。
GitLab アイコンは、リポジトリの URL を指定できるいくつかの場所でアクティブになります。それをクリックして、GitLab プロファイルで TeamCity を認証します。TeamCity はあなたのリポジトリへのアクセスを許可されます。複数の GitLab 接続を構成すると、サーバーの URL が各アイコンの横に表示されるため、使用中のサーバーを簡単に区別できます。
このタイプの接続は、Google サービスをサポートしています。OAuth 2.0 プロトコル(英語)を使用しています。
この接続は、Google アカウントによる TeamCity での認証に使用されます。
Google 接続を構成する前に、新しい Google プロジェクトを作成し てアプリを登録する(英語)必要があります (まだ行っていない場合)。
TeamCity で Google 接続を構成するには:
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「Google」を選択します。
TeamCity によって表示されたリダイレクト URL をコピーします。これらの URL は OAuth クライアントを登録するために必要です。
Google プロジェクトの資格情報ページに移動し、Web アプリケーションタイプで OAuth クライアント ID(英語) を作成します。
コールバック URL を Google OAuth クライアント ID の承認されたリダイレクト URI セクションに貼り付けます。OAuth クライアントが作成されたら、クライアント ID とクライアントシークレットをコピーします。
TeamCity の接続フォームに戻り、クライアント ID とクライアントシークレットを入力します。
接続のテストをクリックして、TeamCity がリソースにアクセスできることを確認し、新しい接続を保存します。
これで Google 認証モジュールを有効にできます。
Docker レジストリ
Docker レジストリへの接続は、次の目的で使用できます。
ビルドを実行する前に認証された Docker レジストリにサインインし、ビルド後にサインアウトします。
ビルド後に公開されたイメージをクリーンアップします。
詳細については、専用の記事を参照してください。
Amazon Web サービス (AWS)
Amazon Web サービス (AWS) 接続では、AWS 資格情報を一度定義すると、AWS 認証情報ビルド機能を介してビルドで使用できます。アクセスキー、IAM ロール、デフォルト認証情報プロバイダーチェーンなど、さまざまな AWS 認証情報タイプを使用できます。
TeamCity で AWS 接続を設定するには:
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「Amazon Web サービス (AWS)」を選択します。
この接続を他の接続と区別するための名前を付けます。
接続 ID フィールドは自動的に入力されます。これを変更して、独自の一意の ID を指定できます。
ターゲットリソースが配置されている AWS リージョンを選択します。
タイプドロップダウンから、資格情報の種類のいずれかを選択します。
- アクセスキー
認証情報タイプとしてアクセスキーを選択した場合は、AWS コンソールの ID およびアクセス管理セクション(英語)からキーを取得し、TeamCity に提供します。これらのキーを取得する方法については、こちら(英語)を参照してください。TeamCity UI のアクセスキーセクションで、次の操作を行います。
永続的なアクセスキーを指定します。
アクセスキー ID。アクセスキー ID を入力します。
秘密アクセスキー。シークレットアクセスキーを入力します。
セキュリティ上の理由から、アクセスキーを定期的に変更することをお勧め(英語)します。これは、キーを回転ボタンを使用して接続を確立した後に実行できます。
TeamCity は、古いキーをすぐには無効にしません。新しいキーが生成された後、TeamCity は古い非アクティブなキーを 24 時間保持してから削除します。古いキーの有効期間は、プロパティ
teamcity.internal.cloud.aws.keyRotation.old.key.preserve.time.minまたはteamcity.internal.cloud.aws.keyRotation.old.key.preserve.time.daysで変更できます。アクセスキーを正常にローテーションできるようにするには、TeamCity に
iam:GetUser、iam:CreateAccessKey、iam:DeleteAccessKey権限が必要です。一時的なセッション設定を構成します。
セッション資格情報を使用します。AWS STS 経由で一時的なアクセス(英語)キーを提供するエンドポイントを使用するには、ボックスをオンにします。このような資格情報は短期間です (デフォルトのセッション期間は 60 分です)。AWS 認証情報ビルド機能(英語)でデフォルトのセッション期間をオーバーライドできます。これらの認証情報は特定のユーザーのものではなく、特定のリソースへの一時的なアクセスを許可するために必要に応じて提供できます。セキュリティが向上するため、一時的な認証情報を使用することをお勧めします。
STS エンドポイント。
TeamCity は、AWS リージョンを変更すると、このフィールドを自動的に生成します。リージョンエンドポイントは、高速で待ち時間が短いため、推奨さ(英語)れます。さらに、地域のエンドポイントへのすべての呼び出しは、地域のサービス呼び出しとして AWS Cloud Trail に記録されます。
選択したリージョンエンドポイントが Amazon アカウントで無効(英語)になっており、有効にしたくない場合は、グローバルエンドポイント(英語)を使用します。
MinIO(英語) などの Amazon 代替のカスタムエンドポイントを指定する必要がある場合は TeamCity サポートチームにお問い合わせください(英語)。
- IAM ロール
IAM ロール(英語)を使用すると、通常はこれらの権限を持たないユーザー、アプリケーション、サービスに AWS リソースへのアクセスを委譲できます。これらのエンティティは、このようなアクセスを取得するためにこのロールを引き受けます(英語)。この TeamCity プロジェクトでアクセスキーまたはデフォルトの認証情報プロバイダーチェーンが設定されている AWS 接続が少なくとも 1 つある場合にのみ、認証情報タイプとして IAM ロールを使用できます。
IAM ロールを指定します。
AWS 接続。指定された IAM ロールを付与する (英語)AWS 接続を選択します。ターゲット AWS 接続が親 TeamCity プロジェクトに属している場合、この接続のサブプロジェクトで利用可能設定を有効にする必要があることに注意してください。
ロール ARN。作成している接続で引き受けるロールの ARN(英語) を指定します。
セッション設定を構成します。
セッションタグ。Amazon では、セッションタグ(英語)が必要です。AWS ログで TeamCity 接続によって作成されたセッションを見つけると便利です。TeamCity はタグを自動的に生成しますが、独自の値を指定できます。
STS エンドポイント。
TeamCity は、AWS リージョンを変更すると、このフィールドを自動的に生成します。リージョンエンドポイントは、高速で待ち時間が短いため、推奨さ(英語)れます。さらに、地域のエンドポイントへのすべての呼び出しは、地域のサービス呼び出しとして AWS Cloud Trail に記録されます。
選択したリージョンエンドポイントが Amazon アカウントで無効(英語)になっており、有効にしたくない場合は、グローバルエンドポイント(英語)を使用します。
MinIO(英語) などの Amazon 代替のカスタムエンドポイントを指定する必要がある場合は TeamCity サポートチームにお問い合わせください(英語)。
接続が作成されたら、自動生成された外部接続 ID を表示およびコピーできます。混乱した代理人の問題(英語)を防ぐために、常に AWS の信頼ポリシー(英語)に追加することを強くお勧めします。これにより、承認された TeamCity AWS 接続のみが、指定された IAM ロールを使用できるようになります。
- デフォルトの資格情報プロバイダーチェーン
デフォルトのチェーン(英語)に従ってアクセス資格証明を提供するには、このタイプを選択します。このアプローチは、資格情報をプレーンテキストで保存する代わりの方法を提供します。
この資格情報タイプを使用すると、TeamCity は次の順序で資格情報を検索します。Java システムプロパティ:
aws.accessKeyIdおよびaws.secretAccessKey環境変数:
AWS_ACCESS_KEY_IDおよびAWS_SECRET_ACCESS_KEYシステムプロパティまたは環境変数からの Web アイデンティティトークン認証情報(英語)。
# In ~/.aws/config [profile web-identity] role_arn=arn:aws:iam:123456789012:role/RoleNameToAssume web_identity_token_file=/path/to/a/tokenすべての AWS SDK と AWS CLI で共有されるデフォルトの場所 (
~/.aws/credentials) にある認証情報プロファイルファイル。# In ~/.aws/credentials [default] aws_access_key_id = your_key aws_secret_access_key = your_secretデフォルトの場所は、
AWS_SHARED_CREDENTIALS_FILE環境変数を介して上書きできます。AWS_CONTAINER_CREDENTIALS_RELATIVE_URI環境変数が設定されていて、セキュリティマネージャーがそれにアクセスできる場合、Amazon EC2 コンテナーサービスを介して配信される資格情報。Amazon EC2 メタデータサービスを介して提供されるインスタンスプロファイル資格情報。
現在のプロジェクトのすべてのサブプロジェクトでこの接続を利用できるようにする場合は、サブプロジェクトで利用可能オプションにチェックを入れます。
AWS 認証情報ビルド機能機能設定でこの接続を選択できるようにするには、ビルドステップで利用可能オプションにチェックを入れます。
接続のテストをクリックして、TeamCity がリソースにアクセスできることを確認し、新しい接続を保存します。
設定された AWS 接続は、AWS 認証情報ビルド機能、アーティファクト S3 ストレージ、EC2 クラウドプロファイル、IAM ロールを使用するその他の AWS 接続に認証情報を提供できます。
推奨されるセットアップ
Amazon キー管理ガイドライン(英語)では、アクセスキーと静的 IAM ユーザー認証情報の代わりに IAM ロールを使用することを推奨しています。IAM ロールは有効期間の短い認証情報を発行するため、このアプローチにより、認証情報が (偶然またはセキュリティ違反の結果として) 公開された場合の潜在的な損害が最小限に抑えられます。
TeamCity を使用すると、プロジェクトは、IAM ロールを引き受け、ローカルに保存された認証情報に依存しない接続を使用して、必要な AWS リソースにアクセスできます。
AWS マネジメントコンソールで、IAM ダッシュボード(英語)に移動し、ロールタブに移動します。
新しい空の IAM ロールを作成します。このロールを「ロール A」と呼びます。このロールに必要な権限は、他のロールを引き受ける権限のみです。
任意のロールを引き受ける権限を持つロール A:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "*" }] }特定のロール B を引き受ける権限を持つロール A (手順 6 を参照)
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::ACCOUNT_ID:role/ROLE_B" }] }ローカルに保存された認証情報の代わりにこのロールを使用して AWS にアクセスするように TeamCity サーバーマシンを構成します。必要な手順は、マシンの正確なタイプによって異なる場合があります。
TeamCity で、デフォルトの認証情報プロバイダーチェーンタイプの新しい AWS 接続を作成します。接続のテストを押して、TeamCity が空の「ロール A」を使用するようにします。
サブプロジェクトがこの新しい接続にアクセスできるようにする場合は、サブプロジェクトで利用可能オプションをオンにします。それ以外の場合、この接続を所有する同じプロジェクトのみがその接続を使用できます。

AWS リソース (EC2 インスタンスや S3 バケットなど) にアクセスするために必要な権限を持つ 2 番目の IAM ロール (「ロール B」) を作成します。
この新しいロール B の信頼関係を変更して、ロール A がそれを引き受けられるようにします。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "your-Role-A-ARN" }, "Action": "sts:AssumeRole" } ] }AWS リソースにアクセスする必要がある TeamCity プロジェクトで、別の AWS 接続を作成します。
タイプ - 「IAM ロール」。
AWS 接続 — 手順 4 で作成した接続。
ロール ARN — 「ロール B」の ARN。
プライマリ「デフォルト資格情報プロバイダーチェーン」接続を所有するプロジェクトのサブプロジェクトでこの新しい接続を構成する場合、このプライマリ接続のサブプロジェクトで利用可能設定が有効になっている必要があることに注意してください (手順 5 を参照)。
「接続のテスト」をクリックして、TeamCity がロール B を想定できることを確認します。
Running STS get-caller-identity... Caller Identity: Account ID: <your account ID> User ID: <user ID:session> ARN: <Role B ARN>新しい接続を保存し、再度接続します。接続の外部 ID 値が表示されるはずです。

ロール B の信頼関係に戻り、追加の条件を追加します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "your-Role-A-ARN" }, "Condition": { "StringEquals": { "sts:ExternalId": "External-ID-copied-from-TeamCity" } }, "Action": "sts:AssumeRole" } ] }
その結果、次のセットアップが完了しました。
プライマリデフォルトの認証情報プロバイダーチェーン接続には、ローカルに保存された資格情報は必要ありません。
この共有プライマリ接続には、何にもアクセスする権限がありません。AWS リソースにアクセスするには、他の IAM ロールを引き受ける必要があります。
ステップ 11 で設定された条件により、実際のアクセス権限を持つロールは、設定された「IAM ロール」TeamCity 接続によってのみ引き受けることができます。TeamCity 管理者は、これらのロールを利用する接続をさらに作成することはできません。

Amazon リソースにアクセスできる接続をさらに作成するには、AWS 管理者はこれらの新しい接続の外部 ID をホワイトリストに追加する条件を追加する必要があります。
Amazon ECR
Amazon ECR (Elastic Container Registry) 接続により、プライベートおよびパブリックの AWS レジストリにアクセスできます。これにより、Docker レジストリ接続ビルド機能は、ビルドによって生成された Docker/Podman イメージを AWS に保存できます。
接続設定:
設定 | 説明 |
|---|---|
リポジトリタイプ | プライベート(英語)レジストリまたはパブリック(英語)レジストリへの接続を選択します。 |
AWS リージョン | (プライベートレジストリの場合のみ)ターゲットリソースが配置されている AWS リージョンを選択します。 |
クレデンシャルタイプ |
|
IAM のロール ARN ( 一時的な認証情報のみ ) | 一時的な資格情報の生成に使用するロールを指定します。AWS コンソールで事前にこのロールを作成(英語)し、必要なすべてのパーミッションに割り当てる必要があります。 |
外部 ID ( 一時的な認証情報のみ ) | 外部 ID(英語) を指定します。一時的なクレデンシャルを使用する場合は、常に定義することを強くお勧めします。これにより、TeamCity のみが指定された IAM ロールを使用できるようになります。 |
デフォルトの資格情報プロバイダーチェーン | このオプションを有効にすると、デフォルトのチェーン(英語)に従ってアクセス資格情報が自動的に検索されます。 TeamCity 環境のどこにも資格情報を保存したくない場合は、このアプローチをお勧めします。デフォルトでは、 |
アクセスキー ID | アクセスキー ID を指定します。 こちら(英語)で入手方法を参照してください。 |
秘密アクセスキー | シークレットアクセスキーを指定します。 こちら(英語)で入手方法を参照してください。 |
レジストリ ID | アカウント ID(英語) 番号を入力してください。 |
Slack
このタイプの接続は、Slack(英語) 経由で通知を送信するために使用されます。
Slack 接続を構成する前に、次のボットトークンスコープ(英語)を使用して Slack アプリ(英語)を作成する必要があります: channels:read、chat:write、im:read、im:write、users:read、team:read、groups:read これらは、Slack アプリの機能 | OAuth と権限 | スコープに追加できます。
TeamCity サーバーが Slack に接続できるようにするには、機能 | OAuth と権限でサーバーの可能なすべてのエンドポイントアドレスをリダイレクト URL として指定します。ほとんどの場合、グローバル設定で設定されたサーバー URL を TeamCity で指定するだけで十分です。ただし、TeamCity サーバーにプロキシを使用していても、このサーバーに直接アクセスする場合は、サーバーの IP アドレスもリダイレクト URL で指定しないと、Slack での認証が機能しない可能性があります。
これで、TeamCity に戻り、新しい Slack 接続を追加して、次の接続パラメーターを入力できます。
アプリの基本情報ページからのクライアント ID とシークレット
アプリのボットユーザートークン (英語)
構成された Slack 接続は、通知機能ビルド機能およびサービスメッセージによって使用されます。
JetBrains Space
このタイプの接続は、次の目的で使用できます。
ステータス発行者のコミットを使用して、ビルドステータスを JetBrains Space に公開します。
JetBrains Space アカウントを持つ TeamCity での認証。
JetBrains Space リポジトリで作成されたマージリクエストのビルドを開始します。
Space 接続を構成するには 2 つの方法があります。
自動的に — TeamCity は、必要なすべての権限を備えた読み取り専用 Space アプリケーションを構成し、Space インスタンスにインストールします。
手動 - Space アプリケーションを手動で作成してインストールし、TeamCity で接続設定をセットアップする必要があります。
自動接続
JetBrains Space に格納されているリポジトリを構築してデプロイする TeamCity プロジェクトを構成するには、次の 2 つの個別の接続が必要です。
組織接続 — TeamCity がスペースインスタンスにアクセスできるようにする共通の接続設定を保存するエントリポイント。
プロジェクト接続 - TeamCity が 1 つの特定のプロジェクトとそのリポジトリにアクセスできるようにします。
親 TeamCity プロジェクトで構成された組織接続は 1 つだけ必要です。ただし、別の Space プロジェクトにアクセスするには、別のプロジェクト接続が必要になります。
組織接続を構成するには:
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「JetBrains Space」を選択します。
作成モードで自動: 組織とのつながりを選択します。
新しい接続の名前を入力し、「スペースアプリケーションの作成」をクリックします。
TeamCity は別のブラウザーウィンドウを開き、必要なスペースインスタンスを選択できます。

Space Cloud — 必要な Space Cloud インスタンスの横にあるインストールをクリックするか、現在別のユーザーアカウントを使用してログインしている場合は別のメールを試するをクリックします。
オンプレミスのスペース — スペース組織の URL を入力し、インストールをクリックします。
Space アプリケーションの名前とオプションの説明を入力し、インストールをクリックします。

すべて承認して TeamCity に戻りますをクリックして、新しくインストールされた Space アプリケーションに必要な権限を付与します。
組織接続が構成およびインストールされると、TeamCity には他のアプリケーションをインストールし、プロジェクトのリストをスキャンする権限が与えられます。このリストを表示するには、新しいビルド構成を追加するか、ソースとして組織接続を選択して新しい VCS ルートを作成します (最初の試行時に TeamCity を認証する必要があります)。

すべてのプロジェクトは、最初はスペースアイコンがグレー表示になっていることに注意してください。これは、TeamCity がこれらのプロジェクトのリポジトリにまだアクセスできないことを意味します。TeamCity に必要な権限を付与するには、次の手順を実行します。
必要なプロジェクトをクリックします。
「続行」をクリックします。TeamCity は、この特定のプロジェクトにアクセスするために必要なすべての権限を持つ新しい事前構成済みアプリケーションを作成してインストールします。
画面の指示に従ってスペース管理ダッシュボードに移動し、これらの権限リクエストを承認します。
このプロジェクトに追加されたすべてのリポジトリが表示されるはずです。TeamCity にリポジトリへのアクセスを許可するアプリケーションがインストールされているスペースプロジェクトには、色付きのスペースアイコンが表示されます。

プロジェクト接続をさらに追加して、TeamCity が同じ組織内の追加の Space プロジェクトにアクセスできるようにすることができます。これを行うには、プロジェクト設定 | 接続に移動し、自動: プロジェクト接続作成タイプで新しい Space 接続を作成します。このオプションは、このプロジェクト (またはその親) に組織接続を追加すると使用可能になります。

個々の Space プロジェクト接続は、ステータス発行者のコミットおよびプルリクエストビルド機能で使用して、プロジェクトリポジトリと対話することもできます。スペース組織接続により、ユーザーはスペース資格情報を使用して TeamCity にログインできるようになります。
プロジェクトレベルの自動接続によって構成された Space アプリケーションは、VCS ルートとビルド機能がプロジェクトリポジトリにアクセスするために使用するアクセストークンを発行します。これらのアクセストークンは非個人的なものです。つまり、最初に TeamCity プロジェクトを設定してトークンを発行したユーザーが組織を離れた場合でも、これらのプロジェクトは機能し続け、リフレッシュする必要はありません。リフレッシュ可能なトークンの詳細については、この記事を参照してください: リフレッシュ可能なアクセストークンの管理。
手動接続
JetBrains Space への手動接続の構成には、必要な権限を持つ Space アプリケーションを作成し、TeamCity UI で接続設定をセットアップする 2 つの手順が含まれます。
スペースアプリケーションの作成
管理 | アプリケーションに移動し、新しいアプリをクリックしてください。
わかりやすい名前を入力して、アプリケーションを保存します。
アプリの許可タブに移動し、コンテキスト内認証セクションにある要件を構成するをクリックします。TeamCity からアクセスしようとしている Space プロジェクトの名前を入力します。
次に、このプロジェクトでアプリに付与される権限を設定する必要があります。構成をクリックして、次の権限を有効にします。
認証とプルリクエストに必要:
メンバー | メンバープロファイルを見る
コミットステータスパブリッシャーに必要:
Git リポジトリ | 外部チェックステータスを報告する
コードレビューのコメント | コードレビューにコメントを投稿する
プルリクエストに必要:
コードレビュー | コードレビューを見る
プロジェクトの管理者であれば、この許可タブでプロジェクトレベルの権限を承認できます。メンバープロファイルの表示などのグローバル権限には、サーバー管理者の承認が必要です。
アプリの概要に戻り、認証タブを開きます。
クライアント資格情報 Flow を有効にします。
TeamCity で Space 経由の認証を使用したり、Space リポジトリからプロジェクトや構成を作成したりするには、認証コード Flow も有効にします。リダイレクト URI として TeamCity サーバーの URL を入力します。TeamCity でコールバック URL に一意の ID を追加する場合は、まず TeamCity 接続を作成し、接続の追加ダイアログから URL をコピーします。この URL は次のようになります:
.../oauth/space/rid:your-unique-id/accessToken.htmlTeamCity サーバーが常に JetBrains Space に接続できるようにするには、サーバーの他のすべての可能なエンドポイントアドレスを指定します。ほとんどの場合、TeamCity のグローバル設定で設定されたサーバー URL を指定するだけで十分です。ただし、TeamCity サーバーにプロキシを使用してこのサーバーに直接アクセスする場合は、サーバーの IP アドレスもここで指定しないと認証が機能しない可能性があります。アプリのクライアント ID とクライアントシークレットをコピーします。
メモ : JetBrains Space でプロジェクトを作成しても、このプロジェクトにメンバーとして自動的に追加されません。これは手動で行う必要があります。TeamCity は、メンバーとしてリストされているプロジェクトのみを表示できます。
TeamCity UI で接続を構成する
Space 接続の構成とインストールが完了したら、TeamCity に戻り、新しい JetBrains Space 接続を追加します。接続設定で、次の接続パラメーターを入力します。
スペースサーバーの URL
Space アプリケーションのクライアント ID とシークレット
接続を保存し、ステータス発行者のコミットまたはプルリクエスト機能の追加、Space 認証の有効化、ビルド構成またはパイプライン / ビルド 構成 /VCS ルートの作成に進みます。
Kubernetes
Kubernetes 接続により、TeamCity は Kubernetes リソースにアクセスできます。これらの接続は構築タスクを K8s クラスタにオフロードするに使用できます。
プロジェクト設定を開き、接続設定タブに移動します。
接続の追加をクリックします。接続は親プロジェクトとサブプロジェクトでのみ使用できることに注意してください。接続をグローバルに使用できるようにするには、ルートプロジェクトに追加します。
接続タイプドロップダウンメニューで「Kubernetes 接続」を選択します。
KubernetesAPI サーバー(英語)の URL を指定します。
クラスターの CA 証明書(英語)のコンテンツを入力します。
必要な Kubernetes 名前空間(英語)を指定します。デフォルトの名前空間(英語)を使用するには、空のままにします。
必要な認証戦略を選択します。選択した戦略に応じて、追加オプションのセットは異なります。使用可能なオプションの詳細については、Kubernetes のドキュメント(英語)を参照してください。
接続のテストをクリックして、TeamCity がリソースにアクセスできることを確認し、新しい接続を保存します。
NPM レジストリ
このタイプの接続により、Node.js ランナーはビルド中にプライベート npm レジストリ(英語)にアクセスできます。プロジェクトには複数の NPM レジストリ接続がある場合があるため、Node.js ビルドステップで使用する接続を選択するように関連するビルド機能を構成する必要もあります。
接続設定:
設定 | 説明 |
|---|---|
スコープ | 接続されたレジストリに関連付ける (英語)npm ユーザー / 組織のスコープ (英語)( このプロジェクトでレジストリを 1 つだけ使用する場合は、空のままにします。これは、デフォルトで |
レジストリ URL | npm レジストリ URL を次の形式で指定します: |
アクセストークン | レジストリへのアクセスにトークンが必要な場合は、トークン(英語)を指定します。匿名アクセスの場合は空のままにします。トークンベースの認証はレジストリの種類によって異なる場合があることに注意してください。npm Enterprise(英語)、Space パッケージ、または GitHub パッケージ(英語)の手順を参照してください。 |
接続を保存して、NPM レジストリ接続ビルド機能の追加に進みます。
Perforce 管理者アクセス
このタイプの接続では、Perforce サーバー上でタスクストリームを処理できます。接続設定で、Perforce サーバーにアクセスするためのホストとユーザーの資格情報を入力します(ユーザーは管理者(英語)権限を持っている必要があります)。
HashiCorp Vault
この接続により、TeamCity リモートパラメーターが値を取得するシークレットボールトとの統合が可能になります。詳しくは HashiCorp ボールトの統合を参照してください。
関連ページ:
VCS ルートの設定
VCS ルートは、TeamCity ←→ VCS リポジトリ通信の基礎です。この不可欠な要素は、リポジトリのチェックアウト、コードソースのタグ付け、ビルドステータスの VCS への返信など、さまざまな操作を実行するために必要な VCS プロバイダーへの接続を定義します。VCS ルートには次の情報が保存されます。TeamCity がリモートファイルをプルおよびプッシュするために使用する URL を取得してプッシュします。ブランチ情報: TeamCity が追跡する必要があるリポジトリブランチのリスト...
クラウドのホストビルドエージェント
TeamCity とクラウド (IaaS) ソリューションの統合により、TeamCity は TeamCity エージェントをオンデマンドで実行する仮想マシンを提供できるようになります。これにより、TeamCity は現在のワークロードに応じてアクティブなビルドエージェントの数を自動的に調整できます。クラウドエージェントとエグゼキューター:TeamCity は次の 2 種類の統合をサポートしています。通常のクラウドエージェント。この統合タイプでは、ビルドエージェントをホストする環境として、クラ...
Amazon S3 および S3 互換ストレージ
TeamCity には、Amazon S3 Artifact Storage プラグインがバンドルされており、これにより、ビルドアーティファクトを Amazon S3 バケットや MinIO、バックブレイズ B2 などの S3 互換バケットに保存できます。S3 互換ストレージは、AWS 環境と AWS 以外の環境の両方でホストできます。新しい AWS S3 ストレージを作成してセットアップする:「管理 | <あなたのプロジェクト>」ページに移動し、「アーティファクトストレージ」タブに切...
認証設定を構成する
TeamCity は、内部データベースを介してユーザーを認証することも、システムに統合して、Windows ドメイン、LDAP、Git ホスティングプロバイダーなどの外部認証ソースを使用することもできます。認証モジュール:認証は管理 | 認証ページで構成されます。現在使用されている認証モジュールも表示されます。TeamCity は、最も一般的な使用例をカバーするために、いくつかの事前構成された認証オプション(プリセット)を提供します。プリセットは、TeamCity でサポートされている認証モジ...
サービスメッセージ
サービスメッセージは、ビルドに関するコマンド / 情報をビルドスクリプトから TeamCity サーバーに渡す特別に構成されたテキストです。TeamCity、それらはビルドの標準出力ストリームに書き込まれる必要があり、ビルドステップから出力またはエコーされますによって処理されます。例:echo ##teamcity[<messageName> 'value']echo
HashiCorp ボールトの統合
HashiCorp Vault は、トークン、パスワード、証明書、暗号化キーを安全に保管するためのストレージです。TeamCity パラメーターとトークン内に機密情報を保存する代わりに、機密情報を Vault に保持し、Vault エンジン (KV/KV2、AWS、Google Cloud など) からこのデータに安全にアクセスできるように TeamCity を設定できます。共通情報:HashiCorp Vault との統合を設定するには、次のものが必要です。必要なプロジェクトの HashiCor...