アクセスと可視性のコントロール

GitLab では、管理者権限を持つユーザーがブランチ、プロジェクト、スニペット、グループなどに特定のコントロールを適用することができます。

可視性とアクセスコントロールのオプションにアクセスするには:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。

プロジェクトを作成できるロールを定義します。

プロジェクト作成に関するインスタンスレベルの保護では、インスタンス上のグループにプロジェクトを追加できるロールを定義します。プロジェクトを作成する権限を持つロールを変更します:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. デフォルトのプロジェクト作成の保護では、必要なロールを選択します:
    • 誰もいません。
    • メンテナー。
    • 開発者とメンテナー。
  7. 変更を保存を選択します。

プロジェクトの削除を管理者に制限します。

GitLab 15.1でユーザーインターフェイスが変更されました。

デフォルトでは、管理者とオーナーロールを持つ人は誰でもプロジェクトを削除することができます。プロジェクトの削除を管理者のみに制限するには:

  1. GitLab に管理者権限を持つユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. までスクロールします:
    • (GitLab 15.1 以降)Allowed to delete projects]までスクロールし、[Administrators]を選択します。
    • (GitLab15.0以前)デフォルトのプロジェクト削除保護と管理者だけがプロジェクトを削除できるを選択。
  7. 変更を保存を選択します。

削除の保護

誤ってグループやプロジェクトを削除しないようにインスタンスレベルで保護。

保存期間

GitLab 15.1で変更されました

グループとプロジェクトは定義された保存期間内であれば復元可能です。デフォルトでは7日間ですが、変更することができます。保持期間を0 に設定すると、グループとプロジェクトは即座に削除され、復元できなくなります。

GitLab 15.1以降では、保持期間は1 から90の間でなければなりません。15.1アップデート前に保持期間が0 であった場合、自動的に1 に変更され、次にアプリケーションの設定が変更されると削除保護も無効になります。

プロジェクト削除の遅延

プロジェクトの遅延削除を設定するには:

  1. GitLab に管理者権限を持つユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. までスクロールします:
    • (always_perform_delayed_deletion 機能フラグが有効なGitLab 15.11以降、またはGitLab 16.0以降で)削除保護にスクロールし、保持期間を1 から90 の間の値に設定します。
    • (GitLab15.1以降)Deletion protectionとkeep deleted groups and projectsを選択し、保存期間を選択します。
    • (GitLab 15.0以前)デフォルトの遅延プロジェクト保護で、新しく作成されたグループに対してデフォルトで遅延プロジェクト削除を有効にするを選択します。そして、Default deletion delayで保存期間を設定します。
  7. 変更を保存を選択します。

削除防止機能は、プロジェクトのみ(グループでも有効でない場合)には使用できません。

GitLab 15.1以降では、この設定はグループに対して無効化され、上書きすることはできません。

グループ削除の遅延

保持期間が1 日以上の場合、グループは復元可能なままです。

GitLab 15.1以降では、Deletion projectionを Keep deletedに設定することで、グループの削除を遅らせることができます。GitLab15.11以降でalways_perform_delayed_deletion 機能フラグを有効にした場合、またはGitLab16.0以降で:

  • 削除保持オプションは削除されました。
  • グループ削除の遅延はデフォルトです。

デフォルトを上書きして直ちに削除

また、削除マークが付いたプロジェクトをすぐに削除することもできます。そのためには

  1. プロジェクトを復元します。
  2. プロジェクトの管理ページで説明されているように、プロジェクトを削除します。

プロジェクトの可視性のデフォルト設定

新規プロジェクトのデフォルトの可視レベルを設定します:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. プロジェクトのデフォルトの可視性を選択します:
    • 非公開- プロジェクトへのアクセスは、各ユーザーに明示的に許可する必要があります。このプロジェクトがグループの一部である場合、アクセスはグループのメンバーに許可されます。
    • 内部- プロジェクトは、外部ユーザーを除く、認証されたすべてのユーザーがアクセスできます。
    • 公開- 認証なしでプロジェクトにアクセスできます。
  7. 変更を保存を選択します。

スニペット表示のデフォルト設定

新しいスニペットのデフォルトの表示レベルを設定します:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. デフォルトのスニペットの可視性を選択します。
  7. 変更を保存を選択します。

スニペットの可視性の詳細については、プロジェクトの可視性をお読みください。

グループの可視性のデフォルト設定

新しいグループのデフォルトの可視レベルを設定します:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. 必要なデフォルトのグループの可視性を選択します:
    • 非公開- グループとそのプロジェクトはメンバーだけが閲覧できます。
    • 内部- グループと内部プロジェクトは、外部ユーザー以外の認証済みユーザーも閲覧できます。
    • 公開- グループと公開プロジェクトは、認証なしで閲覧できます。
  7. 変更を保存を選択します。

グループの可視性の詳細については、グループの可視性を参照してください。

可視レベルの制限

可視性のレベルを制限する場合は、変更する項目から可視性を継承するサブグループおよびプロジェクトの権限との相互作用を考慮してください。

グループ、プロジェクト、スニペット、および選択したページの可視レベルを制限するには、以下の手順に従います:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. 制限された可視性レベル] セクションで、制限する可視性レベルを選択します。
    • 公開レベルを制限する場合:
      • 管理者のみが公開グループ、プロジェクト、スニペットを作成できます。
      • ユーザープロファイルは、Webインターフェイスを通じて認証されたユーザーにのみ表示されます。
      • GraphQL API によるユーザー属性は以下のとおりです:
    • 内部レベルを制限した場合:
      • 管理者のみが内部グループ、プロジェクト、スニペットを作成できます。
    • 非公開レベルを制限した場合:
      • 管理者のみが非公開グループ、プロジェクト、スニペットを作成できます。
  7. 変更を保存を選択します。

