権限

ユーザーは、特定のグループまたはプロジェクトで持っているアクセスレベルに応じて異なる能力を持ちます。 ユーザーがプロジェクトのグループとプロジェクト自体の両方にいる場合、最も高い権限レベルが使用されます。

公開プロジェクトや内部プロジェクトでは、Guestロールは強制されません。 すべてのユーザーができます:

  • イシューを作成します。
  • コメントをどうぞ。
  • プロジェクトコードをクローンするかダウンロードしてください。

メンバーがプロジェクトを離れると、割り当てられていたイシューとマージリクエストはすべて自動的に割り当て解除されます。

GitLab管理者はすべての権限を受け取ります。

ユーザーを追加またはインポートするには、プロジェクトメンバーのドキュメントに従ってください。

権限の背後にある原則

権限については製品ハンドブックをご覧ください。

インスタンス全体のユーザー権限

デフォルトでは、ユーザーはトップレベルのグループを作成し、ユーザー名を変更することができます。 GitLab管理者は、GitLabインスタンスを設定してこの動作を変更することができます。

プロジェクトメンバーの権限

Note:GitLab 11.0では、マスターロールはメンテナーに改名されました。

メンテナーはプロジェクトレベルの最上位ロールですが、一部のアクションは個人のネームスペースやグループのオーナー、またはインスタンス管理者のみが実行できます。 詳細については、プロジェクト・メンバーのドキュメントを参照してください。

以下の表は、プロジェクトにおけるさまざまなユーザー権限レベルを表しています。

