GitLab 16.4 发布,可自定义角色和组级依赖列表


按照惯例上周(22号),GitLab官方又发布一个新的月度版本16.4,其中包含可自定义角色、组/子组级别依赖项列表、使用GitLab用户身份在本地访问集群、为私人项目创建工作区等等改善,更多内容,请随虫虫一起学习。

另外从GitLab官方消息,GitLab的版本发布时间由每月的22号,修改为更加灵活的每月第三个星期的周四。

GitLab主要功能更新

可定制的角色(ULTIMATE)

组所有者或管理员现在可以使用“角色和权限”菜单下的UI创建和删除自定义角色。

要创建自定义角色,可以在现有基本角色之上添加权限。目前,可以添加到基本角色的权限数量有限,包括精细的安全权限、批准合并请求和查看代码的能力。每个里程碑都会发布新的权限,然后可以将其添加到现有权限中以创建自定义角色。

全局设置id_token并消除单个作业的配置

GitLab 15.9 删除了旧版本的JSON Web令牌,转而使id_token.不幸的是,必须单独修改工作以适应这种变化。为了能够平滑过渡到id_token,从GitLab 16.4开始,可以在中设置为全局默认值.gitlab-ci.yml。新功能会自动设置id_token每个作业的配置。使用OpenID Connect (OIDC) 身份验证的作业不再需要设置单独的id_token。

使id_token OIDC 向第三方服务进行身份验证。所需的aud子关键字用于配置aud JWT的声明。

添加网络钩子以添加或撤销表情符号反应

为了提供尽可能多的自动化和与第三方系统集成的机会,新添加了对创建 Webhooks的支持,这些Webhooks在用户添加或撤销表情符号反应时触发。

例如,可以使用新的Webhook在用户对问题作出反应或使用表情符号合并请求时发送电子邮件。

扩展应用程序设置中可用的可配置导入限制

将一些硬编码的导入限制转变为可配置的应用程序设置,以允许自建实例的GitLab管理员根据自己的需求调整这些限制。

在新版本中,添加了解压缩存档文件的超时作为可配置的应用程序设置。

在GitLab SaaS上该限制被硬编码为210秒。对于自建实例,默认设置也为210秒。管理员都可以根据需要调整此限制。

适用于的macOS运行程序的macOS 13 (Ventura) 镜像(PREMIUM)

团队现在可以在macOS 13 上无缝地为Apple生态系统创建、测试和部署应用程序。

macOS上的SaaS运行程序可提高开发团队在与GitLab CI/CD集成的安全、按需GitLab Runner构建环境中构建和部署需要macOS的应用程序的速度。

服务台的自定义电子邮件地址

服务台是企业和客户之间最有意义的联系之一。现在,可以使用自己的自定义电子邮件地址来发送和接收服务台电子邮件。通过这一变化,维护品牌形象并让客户相信他们正在与正确的实体进行沟通变得更加容易。

管道特定的CycloneDX SBOM 导出(ULTIMATE)

新添加了一个API,可以下载CycloneDX SBOM,其中列出了CI管道中检测到的所有组件。包括应用程序级依赖项和系统级依赖项。

Geo 持云原生混合站点上的统一URL(ULTIMATE)

Geo 现在支持云原生混合站点上的统一URL,这意味着云原生混合站点可以与主站点共享单个外部URL。这为远程团队提供了无缝的GitLab UI和Git开发人员体验,他们可以使用单个通用URL根据其位置自动定向到最佳Geo辅助站点。

通过此更新,所有GitLab参考架构现在都支持统一URL。

使用API创建自定义角色名称和描述(ULTIMATE)

创建自定义角色时,现在可以使用成员角色API添加名称(必需)和描述(可选)。任何现有的自定义角色均已指定名称Custom,可以使用API将自定义角色的名称更改为选择的名称。

触发群组提及的Slack通知

GitLab可以将某些GitLab事件的消息发送到Slack工作区通道。在新版本中,现在可以在以下位置触发针对公共和私人上下文中的群组提及的Slack通知:

问题和合并请求描述

对问题、合并请求和提交的评论

具有维护者角色的用户可以查看运行者详细信息

具有群组维护者角色的用户现在可以查看群组运行者的详细信息。具有此角色的用户可以查看组运行器以快速确定哪些运行器可用,或验证自动创建的运行器是否已成功注册到组命名空间。

支持environment下游管道中的关键字

如果需要从CI/CD管道作业触发下游管道,可以使用关键字trigger。environment为了增强部署管理,现在可以在使用时使用关键字指定环境trigger。例如,可以使用环境名称和指定的环境URL main触发/web-appdev项目分支的下游管道。

以前,当为CI和CD运行单独的管道并使用trigger关键字启动CD管道时,无法指定环境详细信息。这使得跟踪CI项目的部署变得困难。添加对环境的支持可以简化跨项目的部署跟踪。

