メインコンテンツまでスキップ

チーム

Semaphore UI では、すべてのプロジェクトが チーム に関連付けられています。プロジェクトにアクセスできるのはチームのメンバーと管理者のみです。チームの各メンバーは 1 つ以上のロールを持ち、それによってアクセスのレベルと実行できる操作が決まります。メンバーは、自分のどれかのロールで許可されていることをすべて行えます。

Enterprise エディションでは、組み込みロールをカスタムロールで拡張し、特定のテンプレートに対するきめ細かな権限を追加で付与できます。

ヒント

プロジェクトへのアクセスを失わないように、オーナー ロールを持つチームメンバーを少なくとも 2 人用意することをおすすめします。

プロジェクトの チーム セクションには 2 つのタブがあります。ユーザーとそのロールを表示する メンバー と、カスタムロールを表示する ロール(Enterprise)です。

チームのメンバー

組み込みロール​

4 つの組み込みロールは次のとおりです。

  • オーナー
  • マネージャー
  • タスクランナー
  • ゲスト

以下では、各ロールとその権限を詳しく説明します。

オーナー​

  • すべての権限
    オーナーは、ロールの管理、メンバーの追加・削除、あらゆるプロジェクト設定の構成を含め、プロジェクト内のすべての操作を実行できます。

  • 複数のオーナー
    プロジェクトには複数のオーナーを設定できるため、すべての権限を持つ人を複数確保できます。

  • 最後のオーナー
    プロジェクトからオーナーがいなくなってはいけません。そのため、管理者以外は、最後のオーナーをプロジェクトから削除することも、オーナーロールを取り上げることもできません。最後のオーナー自身もプロジェクトから退出できません。

  • 他のオーナーの管理
    オーナーは、他のオーナーを含むすべてのチームメンバーを管理できます(削除やロールの変更も可能です)。

マネージャー​

  • プロジェクトの広範な管理: マネージャーはオーナーとほぼ同じ権限を持ち、日常的な作業のほとんどとプロジェクト環境の管理を行えます。

  • マネージャーが できないこと:

    • プロジェクトを削除する。
    • オーナーを削除する、またはそのロールを変更する。
  • 典型的なユースケース: 広範なアクセスが必要だが、プロジェクトの削除やオーナーの管理の権限までは不要な、経験豊富なチームメンバーにマネージャーロールを割り当てます。

タスクランナー​

  • タスクの実行: タスクランナーは、プロジェクト内に存在するあらゆるタスクテンプレートを実行できます。

  • その他のリソースは読み取り専用: タスクは実行できますが、インベントリ、変数、リポジトリなどのその他のリソースには読み取り専用のアクセスしかありません。

  • 典型的なユースケース: タスクの実行と監視は必要だが、プロジェクト設定の変更やチームメンバーの管理は不要な開発者や QA エンジニアです。

ゲスト​

  • 読み取り専用のアクセス: ゲストは、すべてのプロジェクトリソース(ログ、インベントリ、ダッシュボードの閲覧など)に読み取り専用でアクセスできます。

  • 書き込み権限なし: 設定の変更、タスクの実行、ロールの変更はできません。

  • 典型的なユースケース: 変更は行わず、プロジェクトの状況や詳細を閲覧するだけの関係者や協力者です。


拡張 RBAC Enterprise​

備考

拡張 RBAC は Semaphore Enterprise エディションで、Semaphore v2.17 以降で利用できます。

拡張 RBAC は、4 つの組み込みロールの上に追加の権限を重ねるものです。組み込みロール自体は変更されません。カスタムロールを定義しなければ、すべてのプロジェクトはコミュニティエディションとまったく同じように動作します。

拡張 RBAC では、カスタムロールによってプロジェクト全体の個別の権限を付与できます。また、選択したタスクテンプレートに対する権限をロールに付与することもできます。これにより、より上位の組み込みロールに昇格させることなく、チームメンバーに必要なテンプレートへのアクセスを与えられます。

カスタムロール​

カスタムロールは、自分で作成し、好きな権限を選べるロールです。組み込みロールと同じようにメンバーに付与します。メンバーは、カスタムロールだけを持つことも、組み込みロールと一緒に持つこともできます。

カスタムロールは 2 つのスコープで利用できます。

  • グローバルロール はインスタンスレベルで定義され、あらゆるプロジェクトで使用できます。
  • プロジェクトロール は単一のプロジェクト内で定義され、そのプロジェクト内でのみ利用できます。

権限のレベル​

カスタムロールは 2 つのレベルで権限を付与します。

  • プロジェクト全体の権限 は、プロジェクト全体にわたってユーザーのアクセスを拡張します。ロールを作成するときに選択します。
  • テンプレートの権限 は、1 つのタスクテンプレートに対する操作を制御します。ロールをテンプレートに追加した後、そのテンプレートの 権限 タブで選択します。

カスタムロールの作成​

ロールのフォームを開く前に、スコープを決めてください。

