あらかじめ定義されたユーザーロールシステム
インスタンス
ユーザータイプ
各ユーザーは以下のタイプのいずれかになります:
- レギュラー。
- 社外 - 直接メンバーである場合のみ、グループやプロジェクトにアクセスできます。
- 内部ユーザー- システムが作成。
-
監査役
- プロジェクトやグループの設定メニューにアクセスできません。
- 管理エリアにアクセスできません。
- その他は読み取り専用です。
- 管理者- 読み書きアクセス権。
各ユーザータイプの使用方法の詳細については、権限のページを参照してください。
グループとプロジェクト
一般権限
グループとプロジェクトは、以下の可視性レベルを持つことができます:
- public (
20
) - エンティティは誰でも見ることができます。 - 内部 (
10
) - 認証されたユーザーにのみ公開されます。 - 非公開 (
0
) - エンティティの承認者のみが閲覧可能。
デフォルトでは、サブグループにそれ以上の可視レベルを持たせることはできません。例えば、非公開グループを新規作成した場合、そのグループに公開サブグループを含めることはできません。
グループの可視性レベルは、すべてのサブグループおよびサブプロジェクトの可視性レベルが同じかそれ以下の場合にのみ変更できます。たとえば、グループを内部に設定できるのは、すべてのサブグループとプロジェクトが内部または非公開の場合のみです。
可視性レベルは、Gitlab::VisibilityLevel
モジュールで確認できます。
機能固有の権限
さらに、以下のプロジェクト機能は、異なる可視性レベルを持つことができます:
- イシュー
- リポジトリ
- マージリクエスト
- フォーク
- パイプライン
- 分析
- 要件
- セキュリティとコンプライアンス
- Wiki
- スニペット
- Pages
- オペレーション
- メトリクス・ダッシュボード
これらの機能は、「誰でもアクセス可能」または「プロジェクトメンバーのみアクセス可能」に設定できます。非公開プロジェクトはデフォルトでプロジェクトメンバーしかアクセスできないため、公開プロジェクトや内部プロジェクトでのみ意味があります。
メンバー
ユーザーは複数のグループやプロジェクトのメンバーになることができます。以下のアクセスレベルが利用できます(Gitlab::Access
モジュールで定義):
- アクセス不可 (
0
) -
最低限のアクセス(
5
) - ゲスト (
10
) - レポーター (
20
) - 開発者 (
30
) - メンテナー (
40
) - オーナー (
50
)
ユーザーがプロジェクトとプロジェクトの親グループの両方のメンバーである場合、最も高い権限がプロジェクトに適用されるアクセスレベルとなります。
ユーザーがプロジェクトのメンバーであり、親グループのメンバーではない場合でも、グループとそのエンティティ(エピックなど)を表示することができます。
プロジェクト・メンバーシップ(グループ・メンバーシップがすでに考慮されている)は、project_authorizations
テーブルに保存されます。
機密の課題
機密イシューには、レポーター以上のプロジェクトメンバーのみがアクセスできます(ゲストはアクセスできません)。また、作成者と担当者もアクセスできます。
ライセンス機能
一部の機能は、ユーザーが正しいライセンスプランを持っている場合にのみアクセスできます。
権限の依存関係
フィーチャー・ポリシーは非常に複雑で、複数のルールで構成されることがあります。多くの場合、ある権限が別の権限に基づいていることがあります。
良い権限を設計するということは、既存の権限を可能な限り再利用し、機能へのアクセスを細かくするということです。
複雑なリソースの場合、情報の小さな断片に分割し、それぞれの断片に異なる権限を与えるべきです。
この場合の好例は、マージリクエストウィジェットと セキュリティレポート_です。_パイプラインの_表示レベルに応じて、_セキュリティ レポートは_ウィジェットに表示されたりされなかったりします。つまり、_マージリクエストウィジェット、パイプライン、および_セキュリティレポート_には、それぞれ別の権限があります。さらに、マージリクエストウィジェットと _パイプラインの_権限は、_セキュリティ_レポートの依存関係にあります。
セキュリティ機能の権限依存関係
セキュア機能はマージリクエストやCIフローのような異なる機能にインテグレーションされているため、複雑な権限を持ちます。
以下は権限の依存関係のリストです。
アクティビティレベル | リソース | 所在地 | 権限依存 |
---|---|---|---|
閲覧 | ライセンス情報 | 依存関係リスト、ライセンスコンプライアンス | リポジトリの閲覧 |
閲覧 | 依存情報 | 依存関係リスト、ライセンスコンプライアンス | リポジトリの閲覧 |
閲覧 | 脆弱性情報 | 依存関係リスト | セキュリティ所見の閲覧 |
閲覧 | プロジェクトのブラックリスト/ホワイトリストライセンス | ライセンスコンプライアンス、マージリクエスト | リポジトリの閲覧 |
閲覧 | セキュリティ | マージリクエスト、CIジョブページ、パイプラインセキュリティタブ | プロジェクトと CI ジョブを読むことができます。 |
閲覧 | 脆弱性フィードバック | マージリクエスト | セキュリティ調査結果を読むことができます。 |
閲覧 | 依存関係一覧ページ | プロジェクト | 依存関係情報にアクセス可能 |
閲覧 | ライセンスコンプライアンスのページ | プロジェクト | ライセンス情報へのアクセスが可能 |