- プロジェクトを作成できるロールを定義します。
- プロジェクトの削除を管理者に制限します。
- 削除の保護
- プロジェクトの可視性のデフォルト設定
- スニペット表示のデフォルト設定
- グループの可視性のデフォルト設定
- 可視レベルの制限
- 許可されるインポートソースの設定
- プロジェクトのエクスポートを有効にします。
- 直接転送によるグループとプロジェクトのマイグレーションを有効にします。
- 有効な Git アクセスプロトコルの設定
- Git clone URLをHTTP用にカスタマイズ(S)
- RSA、DSA、ECDSA、ED25519、ECDSA_SK、ED25519_SK SSHキーのデフォルト設定
- プロジェクトミラーリングの有効化
- グローバルに許可する IP アドレス範囲の設定
アクセスと可視性のコントロール
GitLab では、管理者権限を持つユーザーがブランチ、プロジェクト、スニペット、グループなどに特定のコントロールを適用することができます。
可視性とアクセスコントロールのオプションにアクセスするには:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
プロジェクトを作成できるロールを定義します。
プロジェクト作成に関するインスタンスレベルの保護では、インスタンス上のグループにプロジェクトを追加できるロールを定義します。プロジェクトを作成する権限を持つロールを変更します:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
-
デフォルトのプロジェクト作成の保護では、必要なロールを選択します:
- 誰もいません。
- メンテナー。
- 開発者とメンテナー。
- 変更を保存を選択します。
プロジェクトの削除を管理者に制限します。
GitLab 15.1でユーザーインターフェイスが変更されました。
デフォルトでは、管理者とオーナーロールを持つ人は誰でもプロジェクトを削除することができます。プロジェクトの削除を管理者のみに制限するには:
- GitLab に管理者権限を持つユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- までスクロールします:
- (GitLab 15.1 以降)Allowed to delete projects]までスクロールし、[Administrators]を選択します。
- (GitLab15.0以前)デフォルトのプロジェクト削除保護と、管理者だけがプロジェクトを削除できるを選択。
- 変更を保存を選択します。
削除の保護
- 2021年8月12日以降に作成されたグループにGitLab 14.2から導入されました。
- GitLab 15.1のデフォルトの遅延プロジェクト削除から名称変更。
- GitLab 15.1で個人ネームスペースのプロジェクトで有効になりました。
- GitLab 15.3の個人ネームスペースのプロジェクトでは無効。
- GitLab 15.11で、
always_perform_delayed_deletion
というフラグで即座に削除するオプションを削除。デフォルトでは無効。- デフォルトで遅延削除を有効にし、GitLab16.0でGitLab.comとセルフマネージドで即座に削除するオプションを削除。
誤ってグループやプロジェクトを削除しないようにインスタンスレベルで保護。
保存期間
GitLab 15.1で変更されました。
グループとプロジェクトは定義された保存期間内であれば復元可能です。デフォルトでは7日間ですが、変更することができます。保持期間を0
に設定すると、グループとプロジェクトは即座に削除され、復元できなくなります。
GitLab 15.1以降では、保持期間は1
から90
の間でなければなりません。15.1アップデート前に保持期間が0
であった場合、自動的に1
に変更され、次にアプリケーションの設定が変更されると削除保護も無効になります。
プロジェクト削除の遅延
- GitLab 15.1でユーザーインターフェイスが変更されました。
- デフォルトで遅延削除を有効にし、GitLab16.0でGitLab.comとセルフマネージドで即座に削除するオプションを削除。
プロジェクトの遅延削除を設定するには:
- GitLab に管理者権限を持つユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- までスクロールします:
- (
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で保存期間を設定します。
- (
- 変更を保存を選択します。
削除防止機能は、プロジェクトのみ(グループでも有効でない場合)には使用できません。
GitLab 15.1以降では、この設定はグループに対して無効化され、上書きすることはできません。
グループ削除の遅延
- GitLab 15.1で導入されたユーザーインターフェース。
- GitLab 16.0のPremiumとUltimateティアのデフォルトの動作に変更。
保持期間が1
日以上の場合、グループは復元可能なままです。
GitLab 15.1以降では、Deletion projectionを Keep deletedに設定することで、グループの削除を遅らせることができます。GitLab15.11以降でalways_perform_delayed_deletion
機能フラグを有効にした場合、またはGitLab16.0以降で:
- 削除保持オプションは削除されました。
- グループ削除の遅延はデフォルトです。
デフォルトを上書きして直ちに削除
また、削除マークが付いたプロジェクトをすぐに削除することもできます。そのためには
- プロジェクトを復元します。
- プロジェクトの管理ページで説明されているように、プロジェクトを削除します。
プロジェクトの可視性のデフォルト設定
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- プロジェクトのデフォルトの可視性を選択します:
- 非公開- プロジェクトへのアクセスは、各ユーザーに明示的に許可する必要があります。このプロジェクトがグループの一部である場合、アクセスはグループのメンバーに許可されます。
- 内部- プロジェクトは、外部ユーザーを除く、認証されたすべてのユーザーがアクセスできます。
- 公開- 認証なしでプロジェクトにアクセスできます。
- 変更を保存を選択します。
スニペット表示のデフォルト設定
新しいスニペットのデフォルトの表示レベルを設定します:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- デフォルトのスニペットの可視性を選択します。
- 変更を保存を選択します。
スニペットの可視性の詳細については、プロジェクトの可視性をお読みください。
グループの可視性のデフォルト設定
新しいグループのデフォルトの可視レベルを設定します:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- 必要なデフォルトのグループの可視性を選択します:
- 非公開- グループとそのプロジェクトはメンバーだけが閲覧できます。
- 内部- グループと内部プロジェクトは、外部ユーザー以外の認証済みユーザーも閲覧できます。
- 公開- グループと公開プロジェクトは、認証なしで閲覧できます。
- 変更を保存を選択します。
グループの可視性の詳細については、グループの可視性を参照してください。
可視レベルの制限
可視性のレベルを制限する場合は、変更する項目から可視性を継承するサブグループおよびプロジェクトの権限との相互作用を考慮してください。
グループ、プロジェクト、スニペット、および選択したページの可視レベルを制限するには、以下の手順に従います:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
-
制限された可視性レベル] セクションで、制限する可視性レベルを選択します。
-
公開レベルを制限する場合:
- 管理者のみが公開グループ、プロジェクト、スニペットを作成できます。
- ユーザープロファイルは、Webインターフェイスを通じて認証されたユーザーにのみ表示されます。
- GraphQL API によるユーザー属性は以下のとおりです:
- GitLab 15.1以降では表示されません。
- GitLab 13.1からGitLab 15.0までの認証ユーザーのみ表示可能。
-
内部レベルを制限した場合:
- 管理者のみが内部グループ、プロジェクト、スニペットを作成できます。
-
非公開レベルを制限した場合:
- 管理者のみが非公開グループ、プロジェクト、スニペットを作成できます。
-
公開レベルを制限する場合:
- 変更を保存を選択します。
プロジェクトの可視性の詳細については、プロジェクトの可視性を参照してください。
許可されるインポートソースの設定
他のシステムからプロジェクトをインポートする前に、そのシステムのインポートソースを有効にする必要があります。
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- 許可するインポートソースをそれぞれ選択します。
- 変更を保存を選択します。
プロジェクトのエクスポートを有効にします。
プロジェクトとそのデータのエクスポートを有効にします:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- プロジェクトのエクスポートまでスクロールします。
- Enabledチェックボックスを選択します。
- 変更を保存を選択します。
直接転送によるグループとプロジェクトのマイグレーションを有効にします。
GitLab 15.8で導入されました。
UIを使って直接転送によるグループのマイグレーションを有効にすることができます。
直接転送によるグループのマイグレーションを有効にするには、以下の手順に従います:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- Allow migrating GitLab groups and projects by direct transferまでスクロールします。
- Enabledチェックボックスを選択します。
- 変更を保存を選択します。
APIでは、bulk_import_enabled
属性と同じ設定が利用できます。
有効な Git アクセスプロトコルの設定
GitLabのアクセス制限では、ユーザーがGitLabとの通信に使用できるプロトコルを選択できます。アクセスプロトコルを無効にしても、サーバー自体へのポートアクセスはブロックされません。プロトコル、SSHまたはHTTP(S) に使用されるポートは、まだアクセス可能です。GitLabの制限はアプリケーションレベルで適用されます。
有効なGitアクセス・プロトコルを指定するには:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
- 必要な Git アクセス・プロトコルを選択します:
- SSHとHTTPの両方(S)
- SSHのみ
- HTTPのみ(S)
- 変更を保存を選択します。
SSH と HTTP(S) の両方が有効な場合、ユーザーはどちらかのプロトコルを選択できます。一方のプロトコルのみが有効な場合
- プロジェクトページには許可されたプロトコルのURLのみが表示され、変更するオプションはありません。
-
GitLabでは、ユーザーアクション(SSHキーの追加やパスワードの設定など)が必要な場合、URLのプロトコルにカーソルを合わせるとツールチップが表示されます:
GitLabは選択したプロトコルに対してのみGitアクションを許可します。
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/
にします。
カスタム Git クローン URL を HTTP で指定するには(S) :
- HTTP 用のカスタムGit クローン URL(S)のルート URL を入力します。
- 変更を保存を選択します。
gitlab_rails['gitlab_ssh_host']
およびその他の関連設定を設定することでgitlab.rb
でカスタマイズできます。RSA、DSA、ECDSA、ED25519、ECDSA_SK、ED25519_SK SSHキーのデフォルト設定
これらのオプションは、SSH キーに許可されるタイプと長さを指定します。
鍵の種類ごとに制限を指定するには
- ドロップダウンリストから必要なオプションを選択します。
- 変更を保存を選択します。
詳細については、SSHキーの制限を参照してください。
プロジェクトミラーリングの有効化
このオプションはデフォルトで有効になっています。無効にすると、プルミラーリングと プッシュミラーリングの両方がすべてのリポジトリで動作しなくなります。プロジェクト単位で管理ユーザーによってのみ再有効化できます。
グローバルに許可する IP アドレス範囲の設定
- GitLab 15.1 で
group_ip_restrictions_allow_global
というフラグで導入されました。デフォルトでは無効です。- GitLab 15.4で一般的に利用可能に。機能フラグ
group_ip_restrictions_allow_global
を削除。
管理者は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アドレスの範囲をグループレベルの許可リストに追加するには:
- GitLabにAdministratorアクセスレベルのユーザーとしてサインインしてください。
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- 設定] > [全般]を選択します。
- 表示とアクセス制御」セクションを展開します。
-
グローバルに許可するIP範囲]に、IPアドレス範囲のリストを入力します。このリストには
- IP アドレス範囲の数に制限はありません。
- 1GBのサイズ制限があります。
- SSH または HTTP の両方の作成者に適用されます。作成者のタイプによってこのリストを分割することはできません。
- 変更を保存を選択します。