グローバルロール​

グローバルロールは一度作成すれば、あらゆるプロジェクトのユーザーに割り当てられます。グローバルロールを作成できるのはインスタンスの管理者のみです。

左下の管理者メニューを開き、ロール を選択します。

インスタンス全体のロールの一覧で 新しいロール を選択します。

管理者メニューからロールを開き、新しいロールを選択する

プロジェクトロール​

プロジェクトロールは、作成したプロジェクト内でのみ利用できます。プロジェクトのオーナーとマネージャーが作成できます。

  1. プロジェクトを開き、チーム > ロール に移動します。
  2. 新しいロール を選択します。

ロール タブは、最初のプロジェクトロールを作成するまで空です。このタブにはすべてのプロジェクトロールが一覧表示され、新しいロール ボタンがあります。

カスタムロールの構成​

どちらの経路でも同じロールのフォームが開きます。チームメンバーに必要なアクセスに合わせてロールを構成してください。

フィールドと権限のチェックボックスが表示された新しいロールのダイアログ

フィールド説明
名前ロールの人が読みやすいラベルです。
スラッグロールを参照するために使用する一意の技術的な識別子です。英字、数字、_、- を 100 文字以内で使用できます。例: release_operator。大文字と小文字は区別されません。Ops と ops は同じスラッグです。ロールの作成後にスラッグを変更することはできません。
権限このロールが付与するプロジェクト全体の権限です。

プロジェクト全体の権限​

ロールに必要なプロジェクト全体の権限のみを選択してください。

権限説明
プロジェクトのタスクを実行できるプロジェクトのタスクを実行します。
プロジェクトを更新できるダッシュボード > 設定 でプロジェクトの基本情報を編集します。
プロジェクトのリソースを管理できるタスクテンプレート、リポジトリ、インベントリ、変数グループ、キーストアのエントリ、スケジュール、インテグレーション、ランナーなどのプロジェクトリソースを管理します。これはプロジェクト全体のアクセスであり、テンプレート以外の個別のリソースに限定することはできません。
プロジェクトのユーザーを管理できるプロジェクトのメンバーとロールの割り当てを管理します。

プロジェクト全体の権限は、単一のインベントリ、リポジトリ、変数グループ、キーストアのエントリに限定することはできません。きめ細かなロールの割り当てに対応しているリソースの種類はタスクテンプレートのみです。

テンプレートのみへのアクセス

選択したタスクテンプレートのみにアクセスを追加するきめ細かなロールを作成するには、プロジェクト全体の権限をすべてチェックしないままにします。そのロールはプロジェクト全体の権限を一切追加しません。必要なテンプレートにそのロールを追加し、そこで必要な操作のみを選択してください。

ロールの構成が完了したら 保存 を選択します。

特定のタスクテンプレートへのアクセスを構成する​

テンプレートの権限は、選択したタスクテンプレートにアクセスを追加します。以下の例では、プロジェクト全体の権限を持たないカスタムロールを使用します。この最小権限の構成は、チームメンバーが選択したテンプレートの操作のみを必要とする場合に便利です。プロジェクト全体のアクセスを既に付与しているロールに、テンプレートの権限を追加することもできます。

対象のテンプレートを開く

  1. タスクテンプレート を開き、対象のテンプレートを選択します。
  2. 権限 タブを開きます。

権限 タブには、そのテンプレートに既に追加されているロールが一覧表示されます。

ロールを追加してテンプレートの権限を付与する

  1. ロールを追加 を選択し、このテンプレートに追加するカスタムロールを選びます。
  2. タスクを実行できる や テンプレートを更新できる など、そのロールに必要なテンプレートの権限のみを選択します。

この例では、プロジェクト全体の権限を持たない、あらかじめ作成したロールを使用しています。プロジェクトで利用できるカスタムロールであれば、どれでも選択できます。

必要な操作部分が強調されたテンプレートの権限のダイアログ

同じロールに別のテンプレートへのアクセスを付与するには、テンプレートごとにこの手順を繰り返します。

既存のプロジェクトのアクセス

テンプレートの権限は加算的です。ユーザーの組み込みロールや他のカスタムロールによるアクセスを置き換えたり削減したりすることなく、アクセスを追加します。ユーザーが既にすべてのタスクテンプレートを実行または更新できる場合、テンプレート固有のロールを追加してもそのアクセスが狭まることはありません。

プロジェクトでカスタムロールを割り当てる​

グローバルロールまたはプロジェクトロールを作成して構成した後、対象のチームメンバーに割り当てます。

  1. プロジェクトを開き、チーム に移動します。
  2. 対象のメンバーの横にあるロール欄を選択します。
  3. カスタムロールを選択します。1 人のメンバーが複数のロールを持てます。

使用中のロールを削除する​