アクション ゲスト レポーター 開発者 メンテナー オーナー
ダウンロードプロジェクト (1)
コメントを残す (1)
許可されたライセンスと拒否されたライセンスの表示 (1)
ライセンス・コンプライアンス・レポートの表示 (1)
セキュリティレポートの表示 (3)
依存関係リストの表示 (1)
ライセンス一覧を見る (1)
依存関係リストでライセンスを表示 (1)
デザインマネジメントのページを見る
プロジェクトコードを見る (1)
プロジェクトコードのプル (1)
アクセスコントロールで保護されたGitLab Pagesの表示
Wikiページを見る
ジョブ一覧を見る (3)
ジョブログを見る (3)
アーティファクトのダウンロードと閲覧 (3)
新しいイシューの作成 (1)
関連イシューを見る
機密イシューの作成 (1)
機密イシューを見る (2)
リリースを見る (6)
条件を見る
ユーザーによるメトリクス・ダッシュボードの管理(7)
イシューの割り当て  
ラベルのイシュー  
イシュー設定重量  
イシューのスレッドをロック  
イシュー・トラッカーの管理  
関連イシューの管理  
ラベルの管理  
コードスニペットの作成  
コミット状況を見る  
コンテナレジストリを見る  
環境を見る  
マージリクエスト一覧を見る  
プロジェクトの統計を見る    
エラー追跡リストの表示  
新規マージリクエストの作成  
メトリクス・ダッシュボードの注釈の表示  
要件の作成/編集  
プルパッケージ  
パッケージの公開    
デザイン管理ファイルのアップロード    
リリースの作成/編集/削除    
新しいブランチの作成    
非保護ブランチへのプッシュ    
保護されていないブランチへの強制プッシュ    
保護されていないブランチの除去    
マージリクエストの割り当て    
ラベルマージリクエスト    
マージリクエストスレッドのロック    
マージリクエストの承認者(9)    
マージリクエストの管理/受付    
新しい環境づくり    
環境停止    
レビューアプリの有効化    
タグの追加    
ジョブのキャンセルと再試行    
コミットステータスの作成または更新     (5)
コンテナレジストリの更新    
コンテナレジストリイメージの削除    
プロジェクトのマイルストーンの作成/編集/削除    
セキュリティダッシュボードの使用    
脆弱性の発見を依存関係リストで表示    
脆弱性発見からのイシュー作成    
脆弱性発見の却下    
脆弱性の表示    
脆弱性の発見から脆弱性の作成    
脆弱性の解消    
脆弱性の解消    
コード変更の提案を適用    
Wikiページの作成と編集    
Gitタグの書き換え/削除    
機能フラグの管理    
メトリクス・ダッシュボードのアノテーションの作成/編集/削除    
保護ブランチに対する CI/CD パイプラインの実行     (5)
環境端末の使用      
Web IDE の対話型 Web ターミナルの実行      
新しいチームメンバーの追加      
ブランチプロテクションの有効化/無効化      
保護ブランチへのプッシュ      
開発者用の保護ブランチプッシュのオン/オフ      
タグ保護の有効化/無効化      
プロジェクトの編集      
プロジェクトバッジの編集      
グループでのプロジェクト共有(招待       (8) (8)
プロジェクトにデプロイキーを追加      
プロジェクトフックの設定      
ランナーの管理      
ジョブトリガーの管理      
CI/CD変数の管理      
GitLabページの管理      
GitLab Pagesドメインと証明書の管理      
GitLabページの削除      
クラスターの管理      
プロジェクトオペレーションの管理      
ポッドのログを見る      
ライセンスポリシーの管理      
コメントの編集(どのユーザーでも投稿可能)      
エラートラッキングの管理      
Wikiページの削除      
プロジェクト監査イベントの表示      
プッシュルールの管理      
プロジェクトアクセストークンの管理      
スイッチの視認性レベル        
プロジェクトを別の名前空間に移動        
プロジェクト名の変更        
フォーク関係の削除        
プロジェクトの削除        
アーカイブプロジェクト        
イシューの削除        
パイプラインの削除        
マージリクエストの削除        
通知メールの無効化        
保護ブランチへの強制プッシュ(4)          
保護されたブランチの除去(4)          
CI/CDのアナリティクスを見る  
コードレビューアナリティクスを見る  
インサイトを見る
イシュー分析を見る
リポジトリ分析を見る  
バリューストリーム分析

* オーナー権限は、グループまたは個人のネームスペース・レベル(およびインスタンス管理者)で のみ使用でき、そのプロジェクトに継承されます。

  1. ゲストユーザーは、公開プロジェクトと内部プロジェクトでこのアクションを実行できますが、非公開プロジェクトでは実行できません。
  2. ゲスト・ユーザーは、ゲスト自身が作成した機密イシューのみを閲覧することができます。
  3. プロジェクト設定 >CI/CDで公開パイプラインが有効になっている場合。
  4. ゲスト、レポーター、開発者、メンテナー、オーナーには使用できません。保護ブランチを参照してください。
  5. ブランチが保護されている場合、これは開発者とメンテナーに与えられているアクセス権に依存します。
  6. ゲストユーザーがGitLabにアクセスできます リリースにアクセスしてアセットをダウンロードできますが、ソースコードをダウンロードしたりタグやコミットなどのリポジトリ情報を見ることはできません。
  7. アクションは、ユーザーが所有(参照)するレコードにのみ制限されます。
  8. 共有グループロックが有効な場合、プロジェクトは他のグループと共有できません。 グループ共有のグループには影響しません。
  9. マージリクエストの承認者については、承認者を参照してください。

プロジェクト機能権限

Wikiとイシュー

Wikiやイシューのようなプロジェクト機能は、プロジェクト設定で選択した可視レベルに応じて、ユーザーから隠すことができます。

  • 障がい者:誰もが障がい者
  • チームメンバーのみ:プロジェクトが公開であっても内部であっても、チームメンバーだけが見ることができます。
  • 誰でもアクセス可能:プロジェクトの可視性レベルに応じて、誰でも見ることができます。
  • Everyone:誰でも有効(GitLab Pagesでのみ有効)

保護ブランチ

保護ブランチでは、ブランチ単位で追加の制限をかけることができます。 さらに、権限をカスタマイズして、プロジェクトのメンテナーや開発者が保護ブランチにプッシュすることを許可したり禁止したりすることもできます。Allowed to Merge や Allowed to Push の設定についてのドキュメントを読むと、さらに詳しく知ることができます。

バリューストリーム分析権限

関連ドキュメントに記載されているように、Value Stream Analyticsダッシュボードで現在の権限を確認します。

イシューボード権限

より高い権限を持つ開発者やユーザーは、リストの作成や削除、イシューのドラッグなど、イシューボードのすべての機能を使用できます。 詳しくは、イシューボードの権限に関するドキュメントをご覧ください。

ファイルのロック権限

ファイルやディレクトリをロックしたユーザーは、ロックされたオブジェクトがあるリポジトリだけを編集し、その変更をプッシュバックすることができます。

詳しくは、ファイルロックの権限に関するドキュメントをお読みください。

機密イシュー権限

機密issueにはレポーターやそれ以上の権限レベルのユーザ、および機密issueを作成したゲスト・ユーザがアクセスできます。 詳細については、権限と機密issueへのアクセスに関する文書をお読みください。

グループメンバーの権限

Note:GitLab 11.0では、マスターロールはメンテナーに改名されました。

グループの最後のオーナーでない限り、どのユーザーでもグループから自分を削除することができます。 次の表は、グループ内のさまざまなユーザー権限レベルを示しています。

アクション ゲスト レポーター 開発者 メンテナー オーナー
グループを見る
インサイトチャートを見る
グループのエピックを見る
グループエピックの作成/編集  
グループラベルの管理  
コンテナレジストリを見る  
プルパッケージ  
パッケージの公開    
メトリクス・ダッシュボードの注釈の表示  
グループでプロジェクト作成     ✓ (3) ✓ (3) ✓ (3)
グループとグループの共有(招待        
グループのマイルストーンの作成/編集/削除    
イテレーションの作成/編集/削除    
依存プロキシの有効化/無効化    
セキュリティダッシュボードの使用    
メトリクス・ダッシュボードのアノテーションの作成/編集/削除    
グループレベルのKubernetesクラスターの表示/管理      
サブグループの作成       ✓ (1)
エピックコメントの編集(どのユーザーでも投稿可能)       ✓ (2) ✓ (2)
グループ設定の編集        
グループレベルのCI/CD変数の管理        
グループデプロイトークン一覧      
グループデプロイトークンの作成/削除        
グループメンバーの管理        
グループ削除        
グループエピック削除        
SAML SSO 請求の編集 ✓ (4)
グループ監査イベントの表示        
通知メールの無効化        
貢献者分析を見る
インサイトを見る
イシュー分析を見る
生産性分析を見る  
バリューストリーム分析
請求書を見る         ✓ (4)
利用枠を見る         ✓ (4)
  1. グループは、オーナーまたはオーナーとメンテナーがサブグループを作成できるように設定できます。
  2. GitLab 12.2 で導入されました。
  3. デフォルトのプロジェクト作成ロールは以下で変更できます:
  4. サブグループには適用されません。

サブグループの権限

サブグループにメンバーを追加すると、そのメンバーは親グループのメンバシップと権限レベルを継承します。 このモデルでは、親グループのいずれかのメンバシップを持っていれば、ネストしたグループへのアクセスが可能です。

詳しくは、サブグループのメンバーシップに関する文書をお読みください。

外部ユーザー

内部プロジェクトや非公開プロジェクトにのみアクセスしたい場合、外部ユーザーを作成すること ができます。 この機能は、例えば、請負業者があるプロジェクトで作業しており、そのプロジェクトにのみアクセ スしたい場合に便利です。

外部ユーザー

  • グループ、プロジェクト、個人スニペットは作成できません。
  • 公開プロジェクトや明示的にアクセス権が与えられているプロジェクトにしかアクセスできないため、他の内部プロジェクトや非公開プロジェクトにはアクセスできません(ログアウトされたような状態)。

ユーザーをプロジェクトもしくはグループのメンバーとして追加することで、アクセスを許可することができます。 通常のユーザーと同じように、プロジェクトもしくはグループにおいて、上記の権限表に記載されているすべての権限を持つロールが与えられます。 たとえば、外部ユーザーがゲストとして追加され、プロジェクトが非公開の場合、そのユーザーはコードにアクセスすることができません。 もし外部ユーザーにコードにアクセスさせたいのであれば、レポーターレベルもしくはそれ以上のアクセス権限を与える必要があります。 ユーザーの権限レベルだけでなく、プロジェクトの可視性と権限の設定も常に考慮する必要があります。

注:外部ユーザーもライセンスシートにカウントされます。

管理者は、以下のいずれかの方法でユーザーを外部フラグにすることができます:

  • APIを通してでも
  • または、管理エリア > 概要 > ユーザーの順に移動して、新規ユーザーを作成または既存ユーザーを編集します。 そこで、ユーザーを外部としてフラグを立てるオプションが表示されます。

新規ユーザーの外部設定

デフォルトでは、新規ユーザーは外部ユーザーとして設定されません。 この動作は、管理者が管理エリア > 設定 > 一般ページの「アカウントと制限」で変更できます。

新規ユーザを外部ユーザとして作成するデフォルトの動作を変更する場合、内部ユーザのセットを定義することによって、ユーザを絞り込むオプションがあります。内部ユーザフィールドでは、デフォルトの内部ユーザを識別するために、メールアドレスの正規表現パターンを指定することができます。 メールアドレスが正規表現パターンに一致する新規ユーザは、外部コラボレータではなく、デフォルトで内部ユーザに設定されます。

正規表現のパターン形式はRubyですが、JavaScriptに変換する必要があり、大文字小文字を無視するフラグが設定されます(/regex pattern/i)。以下に例を示します:

  • .internal@domain.com で終わるメールアドレスを内部アドレスとしてマークするには、\.internal@domain\.com$ を使用します。
  • .ext@domain.com を含まないメールアドレスを持つユーザーを内部としてマークするには、^(?:(?!\.ext@domain\.com).)*$\r? を使用します。
警告:この正規表現はサービス拒否(ReDoS)攻撃につながる可能性があることに注意してください。

無料ゲストユーザー

プロジェクト、グループ、またはその両方に対して Guest 権限が与えられていて、GitLab インスタンス上の他のプロジェクトやグループに対してそれ以上の権限レベルを保持していない場合、そのユーザーは GitLab によってゲストユーザーとみなされ、ライセンスシートは消費されません。 新規に作成されたユーザーには、それ以外の “guest” 指定はありません。

ユーザーがプロジェクトやグループで上位のロールを割り当てられた場合、そのユーザーはライセンスシートを使用することになります。 ユーザーがプロジェクトを作成した場合、そのユーザーはプロジェクトのメンテナーとなり、ライセンスシートを使用することになります。 また、プロジェクトが内部または非公開の場合、ゲストユーザーは上記の権限表に記載されているすべての権限を持つことに注意してください(例えば、プロジェクトのリポジトリを閲覧することはできません)。

ヒント:ゲストユーザーがプロジェクトを作成できないようにするには、管理者として、ユーザーのプロフィールを編集して、そのユーザーを外部ユーザーとしてマークしてください。 ただし、外部ユーザーであっても、そのユーザーがすでにプロジェクトやグループでレポーター以上の権限を持っている場合は、自由なゲストユーザーとしてカウントされないので注意してください。

監査役ユーザー

GitLab Premium8.17で導入されました

監査人ユーザーには、GitLabインスタンス上のすべてのプロジェクト、グループ、その他のリソースへの読み取り専用アクセスが与えられます。

監査役ユーザーは、監査役ユーザーの権限に関するドキュメントに記載されている権限で、GitLabインスタンスのすべてのプロジェクトとグループにアクセスできる必要があります。

監査役ユーザーについてもっと読む

プロジェクトの特徴

Wikiやイシューのようなプロジェクト機能は、プロジェクト設定で選択した可視レベルに応じて、ユーザーから隠すことができます。

  • 障がい者:誰もが障がい者
  • チームメンバーのみ:プロジェクトが公開であっても内部であっても、チームメンバーだけが見ることができます。
  • 誰でもアクセス可能:プロジェクトの可視性レベルに応じて、誰でも見ることができます。
  • Everyone:誰でも有効(GitLab Pagesでのみ有効)

GitLab CI/CD権限

Note:GitLab 11.0では、マスターロールはメンテナーに改名されました。

GitLab CI/CDの権限は、ユーザーがGitLabで持っているロールに依存します。 全部で4つの権限レベルがあります:

  • アドミン
  • メンテナー
  • 開発者
  • ゲスト/レポーター

adminユーザはGitLabインスタンスとプロジェクトのスコープでGitLab CI/CDのあらゆるアクションを実行することができます。 さらに、すべてのadminは/admin/runnersの下でadminインターフェイスを使用することができます。

アクション ゲスト、レポーター 開発者 メンテナー 管理者
コミットとジョブを見る
ジョブの再試行またはキャンセル  
ジョブのアーティファクトとトレースの消去   (1)
プロジェクトの削除    
プロジェクトの作成    
プロジェクト構成の変更    
特定のランナーを追加    
共有ランナーの追加      
システム内のイベントを見る      
管理者インターフェース      
  1. ジョブがそうであればね:
    • ユーザーによるトリガー
    • GitLab13.0以降、保護されたブランチでは実行されません。

ジョブ権限

Note:GitLab 11.0では、マスターロールはメンテナーに改名されました。

注:GitLab 8.12では、ジョブの権限システムが完全に再設計されました。新しいモデルとその影響については、こちらをご覧ください。

この表は、特定のタイプのユーザによってトリガされたジョブに付与された権限を示しています:

アクション ゲスト、レポーター 開発者 メンテナー 管理者
CIジョブの実行  
現在のプロジェクトからソースとLFSをクローンします。  
公開プロジェクトからのクローンソースとLFS  
内部プロジェクトからのクローンソースとLFS   (1) ✓ (1)
非公開プロジェクトのクローンソースとLFS   (2) ✓ (2) (2)
現在のプロジェクトからコンテナイメージを取り出します。  
公開プロジェクトからのコンテナイメージの取得  
内部プロジェクトからのコンテナイメージのプル   (1) ✓ (1)
非公開プロジェクトからのコンテナイメージのプル   (2) ✓ (2) (2)
コンテナイメージを現在のプロジェクトにプッシュ  
コンテナイメージを他のプロジェクトにプッシュ        
プッシュソースとLFS        
  1. ユーザーが外部でない場合のみ
  2. ユーザーがプロジェクトのメンバーである場合のみ

新しいCIジョブ権限モデル

GitLab 8.12では、ジョブの権限システムが完全に再設計されました。 詳しくは、新しいCI/CD権限モデルに関するドキュメントをお読みください。

保護ブランチでのパイプラインの実行

保護されたブランチへのマージまたはプッシュの権限は、ユーザーがCI/CDパイプラインを実行し、それらのブランチに関連するジョブのアクションを実行できるかどうかを定義するために使用されます。

パイプラインのセキュリティモデルの詳細については、保護されたブランチのセキュリティを参照してください。

LDAPユーザー権限

GitLab 8.15以降、LDAPユーザーの権限を管理者ユーザーが手動で上書きできるようになりました。 詳しくはLDAPユーザーの権限に関するドキュメントをお読みください。

プロジェクトのエイリアス

プロジェクトエイリアスはGitLab管理者のみが読み込んだり、作成したり、削除したりすることができます。プロジェクトエイリアスのドキュメントを読んで、詳細を学びましょう。