Geo验证对象存储(PREMIUM)

当对象存储复制由GitLab管理时,Geo添加了验证对象存储的功能。为了保护对象存储数据免遭损坏,Geo会比较主站点和辅助站点之间的文件大小。如果 Geo是灾难恢复策略的一部分,并且启用了GitLab管理的对象存储复制,这可以防止数据丢失。此外,它还减少了复制辅助站点上可能已存在的数据的需要。例如,将旧的主站点添加回辅助站点时。

Elasticsearch索引完整性现已普遍可用(PREMIUM)

在GitLab 16.4中,Elasticsearch索引完整性通常可供所有GitLab用户使用。索引完整性有助于检测和修复丢失的存储库数据。当范围为组或项目的代码搜索未返回结果时,会自动使用此功能。

Omnibus改进

GitLab 16.4 包含OpenSUSE 15.5的软件包。

Gitlab Runner 16.4

同期也一起发布了GitLab Runner 16.4。新的变化包括:

将队列持续时间直方图指标添加到运行程序Prometheus指标接口。

GitLab Runner 16.3.0 中的 Kubernetes runner pod 未清理的bug。

gitlab-runner-helper缓存下载期间终止。

安全和合规性

使用GitLab用户身份在本地访问集群

允许开发者访问Kubernetes集群需要开发者云帐号或第三方认证工具。这增加了云身份和访问管理的复杂性。现在,可以仅使用开发人员的GitLab身份和Kubernetes代理来授予开发人员访问Kubernetes集群的权限。使用传统的 Kubernetes RBAC 来管理集群内的授权。

目前该新功能必须通过手动管理 Kubernetes 配置。后面可能会增加命令扩展GitLab CLI来简化设置。

pnpm lockfile v6.1的依赖性和许可证扫描支持(ULTIMATE)

GitLab依赖项和许可证扫描现在支持使用v6.1锁定文件格式分析pnpm项目。

私人项目创建工作区(PREMIUM)

以前,无法为私有项目创建工作区。要克隆私有项目,只能在创建工作区后对自己进行身份验证。

在新版本中,以为任何公共或私人项目创建工作区。创建工作区时,将自动可用于该工作区的个人访问令牌。使用此令牌,可以克隆私有项目并执行 Git 操作,而无需任何额外的配置或身份验证。

组/子组级别依赖关系列表(ULTIMATE)

在查看依赖项列表时,有一个整体视图很重要。对于想要审核所有项目的依赖关系的大型组织来说,在项目级别管理依赖关系是有问题的。在新版本中,可以查看项目或组级别的所有依赖项,包括子组。

漏洞批量状态更新(ULTIMATE)

有一些漏洞可能需要批量解决,有些可能是误报,其他可能是需要忽略的小问题,如何轻松最小化噪音和分类漏洞都很重要。在新版本中,可以批量更改状态并对组或项目漏洞报告中的多个漏洞进行评论。

细粒度的安全权限(ULTIMATE)

一些组织希望为其安全团队提供最少的必要访问权限,以便他们能够遵守最小特权原则。安全团队不应有权编写代码更新,但他们必须能够批准合并请求、查看漏洞并更新漏洞的状态。

GitLab现在允许用户根据报告者角色的访问权限创建自定义角色,但添加了以下权限:

查看依赖项列表 (read_dependency)。

查看安全仪表板和漏洞报告 (read_vulnerability)。

批准合并请求 (admin_merge_request)。

更改漏洞的状态 (admin_vulnerability)。

预计划在17.0中删除所有级别的开发人员角色的更改漏洞状态的权限。

SAST安全扫描器更新

GitLab SAST包含许多由GitLab静态分析团队积极维护、更新和支持的安全扫描器。在16.4版本更新如下:

KICS扫描仪:将基于KICS的分析器更新至KICS扫描仪版本1.7.7。

Sobelow分析器:

更新至Sobelow 0.13.0。还将分析器的基础镜像更新为Elixir 1.13,以提高与最新Elixir版本的兼容性。

PMD Apex的分析仪更新至PMD 6.55.0:

更改了基于 PHPCS 安全审核的分析器以删除该Security.Misc.IncludeMismatch规则。

Semgrep分析器:

更新了的中使用的规则,以修复规则错误、修复规则描述中损坏的链接,并解决具有相同规则ID的Java和Scala规则之间的冲突。

自定义规则文件的最大大小增加到10MB。

访问权限过期时发送电子邮件通知

用户将在其组或项目访问权限到期前7天收到电子邮件通知。这仅适用于设置了访问到期日期的情况。此前,访问权限过期时不会有任何通知。提前通知意味着可以让用户及时联系管理员以确保持续访问。

默认启用基于浏览器的DAST主动检查22.1

默认情况下已启用基于浏览器的DAST主动检查22.1。它取代了已被禁用的 ZAP检查6。检查22.1识别出“对受限制目录的路径名的不正确限制(路径遍历)”,可以通过将有效负载插入URL接口上的参数来利用该漏洞,从而允许读取任意文件。