ロールがまだメンバーに付与されている場合、またはテンプレート権限で使用されている場合は、削除する前に Semaphore が確認を求め、影響を受けるメンバー、プロジェクト、テンプレート権限の数を表示します。Delete with assignments を選択すると、ロールが削除され、すべてから外されます。他のロールを持たないメンバーは、プロジェクトから削除されます。

ロールがグループマッピングで使用されている場合は、ダイアログにグループマッピングの数も表示されます。このようなロールを削除できるのは管理者のみで、そのロールのグループマッピングも一緒に削除されます。

現在サポートされていないこと​

  • テンプレート以外のリソースに対するきめ細かな権限。 現時点で、個別のリソース単位でカスタムロールによる制御ができるのはテンプレートのみです。

グループマッピングによるロール Enterprise​

備考

グループマッピングは Semaphore Enterprise エディションで利用できます。

管理者は Group mappings ページで、アイデンティティプロバイダーにあるグループのメンバー全員にプロジェクトのロールを付与できます。ユーザーがアイデンティティプロバイダー経由でログインするたびに、Semaphore はこれらのロールを更新します。詳しくはグループによるプロジェクトのロールを参照してください。

チーム ページでは、このようなロールに鍵アイコンが表示されます。ロールにマウスを重ねると、プロバイダーとグループが表示されます(例: keycloak: devops)。

  • グループマッピングによるロールは チーム ページでは外せません。グループマッピングを変更できるのは管理者のみです。
  • メンバーを削除しても、手動で付与したロールをすべて外しても、グループマッピングによるロールは残り、メンバーはプロジェクトに残ります。

チームメンバーの管理​

  • 新しいメンバーの招待: オーナー と マネージャー は、新しいユーザーをチームに招待し、最初の組み込みロールを割り当てられます。

  • ロールの変更: オーナーは常に、すべてのチームメンバーのロールを変更できます。マネージャーは タスクランナー と ゲスト のロールを変更できますが、他のマネージャーやオーナーのロールは変更 できません。

  • メンバーの削除: オーナーとマネージャーは、自分より下位のロールのチームメンバーを削除できます。

    • オーナーは、最後のオーナーを除き、誰でも(他のオーナーも含めて)削除できます。
    • マネージャーは タスクランナー と ゲスト を削除できますが、他のマネージャーやオーナーは削除 できません。

ベストプラクティス​

  1. 冗長性を確保する: 継続的なアクセスを確保し、単一障害点を防ぐために、オーナー ロールを少なくとも 2 人に割り当てます。
  2. 最小権限の原則に従う:
    • チームメンバーには、作業に必要な最小限のロールを与えます。
    • 限定された権限のみが必要な人には、タスクランナー または ゲスト のロールを使用します。
    • Enterprise では、メンバーの組み込みロールを昇格させるのではなく、カスタムロールで特定のテンプレートへのアクセスを付与することをおすすめします。
  3. メンバーを定期的に見直す:
    • チームの体制が変わったら、ロールを再評価します。
    • 上位の権限が不要になったユーザーは、アクセスを取り消すかロールを下げます。
  4. 日常的な管理はマネージャーに任せる:
    • オーナーロールは、最終的な権限を持つ少人数のグループに限定します。
    • 日常的なプロジェクト管理の作業はマネージャーに委任し、重大な変更やプロジェクトの削除が誤って行われるリスクを減らします。

よくある質問​

1. オーナーは他のオーナーを削除できますか?​

はい。オーナーは他のオーナーを削除したり、そのロールを変更したりできます。ただし、そのオーナーがプロジェクトの最後のオーナーである場合は除きます。

2. プロジェクトを削除できるのは誰ですか?​

プロジェクトを削除できるのは オーナー のみです。

3. マネージャーは他のマネージャーを追加・削除できますか?​

いいえ。マネージャーが追加・削除できるのは、タスクランナー または ゲスト のロールを持つユーザーのみです。オーナーや他のマネージャーを管理するには、オーナーである必要があります。

4. 誤ってすべてのオーナーを削除してしまった場合はどうなりますか?​

プロジェクトからオーナーがいなくなってはいけません。そのため、管理者以外は、最後のオーナーをプロジェクトから削除することも、オーナーロールを取り上げることもできません。最後のオーナー自身もプロジェクトから退出できません。管理者が最後のオーナーを削除しても、プロジェクトは引き続き動作し、管理者が チーム ページで新しいオーナーを追加できます。

5. ゲストはタスクを実行できますか?​

いいえ。ゲストは読み取り専用のアクセスのみで、タスクの実行や管理はできません。Enterprise エディションでは、カスタムロールを使って個別のテンプレートを実行する権限をゲストに付与できます。

6. カスタムロールは組み込みロールを置き換えますか?​

いいえ。カスタムロールは組み込みロールに追加されるものです。メンバーは、組み込みロール、カスタムロール、またはその両方を持てます。

7. 拡張 RBAC はコミュニティエディションで利用できますか?​

いいえ。拡張 RBAC には Semaphore Enterprise のサブスクリプションが必要です。