プロジェクトの可視性の詳細については、プロジェクトの可視性を参照してください。

許可されるインポートソースの設定

他のシステムからプロジェクトをインポートする前に、そのシステムのインポートソースを有効にする必要があります。

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. 許可するインポートソースをそれぞれ選択します。
  7. 変更を保存を選択します。

プロジェクトのエクスポートを有効にします。

プロジェクトとそのデータのエクスポートを有効にします:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. プロジェクトのエクスポートまでスクロールします。
  7. Enabledチェックボックスを選択します。
  8. 変更を保存を選択します。

直接転送によるグループとプロジェクトのマイグレーションを有効にします。

GitLab 15.8で導入されました

UIを使って直接転送によるグループのマイグレーションを有効にすることができます。

直接転送によるグループのマイグレーションを有効にするには、以下の手順に従います:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. Allow migrating GitLab groups and projects by direct transferまでスクロールします。
  7. Enabledチェックボックスを選択します。
  8. 変更を保存を選択します。

APIでは、bulk_import_enabled 属性と同じ設定が利用できます。

有効な Git アクセスプロトコルの設定

GitLabのアクセス制限では、ユーザーがGitLabとの通信に使用できるプロトコルを選択できます。アクセスプロトコルを無効にしても、サーバー自体へのポートアクセスはブロックされません。プロトコル、SSHまたはHTTP(S) に使用されるポートは、まだアクセス可能です。GitLabの制限はアプリケーションレベルで適用されます。

有効なGitアクセス・プロトコルを指定するには:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. 必要な Git アクセス・プロトコルを選択します:
    • SSHとHTTPの両方(S)
    • SSHのみ
    • HTTPのみ(S)
  7. 変更を保存を選択します。

SSH と HTTP(S) の両方が有効な場合、ユーザーはどちらかのプロトコルを選択できます。一方のプロトコルのみが有効な場合

  • プロジェクトページには許可されたプロトコルのURLのみが表示され、変更するオプションはありません。
  • GitLabでは、ユーザーアクション(SSHキーの追加やパスワードの設定など)が必要な場合、URLのプロトコルにカーソルを合わせるとツールチップが表示されます:

    Project URL with SSH only access

GitLabは選択したプロトコルに対してのみGitアクションを許可します。

caution
GitLabバージョン10.7以降では、GitLab RunnerがCI/CDジョブから行うGitクローンやフェッチリクエストに対して、SSHのみを選択した場合でもHTTP(S) プロトコルを許可します。

Git clone URLをHTTP用にカスタマイズ(S)

GitLab 12.4で導入されました

HTTP(S) 用にプロジェクトの Git clone URL をカスタマイズすることができます:

例えば

  • GitLab インスタンスがhttps://example.com にある場合、プロジェクトのクローン URL はhttps://example.com/foo/bar.git のようになります。
  • クローン URL をhttps://git.example.com/gitlab/foo/bar.git のようにしたい場合は、この設定をhttps://git.example.com/gitlab/ にします。

Custom Git clone URL for HTTP

カスタム Git クローン URL を HTTP で指定するには(S) :

  1. HTTP 用のカスタムGit クローン URL(S)のルート URL を入力します。
  2. 変更を保存を選択します。
note
SSH クローン URL は、gitlab_rails['gitlab_ssh_host'] およびその他の関連設定を設定することでgitlab.rb でカスタマイズできます。

RSA、DSA、ECDSA、ED25519、ECDSA_SK、ED25519_SK SSHキーのデフォルト設定

これらのオプションは、SSH キーに許可されるタイプと長さを指定します。

鍵の種類ごとに制限を指定するには

  1. ドロップダウンリストから必要なオプションを選択します。
  2. 変更を保存を選択します。

詳細については、SSHキーの制限を参照してください。

プロジェクトミラーリングの有効化

このオプションはデフォルトで有効になっています。無効にすると、プルミラーリングと プッシュミラーリングの両方がすべてのリポジトリで動作しなくなります。プロジェクト単位で管理ユーザーによってのみ再有効化できます。

Mirror settings

グローバルに許可する IP アドレス範囲の設定

管理者はIPアドレスの範囲をグループレベルのIP制限と組み合わせて設定することができます。グループレベルのIPアドレス制限が設定されている場合でも、GitLabインストールの側面を動作させるために、グローバルに許可されたIPアドレスを使用します。

例えば、GitLab Pagesデーモンがその10.0.0.0/24 範囲で 10.0.0.0/24動作する場合10.0.0.0/24 、その範囲をglobal-allowedとして指定 10.0.0.0/24することができます。これは、10.0.0.0/24 グループレベルのIPアドレス制限にその範囲が含まれていなくても、GitLab Pagesがパイプラインからアーティファクトをフェッチできることを意味 10.0.0.0/24します。

IPアドレスの範囲をグループレベルの許可リストに追加するには:

  1. GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
  2. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  3. Admin Areaを選択します。
  4. 設定] > [全般]を選択します。
  5. 表示とアクセス制御」セクションを展開します。
  6. グローバルに許可するIP範囲]に、IPアドレス範囲のリストを入力します。このリストには
    • IP アドレス範囲の数に制限はありません。
    • 1GBのサイズ制限があります。
    • SSH または HTTP の両方の作成者に適用されます。作成者のタイプによってこのリストを分割することはできません。
  7. 変更を保存を選択します。