- 定义哪些角色可以创建项目
- 限制项目删除权限为管理员
- 删除保护
- 配置项目可见性默认值
- 配置代码片段可见性默认值
- 配置群组可见性默认值
- 限制可见性级别
- 配置启用的 Git 访问协议
- 自定义 HTTP(S) 的 Git 克隆 URL
- 配置 RSA、DSA、ECDSA、ED25519、ECDSA_SK、ED25519_SK SSH 密钥的默认值
- 启用项目镜像
- 配置全局允许的 IP 地址范围
{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
极狐GitLab 使具有管理员访问权限的用户能够在分支、项目、代码片段、群组等上实施特定控制。
先决条件:
- 您必须是管理员。
要访问可见性和访问控制选项:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
定义哪些角色可以创建项目
您可以为您的实例添加项目创建保护。这些保护定义了哪些角色可以 向群组添加项目。要更改哪些角色有权限创建项目:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 对于 创建项目所需的默认最低角色,选择所需的角色:
- 无人。
- 管理员。
- 拥有者。
- 维护者。
- 开发者。
- 选择 保存更改。
{{< alert type=”note” >}}
如果您选择 管理员 并且 管理员模式 已打开,则管理员必须进入管理员模式才能创建新项目。
{{< /alert >}}
限制项目删除权限为管理员
{{< details >}}
- Tier: Premium, Ultimate
- Offering: 极狐GitLab私有化部署
{{< /details >}}
{{< history >}}
- 在极狐GitLab 15.1 中,用户界面发生了更改。
{{< /history >}}
先决条件:
- 您必须是管理员,或者在项目中拥有 拥有者 角色。
要仅限管理员删除项目:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 滚动到:
- (GitLab 15.1 及更高版本) 允许删除项目,选择 管理员。
- (GitLab 15.0 及更早版本) 默认项目删除保护,选择 只有管理员可以删除项目。
- 选择 保存更改。
要禁用限制:
- 选择 拥有者和管理员。
- 选择 保存更改。
删除保护
{{< details >}}
- Tier: Premium, Ultimate
- Offering: 极狐GitLab私有化部署
{{< /details >}}
{{< history >}}
- 在极狐GitLab 15.1 中,从默认延迟项目删除进行了重命名。
- 在极狐GitLab 15.1 中,在个人命名空间中为项目启用。
- 在极狐GitLab 15.3 中,在个人命名空间中为项目禁用。
- 在极狐GitLab 15.11 中,移除了立即删除选项,使用名为
always_perform_delayed_deletion
的功能标志。默认禁用。 - 在极狐GitLab 16.0 中,默认启用延迟删除并在 JihuLab.com 和私有化部署上移除了立即删除选项。
{{< /history >}}
这些保护措施有助于防止您的实例上的群组和项目被意外删除。
保留期
{{< history >}}
- 在极狐GitLab 15.1 中发生变更。
{{< /history >}}
在您定义的保留期内,群组和项目仍然可恢复。默认情况下,这是 7 天,但您可以更改它。如果您将保留期设置为 0
天,极狐GitLab 会立即删除已删除的群组和项目。您无法恢复它们。
在 GitLab 15.1 及更高版本中,保留期必须在 1
到 90
天之间。如果在 15.1 更新之前您将保留期设置为 0
天,则下一次您更改任何应用程序设置时,极狐GitLab 将:
- 将保留期更改为
1
天。 - 禁用删除保护。
延迟项目删除
{{< history >}}
- 在极狐GitLab 15.1 中,用户界面发生了变更。
- 在极狐GitLab 16.0 中,默认启用延迟删除并在 JihuLab.com 和私有化部署上移除了立即删除选项。
{{< /history >}}
先决条件:
- 您必须是管理员。
- 您必须为群组启用延迟项目删除,然后才能为项目启用它。删除保护仅适用于项目。
- 禁用时,GitLab 15.1 及更高版本会强制执行此延迟删除设置,您无法覆盖它。
要配置延迟项目删除:
{{< tabs >}}
{{< tab title=”GitLab 16.0 及更高版本” >}}
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 滚动到 删除保护 并将保留期设置为
1
到90
天之间的值。 - 选择 保存更改。
{{< /tab >}}
{{< tab title=”GitLab 15.11 及更早版本” >}}
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 滚动到:
- 在 GitLab 15.11 中启用
always_perform_delayed_deletion
功能标志:删除保护 并将保留期设置为1
到90
天之间的值。 - 在 GitLab 15.1 到 15.10 中:删除保护 并选择 保留已删除的群组和项目,然后设置保留期。
- 在 GitLab 15.0 及更早版本中:默认延迟项目保护 并选择 为新创建的群组默认启用延迟项目删除,然后设置保留期。
- 在 GitLab 15.11 中启用
- 选择 保存更改。
{{< /tab >}}
{{< /tabs >}}
延迟群组删除
{{< history >}}
- 在极狐GitLab 15.1 中,用户界面发生了变更。
- 在极狐GitLab 16.0 中,对企业版进行了默认行为的修改。
{{< /history >}}
如果保留期为 1
天或更长时间,群组仍然可恢复。
在 GitLab 16.0 及更高版本中,保留已删除 选项被移除,延迟群组删除成为默认行为。
要在 GitLab 15 中启用延迟群组删除:
- 仅在 GitLab 15.11 中:启用
always_perform_delayed_deletion
功能标志。 - 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 对于 删除保护,选择 保留已删除。
- 选择 保存更改。
覆盖默认设置并立即删除
要覆盖延迟并立即删除标记为删除的项目:
配置项目可见性默认值
要设置新项目的默认 可见性级别:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 选择所需的默认项目可见性:
- 私有 - 需要明确授予每个用户项目访问权限。如果该项目属于群组,则授予群组成员访问权限。
- 内部 - 任何经过身份验证的用户,除外部用户外,都可以访问该项目。
- 公开 - 任何用户无需身份验证即可访问该项目。
- 选择 保存更改。
配置代码片段可见性默认值
要设置新 代码片段 的默认可见性级别:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 对于 默认代码片段可见性,选择您希望的可见性级别:
- 私有。
-
内部。此设置在 JihuLab.com 上的新项目、群组和代码片段中被禁用。使用
内部
可见性设置的现有代码片段保留此设置。 - 公开。
- 选择 保存更改。
配置群组可见性默认值
要设置新群组的默认可见性级别:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 对于 默认群组可见性,选择您希望的可见性级别:
- 私有 - 只有成员可以查看群组及其项目。
- 内部 - 任何经过身份验证的用户,除外部用户外,都可以查看群组及任何内部项目。
- 公开 - 查看群组及任何公共项目不需要身份验证。
- 选择 保存更改。
有关群组可见性的更多详细信息,请参阅 群组可见性。
限制可见性级别
{{< history >}}
- 在极狐GitLab 16.3 中进行了更改以组织限制默认项目和群组的可见性,使用名为
prevent_visibility_restriction
的功能标志。默认禁用。 - 在极狐GitLab 16.4 中,
prevent_visibility_restriction
默认启用。 - 在极狐GitLab 16.7 中,
prevent_visibility_restriction
被移除。
{{< /history >}}
在限制可见性级别时,考虑这些限制如何与继承其可见性的子群组和项目的权限交互。
此设置不适用于在个人命名空间下创建的群组和项目。
要限制群组、项目、代码片段和选定页面的可见性级别:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 对于 受限可见性级别,选择要限制的可见性级别。
- 如果您限制 公开 级别:
- 只有管理员可以创建公开群组、项目和代码片段。
- 用户配置文件仅通过 Web 界面对经过身份验证的用户可见。
- 通过 GraphQL API 的用户属性:
- 在极狐GitLab 15.1 及更高版本中不可见。
- 在极狐GitLab 15.0 中仅对经过身份验证的用户可见。
- 如果您限制 内部 级别:
- 只有管理员可以创建内部群组、项目和代码片段。
- 如果您限制 私有 级别:
- 只有管理员可以创建私有群组、项目和代码片段。
- 如果您限制 公开 级别:
- 选择 保存更改。
{{< alert type=”note” >}}
您不能限制作为新项目或群组默认设置的可见性级别。相反,您不能将受限可见性级别设置为新项目或群组的默认设置。
{{< /alert >}}
配置启用的 Git 访问协议
使用极狐GitLab访问限制,您可以选择用户用于与极狐GitLab通信的协议。禁用访问协议不会阻止对服务器本身的端口访问。协议使用的端口,SSH 或 HTTP(S),仍然可访问。极狐GitLab限制适用于应用程序级别。
极狐GitLab 仅允许您选择的协议进行 Git 操作:
- 如果您启用 SSH 和 HTTP(S),用户可以选择任一协议。
- 如果您仅启用一种协议,项目页面仅显示允许的协议的 URL,没有选项可以更改它。
要指定实例上所有项目的启用 Git 访问协议:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 对于 启用 Git 访问协议,选择您希望的协议:
- SSH 和 HTTP(S)。
- 仅 SSH。
- 仅 HTTP(S)。
- 选择 保存更改。
{{< alert type=”warning” >}}
极狐GitLab 允许 HTTP(S) 协议用于 使用极狐GitLab CI/CD 作业令牌 执行的 Git 克隆或获取请求。这种情况发生,即使您选择 仅 SSH,因为极狐GitLab Runner 和 CI/CD 作业需要此设置。
{{< /alert >}}
自定义 HTTP(S) 的 Git 克隆 URL
您可以自定义项目 Git 克隆 URL 的 HTTP(S),这会影响在项目页面上显示给用户的克隆面板。例如,如果:
- 您的极狐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/
。
要在 gitlab.rb
中指定 HTTP(S) 的自定义 Git 克隆 URL,请为 gitlab_rails['gitlab_ssh_host']
设置新值。要从极狐GitLab UI 指定新值:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 输入 HTTP(S) 的自定义 Git 克隆 URL 的根 URL。
- 选择 保存更改。
配置 RSA、DSA、ECDSA、ED25519、ECDSA_SK、ED25519_SK SSH 密钥的默认值
这些选项指定 SSH 密钥的 允许类型和长度。
要为每种密钥类型指定限制:
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 转到 RSA SSH 密钥。
- 对于每种密钥类型,您可以完全允许或阻止其使用,或者仅允许以下长度:
- 至少 1024 位。
- 至少 2048 位。
- 至少 3072 位。
- 至少 4096 位。
- 至少 1024 位。
- 选择 保存更改。
启用项目镜像
极狐GitLab 默认启用项目镜像。如果您禁用它, 拉取镜像 和 推送镜像 将不再在每个仓库中工作。它们只能由管理员用户在每个项目的基础上重新启用。
要允许您的实例上的项目维护者为每个项目配置镜像:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 仓库。
- 展开 仓库镜像。
- 选择 允许项目维护者配置仓库镜像。
- 选择 保存更改。
配置全局允许的 IP 地址范围
{{< history >}}
- 引入于极狐GitLab 15.1,使用名为
group_ip_restrictions_allow_global
的功能标志。默认禁用。 - 在极狐GitLab 15.4 中 GA。
group_ip_restrictions_allow_global
被移除。
{{< /history >}}
管理员可以将 IP 地址范围与 每个群组的 IP 限制 相结合。使用全局允许的 IP 地址,即使在每个群组设置了 IP 地址限制时,也可以使极狐GitLab安装的各个方面正常工作。
例如,如果极狐GitLab Pages 守护程序在 10.0.0.0/24
范围内运行,您可以将该范围指定为全局允许。极狐GitLab Pages 仍然可以从流水线中提取产物,即使群组的 IP 地址限制不包括 10.0.0.0/24
范围。
要将 IP 地址范围添加到群组的允许列表:
先决条件:
- 您必须是管理员。
- 在左侧边栏底部,选择 管理员。
- 选择 设置 > 常规。
- 展开 可见性和访问控制。
- 在 全局允许的 IP 范围 中,提供 IP 地址范围列表。此列表:
- 对 IP 地址范围的数量没有限制。
- 适用于 SSH 或 HTTP 授权的 IP 地址范围。您无法按授权类型拆分此列表。
- 选择 保存更改。