ロールと権限の管理
TeamCity のユーザーアクセスレベルは、ユーザーに異なる ロールを割り当て、それぞれの 権限を付与することで処理されます。
権限とは、ビルドを実行したり、ビルド構成設定を変更したりするなど、特定の操作を実行するための 承認です。
ロールとは、1 つまたはすべてのプロジェクトでユーザーに付与できる 権限のセットであり、プロジェクトや UI のさまざまな機能へのアクセスを制御します。
認可モード
TeamCity の認証は、 シンプル と プロジェクトごと という二つのモードをサポートしています。
シンプル モードでは、認証レベルはゲスト、ログインユーザー、管理者の 3 種類のみです。
プロジェクトごと モードでは、プロジェクトまたはサーバー全体でユーザーのロールを割り当てることができます。 ロールのパーミッションのセットは編集可能です。
プロジェクトレベルで付与されたロール内の権限は、このプロジェクトのすべてのサブプロジェクトに自動的に伝播されます。
プロジェクトとすべての親プロジェクトを表示 権限では、プロジェクト (サブプロジェクトを含む) だけでなく、その親プロジェクトも表示できます。
認可モードの変更
明示的に構成されていない限り、TeamCity Professional ではシンプル認可モードが使用され、TeamCity Enterprise ではプロジェクトごとの認可モードが使用されます。
認証モードを変更するには、 管理 | 認証 に移動し、 プロジェクトごとの権限を有効にするオプションを有効 / 無効にします。
シンプル認可モード
ロール | 説明 |
|---|---|
管理者 | 制限のないユーザー。プロジェクトごとの認可モードにおける システム管理者ロールに対応します。 |
ログインユーザー | プロジェクトごとの許可モードですべてのプロジェクトに付与されるデフォルトの プロジェクト開発者ロールに対応します。 |
ゲストユーザー | プロジェクトごとの許可モードですべてのプロジェクトに付与されるデフォルトの プロジェクトビューアーロールに対応します。 |
プロジェクトごとの認可モード
ロールは、管理者によってプロジェクトごとにユーザーに割り当てられます。ユーザーはプロジェクトごとに異なるロールを持つことができるため、権限はプロジェクトベースになります。 ユーザーは、特定のプロジェクトまたは利用可能なすべてのプロジェクトでロールを持つことも、ロールをまったく持たないこともできます。 ユーザーアカウントをロール設定に関連付けることができます。 ユーザーグループにロールを付与することもできます。 つまり、グループに含まれるすべてのユーザー (直接含まれる場合と他のグループ経由の場合の両方) にロールが自動的に付与されます。
管理 | ロール でロールを追加し、それらにパーミッションを割り当てることができます。 ロールの 権限を追加 をクリックして、使用可能なすべての許可のリストを表示し、必要な許可を選択して、 追加 をクリックします。 複数の権限を追加するには、 Ctrl キーを押しながら選択します。
デフォルトでは、TeamCity は次のプロジェクトごとのロールを提供します:
ロール | 説明 |
|---|---|
システム管理者 | パーミッションに制限はなく、すべての プロジェクト管理者パーミッションがあります。 ユーザーアカウントの作成と管理、HTTPS 設定の変更、ビルドエージェントの承認、プロジェクトとビルド構成の設定、TeamCity サーバー設定の編集、TeamCity ライセンスの管理、サーバーデータクリーンアップルールの構成、VCS ルートの変更などを行えます。 |
プロジェクト管理者 | プロジェクトの一般設定とビルド構成の設定をカスタマイズし、プロジェクトユーザーにロールを割り当て、サブプロジェクトを作成し、ユーザープロファイルとロールを変更する権限を追加することなく、プロジェクト内のユーザーの VCS ユーザー名を変更できます。 すべての プロジェクト開発者権限を持っています。 プロジェクト管理者は、自分が管理するプロジェクトにのみ対応するロールの割り当てとグループの変更を行えます。 たとえば、プロジェクト A の管理者は、プロジェクト B に対してユーザーにロールを付与することも、プロジェクト B 固有の権限を持つグループにユーザーを追加することもできません。これを行えるのは、プロジェクト B の管理者 (またはシステム管理者) だけです。 有効化された「プロジェクトのユーザー / グループ通知ルールを変更する 」許可により、プロジェクトに割り当てられたユーザーおよびユーザーグループの通知ルールを編集できます。 管理するプロジェクトに関係なく、すべてのプロジェクト管理者はルートプロジェクトに対する「ビルド構成設定の表示」権限を持ち、その設定を表示できます。 |
プロジェクト開発者 | 通常、プロジェクトへの変更をコミットします。 ビルドの開始 / 停止、ビルドキュー内のビルドの並べ替え、ビルドソースのラベル付け、エージェントの詳細の確認、失敗したビルドの調査の開始ができます。 デフォルトでは、このロールには ビルドパラメーターをカスタマイズするおよび カスタムパッチでビルドソースコードを変更する権限があることに注意してください。 これにより、ビルドごとに構成 / 環境を変更するための間接的なアクセス権が付与される可能性があります (詳細については、こちらを参照してください)。 |
プロジェクトビューアー | プロジェクトへの読み取り専用アクセス権を持ち、プロジェクト、その親、サブプロジェクトのみを 表示できます。 エージェントの詳細を表示する権限はありません。 |
エージェントマネージャー | ビルドエージェントをカスタマイズおよび管理し、実行構成ポリシーを変更し、ビルドエージェントを 有効化 / 無効化し、 ビルドキューの一時停止 / 再開を有効化できます。 |
プロジェクトごとの権限が有効化されている場合、サーバー管理者は TeamCity 管理ウェブ UI で直接、ロールを変更、削除したり、任意の権限の組み合わせで新しいロールを追加したりできます。または、 roles-config.xml ファイルを変更することでも行えます。このファイルは <TeamCity データディレクトリ>/設定 ディレクトリに保存されています。 ユーザーにロールを割り当てると、Web UI の ロールの権限を表示するリンクに、現在の構成に従って各ロールの権限のリストが表示されます。
プロジェクトレベルのエージェント管理権限
TeamCity は、エージェントでタスクを実行するための次のプロジェクトレベルの権限を提供します:
プロジェクトに関連付けられたエージェントの有効化 / 無効化
プロジェクトのクラウドエージェントの開始 / 停止
プロジェクトのエージェント実行構成ポリシーを変更する
プロジェクトエージェントマシンの管理 (たとえば、再起動、エージェントログの表示)
プロジェクトエージェントを削除
プロジェクト担当者の承認
すべてのプロジェクトレベルのエージェント管理権限は、デフォルトで プロジェクト管理者ロールに追加されます。
ユーザーは、このプールに関連付けられているすべてのプロジェクトでこの権限がユーザーに付与されている場合、これらの権限のいずれかによって制御されるタスクを、ある プールに属するすべてのエージェントに対して実行できます。 例: 一部のプロジェクトで 「プロジェクトに関連付けられたエージェントの有効化 / 無効化」権限が付与されているユーザーは、プールに関連付けられている すべてのプロジェクト で権限が付与されている場合、関連プロジェクトのプールに属するエージェントを有効または無効にできます。
ロールの管理
インストール環境でプロジェクトごとの権限が有効化されている場合、TeamCity UI の 管理 | ロール ページで、既存のロールを表示、変更したり、新しいロールを作成したりできます。 それは可能にします:
新しいロールの作成。
既存のロールを削除します。
既存のロールからのアクセス許可の追加 / 削除。
ロールからの権限の包含 / 除外。
ロール設定はグローバルであることに注意してください。
権限の継承
ユーザー権限は、親プロジェクトからそのサブプロジェクトに、また親ユーザーグループから子グループに共有されます。
プロジェクトの継承
プロジェクト「Main」に 2 つのサブプロジェクト「Project A」と「Project B」があるとします。 各プロジェクトには、対応するユーザーグループがあります。
「Main Project Users」グループは、そのユーザーにプロジェクト「Main」の「プロジェクト管理者」ロールを付与します。
「グループ A」と「グループ B」は、対応する子プロジェクトの「プロジェクト閲覧者」ロールをユーザーに与えます。
"メインプロジェクトユーザー" および "グループ A" に追加されたユーザーには、このロールが "メインプロジェクトユーザー" グループから継承されるため、両方の子プロジェクトで "プロジェクト管理者" ロールが付与されます。

グループの継承
ユーザーグループにロールを割り当てると、このグループのすべての子グループに同じ権限が与えられます。 管理 | グループ ページでは、ロールが継承されたグループの「ロール」列に「N/M」カウンターが表示されます。 「N」はこのグループに直接割り当てられたロールの数、「M」は親グループから継承されたロールの数です。
以下の図では、「Tier 3」グループには、親の「Tier 1」および「Tier 2」グループから継承された 2 つのロールがあります。 このグループには直接割り当てられたロールがないため、そのカウンタは「0/2」です。