改进了SAST漏洞跟踪

GitLab SAST高级漏洞跟踪通过跟踪代码移动时的发现,使分类更加高效。

在 GitLab 16.4 中,为新语言和分析器启用了高级漏洞跟踪。除了现有的覆盖范围外,高级跟踪现在还可用于:

Java,在基于SpotBugs的SAST分析器中。

PHP,在基于PHPCS安全审计的SAST分析器中。

对操作容器扫描的私有注册表支持

操作容器扫描现在可以访问和扫描私有容器注册表中的图像。OCS 使用镜像拉取机密来访问私有注册表容器。

允许用户定义强制安全策略的分支例外(ULTIMATE)

安全策略强制扫描程序在GitLab项目中运行,并强制执行MR检查/批准以确保安全性和合规性。通过分支例外,可以更精细地实施策略并排除对超出范围的任何给定分支的实施。如果开发人员创建的开发或测试分支无意中受到严厉执法的影响,可以与安全团队合作,将该分支排除在安全策略之外。

对于扫描执行策略,可以配置管道或计划规则类型的例外。对于扫描结果策略,可以为scan_finding或license_finding规则类型指定分支例外。

访问令牌过期的通知

组和项目访问令牌经常用于自动化。重要的是,当这些令牌之一即将到期时,管理员和组所有者会收到通知,从而避免中断。新版本中,当令牌距离到期时间不超过7天时,管理员和群组所有者会收到通知电子邮件。还可以通过订阅 Webhook事件来获取这些通知。

功能删除和变化

内部容器注册表API标记删除端点。

`postgres_exporter['per_table_stats']` 配置设置

Geo:旧版复制详细介绍了设计和项目的路线,删除。

开发人员角色更改漏洞状态功能已经被删除。

“ci_job_token_scope_enabled”项目API属性已被删除。

其他显着变化

GitLab 发布时间移至本月第三个星期四

从2023年11月16日发布的GitLab 16.6开始,每月发布日期将从每月22日更改为每月第三个星期四。发布流程中的这次迭代将确保一致性,并为客户在一周中的哪一天发布方面创造更多的可预测性,同时保持月度小版本发布周期。

升级更新

Omnibus套件

通过Omnibus一键安装包安装的自建实例可直接使用Linux包管理器可以升级。

例如对CentOS:

yum updata/install gitlab-ce

就能自动完成升级。

截止本文发布以前,该版本还有bug,用15.5及以下版本升级时候会报错,需要先升级到中间版本再升级,或者在后续补丁包发布后升级。

Docker版本

先停止和删除旧的容器:

sudo docker stop gitlab
sudo docker rm gitlab

然后Pull官方最新镜像:

sudo docker pull gitlab/gitlab-ce:latest

重新启动容器(启动参数和以前保持一致)即可,比如:

sudo docker run --detach 
--hostname gitlab.example.com 
--publish 443:443 --publish 80:80 --publish 22:22 
--name gitlab 
--restart always 
--volume /srv/gitlab/config:/etc/gitlab 
--volume /srv/gitlab/logs:/var/log/gitlab 
--volume /srv/gitlab/data:/var/opt/gitlab 
gitlab/gitlab-ce:latest

Docker compose

通过:

docker-compose pull
docker-compose up -d

关于升级到 GitLab 16.4 的重要说明

在升级到GitLab 16.4之前,需要确保Restricted visibility levels管理设置不会选择设置为默认项目和组可见性的级别。

此更改是由于默认启用功能标志后面添加的验证所致prevent_visibility_restriction。

Geo中引入对象存储文件验证会导致检测到孤立的上传记录,因此,可能会注意到某些上传的主要校验和失败。这些失败最可能的原因是孤立的上传记录。孤立上传记录是由于父记录(例如Design Management或Vulnerability Report )未与关联的上传记录一起删除而留下无父上传记录的结果。在对象存储验证可用之前,仅检测到与本地存储相关的孤立上传记录。

在大多数情况下,删除上传记录以及对象存储中的关联文件是安全的,不会导致数据丢失。建议在删除之前对每个故障进行调查并确认已过时。

升级到GitLab 16.4 时,任何尚未升级其安全策略项目以使用安全机器人的用户都必须从他们已链接的每个组、子组或项目中取消链接并重新链接安全策略项目以刷新连接。可以使用Mutation.securityPolicyProjectUnassign GraphQL突变和Mutation.securityPolicyProjectAssign GraphQL突变或UI进行配置。完成后,安全策略机器人将在强制执行安全策略的所有项目中启用,并将成为任何计划扫描执行管道的作者。

展开阅读全文

页面更新:2024-03-05

标签:角色   分析器   令牌   漏洞   权限   规则   版本   通知   项目   用户   列表

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top