GitLab 中文版正式釋出 17.5,修復多個漏洞,釋出多個功能

极狐GitLab發表於2024-10-24

沿襲我們的月度釋出傳統,極狐GitLab 釋出了 17.5 版本,該版本帶來了多倉庫 MR 合併時考慮統一主流水線的執行狀態(JH-only)、增強的分支規則編輯功能、金鑰推送保護已經正式可用等幾十個重點功能的改進。下面是部分重點功能的詳細解讀。

關於極狐GitLab 的安裝升級,可以檢視官方指導文件https://dl.gitlab.cn/yslhgwyu】。

  • 17.5 容器映象
    registry.gitlab.cn/omnibus/gitlab-jh:17.5.0-jh.0
  • 17.5 Helm Chart
    helm search repo gitlab-jh
    NAME CHART VERSION APP VERSION
    gitlab-jh/gitlab 8.5.0 v17.5.0
    gitlab-jh/gitlab-runner 0.70.0 17.5.0

極狐GitLab 17.5 重要改進

多倉庫 MR 合併時考慮統一主流水線的執行狀態(JH-only)

社群版 專業版 旗艦版
SaaS
私有化部署 Y Y

對於多個倉庫的 MR,當它們的專案中勾選了 “流水線必須成功” 才能合併 MR 的選項時,如果它們所在的專案中沒有各自的流水線,那這些 MR 能否合併取決於統一的主流水線是否執行透過了。

增強的分支規則編輯功能

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

在極狐GitLab 15.10 中,我們引入了與分支設定和規則相關的整合檢視功能。這個檢視為你提供了一種簡單的方式,以理解你的專案在多個設定中的配置。

在此功能之上,你可以在檢視上直接對特定的分支規則進行修改,包括分支保護策略、批准規則以及外部狀態檢查等配置。這些新功能為分支配置的持續改進奠定了基礎,將來將允許更大的靈活性。

金鑰推送保護已經正式可用

社群版 專業版 旗艦版
SaaS Y
私有化部署 Y

我們很高興地宣佈金鑰推送保護功能已經對所有旗艦版客戶來說正式可用啦!

如果不小心將金鑰提交到了 Git 倉庫,比如 key 或者 API 令牌,那麼任何對倉庫有訪問許可權的人都有可能獲取這些金鑰資訊,然後偽裝成金鑰所對應的使用者,做一些惡意操作。金鑰洩露耗時費錢,而且會對公司聲譽造成潛在傷害。而金鑰推送保護功能透過在推送發生的第一時間對金鑰資訊進行保護,從而減少金鑰洩露的修復時間,降低帶來的風險。

自從 Beta 版本後,我們對金鑰推送保護功能又做了改進。當使用 Git 命令對程式碼進行提交時,不僅只有變更(差異)會被用來做金鑰掃描。我們還增加了對排除路徑、規則或特定值的實驗性支援,以避免誤報。

JihuLab.com 上可用的憑據清單

社群版 專業版 旗艦版
SaaS Y
私有化部署

現在,JihuLab.com 上的憑據清單對頂級群組的擁有者已經可用了。你可以跨群組檢視你的企業使用者個人訪問令牌和 SSH Key 了。你還可以撤銷、刪除以及檢視與憑據相關的其他額外資訊。之前,此功能只有極狐GitLab 私有化部署的管理員能用。

群組擁有者可以使用憑據清單來了解擁有者範圍內所具有的憑據,這提高了視覺化和可控性。

在依賴列表中對元件進行過濾

社群版 專業版 旗艦版
SaaS Y
私有化部署 Y

現在,在極狐GitLab 中,你可以透過對特定元件的過濾來確定群組或專案中是否使用了該元件。在整個列表中用手動查詢的方式來確認某個特定的軟體包或軟體版本是否在使用是非常耗時的。有了這個在依賴列表中對元件進行過濾的功能,就可以對易受攻擊的依賴項進行隔離,而且能更加方便地對應用程式所面臨的風險進行評估。

極狐GitLab 17.5 的其他改進

增強了容器映象標籤 API 效能

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

我們很高興地宣佈,針對極狐GitLab 私有化部署,我們對容器映象倉庫 API 做了一個非常重要的改進。在極狐GitLab 17.5 中,我們實現了對 :id/registry/repositories/:repository_id/tags端點的鍵集分頁功能(keyset pagination ),使其與 JihuLab.com 上已有的功能保持一致。這項改進是我們持續努力提升 API 效能的一部分,而且為所有極狐GitLab 的部署提供了一致性體驗。

鍵集分頁功能為處理大型資料集提供了更加靈活的方式,也帶來了更好的效能以及更好的使用者體驗。這個功能在管理大型容器映象倉庫時特別有用,因為它能在倉庫中對標籤進行瀏覽時顯得更絲滑。為了使用此功能,私有化部署例項必須要升級到下一代容器映象倉庫。

透過 REST API 對 agent 和 GitOps 環境設定進行配置

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

你可以在極狐GitLab 介面上對 pod 狀態、Flux 調諧進行檢視。然而,這種方法難以擴充套件,因為所需的設定只能透過 GraphQL 或者 UI 進行對外暴露。現在,極狐GitLab 支援透過 REST API 來對 Kubernetes agent 以及每個環境中的名稱空間設定、Fulx 資源進行配置了。

支援為防火牆背後的極狐GitLab 例項整合 Kubernetes

社群版 專業版 旗艦版
SaaS
私有化部署 Y

直到現在,Kubernetes agent 也只能被用在和極狐GitLab 例項能夠連線的 Kubernetes 叢集上。這個問題就導致有些使用者沒法用 Kubernetes agent,因為他們的例項安裝在了私有網路或者防火牆背後。從極狐GitLab 17.5 開始,你可以從極狐GitLab 發起叢集-極狐GitLab 連線,假設已經有一個已經正確配置的 agentk例項在等待連線初始化。

一旦建立了初始化連線,就可以使用 agent 的所有功能了。此次更改並未對叢集初始化的方式做任何改變。

在極狐GitLab 介面上暫停或恢復 GitOps 同步

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

作為 Flux 使用者,你是否曾經需要快速停止一次自動同步或漂移修正?你是否想要觸發一個 HelmRelease 來同步手動移除的資源?這些動作非常適合用 Flux 暫停或恢復功能來實現。直到現在,最好的方式可能是使用 Flux 命令列,但是這需要切換上下文,而且需要記住相應的指令以確保操作的資源是正確的。在極狐GitLab 17.5 中,你可以在 Kubernetes 內建的儀表盤中對同步進行暫停或者恢復。

訪問專案的合規中心

社群版 專業版 旗艦版
SaaS Y Y
私有化部署 Y Y

之前,合規中心只在群組或子群組上可用。

在此版本中,我們為專案新增了合規中心。在這個層級上,合規中心為與特定專案相關的檢查和違規行為提供僅檢視的功能。

如果要新增或者編輯框架,你需要在頂級群組上對合規中心進行操作。

為企業使用者禁用密碼認證

社群版 專業版 旗艦版
SaaS Y Y
私有化部署

企業使用者可以用本地賬號的使用者名稱密碼進行認證。現在,群組擁有者可以為群組內的企業使用者禁用密碼認證了。如果密碼認證被禁用,企業使用者可以使用群組的 SAML 身份提供者透過 GitLab 網頁使用者介面進行認證,或者使用個人訪問令牌透過極狐GitLab API 和 Git 使用 HTTP 基本認證進行認證。

合規流水線到安全策略的遷移流程

社群版 專業版 旗艦版
SaaS Y
私有化部署 Y

在極狐GitLab 17.3中,我們宣佈了對於合規流水線的棄用,並且將在18.0中徹底移除。取而代之的是流水線執行策略的使用,這是我們在極狐GitLab 17.2 中釋出的。

為了幫你將既有的合規流水線遷移至流水線策略型別,此版本包含了一個告警橫幅:

  • 通知使用者關於合規流水線棄用的事情。
  • 提供了一個提示和引導的工作流來將既有的合規流水線遷移至流水線執行策略型別。

使用 API 檢視令牌關聯

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

現在你可以檢視某個令牌關聯了哪些群組、子群組以及專案。這樣可以更容易地確定令牌過期或吊銷的影響,並理解令牌可以在何處使用。

極狐GitLab Chart 改進

社群版 專業版 旗艦版
SaaS
私有化部署 Y Y Y

極狐GitLab 17.5 包含了一個與 NGINX Ingress Controller 版本相關的更新。nginx-controller容器映象的版本現在是 1.11.2。請注意,此項更新需要新的 RBAC 需求,因為新的控制器在使用 endpointslices,而這需要一個 RBAC 規則來對它們進行訪問。

Omnibus 改進

社群版 專業版 旗艦版
SaaS
私有化部署 Y Y Y

極狐GitLab 17.5 包含了對單節點例項的 PostgreSQL 從 14.x 升級到 16.x 的變更。自動升級並未開啟,因此需要手動觸發才行。

極狐GitLab Runner 17.5

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

我們還發布了極狐GitLab Runner 17.5。極狐GitLab Runner 是一個輕量級、高擴充套件的代理,用來執行你的 CI/CD 作業並且將結果傳送回極狐GitLab 例項。極狐GitLab Runner 和極狐GitLab CI/CD 繫結在一起,而極狐GitLab CI/CD 是一個開源且內建在極狐GitLab 裡面的服務。

新特性:

  • 支援使用有範圍限制的臨時憑證進行 AWS S3 分段上傳功能

修復的缺陷:

  • 具有額外服務的作業,如果其中一個服務容器沒有執行的話,則作業無法完成
  • gitlab-runner-fips-17.4.0-1包在 Amazon Linux 2 上面執行失敗並返回 glibc 錯誤
  • 當在 Amazon S3 上使用 S3 Express One Zone 端點時,快取並未生效
  • 如果 DOCKER_AUTH_CONFIG變數有多個倉庫時,作業無法拉取基礎映象

使用受保護包來保障依賴安全

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署

我們很高興地宣佈此版本新增了對受保護 npm 包的支援,這個新設計的功能目的是為了加強極狐GitLab 軟體包倉庫的安全性和穩定性。在軟體研發的快節奏世界中,如果不小心修改或者刪除了某個包,就能打斷整個研發流程。受保護包透過將最重要的依賴進行安全保護來防止意外變更來很好的解決這個問題。

從極狐GitLab 17.5 開始,你可以透過建立保護規則來保護 npm 包。如果某個包與保護規則相匹配,那麼只有特定的使用者可以對其進行更新或者刪除。有了這個功能,你就可以阻止意外變更、提高合規性以及透過減少人為監督來簡化工作流。

輕鬆啟動 Kubernetes 整合

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

極狐GitLab 透過 Kubernetes agent 和 Flux 整合提供了靈活、可靠以及安全的 GitOps 支援。然而,在極狐GitLab 啟動 Flux 以及設定 Kubernetes agent 涉及大量的文件閱讀,而且需要在極狐GitLab 介面和命令列終端之間進行切換。現在,極狐GitLab 命令列提供了 glab cluster agent for bootstap命令來簡化在既有 Flux 的安裝之上對 agent 進行安裝。所以,現在僅需兩個簡單的命令就能完成 agent 和 Flux 的配置。

Kubernetes 資源事件流

社群版 專業版 旗艦版
SaaS Y Y Y
私有化部署 Y Y Y

極狐GitLab 在 Kubernetes 儀表盤上為 pod 以及 pod 日誌流提供了一個實時視角。在極狐GitLab 17.4中,我們從使用者介面提供了一個靜態的資源特定事件資訊列表。這個版本進一步改進了 Kubernetes 儀表板,讓能夠實時流式傳輸叢集中出現的事件。

高階 SAST 支援 Ruby 並且更新了規則

社群版 專業版 旗艦版
SaaS Y
私有化部署 Y

我們已經在高階 SAST 中增加了對 Ruby 的支援。如果要使用這個跨檔案、跨函式的掃描支援,需要你開啟高階 SAST。如果你已經開啟了高階 SAST,Ruby 支援就會被自動啟用。

在上個月,我們還發布了一些更新來改善高階 SAST 所支援的其他語言的檢測規則:

  • 檢測到額外的 Java 路徑遍歷、Java 命令注入和 JavaScript 路徑遍歷漏洞
  • 更新 CWE(Common Weakness Enumeration,通用弱點列舉)對映,以更具體和一致地識別漏洞型別
  • 提高路徑遍歷漏洞的嚴重性等級

如果想要檢視針對每種語言,高階 SAST 檢測到了哪些漏洞,可以檢視新的高階 SAST 覆蓋率頁面。

將群組新增到安全策略範圍

社群版 專業版 旗艦版
SaaS Y
私有化部署 Y

現在你可以在安全策略範圍內針對群組/子群組進行定位。這擴充套件了現有的選項,允許你對群組/子群組中的所有專案、基於定義的專案列表中的專案,以及對符合合規框架標籤列表的專案進行定位。

這為你在跨群組開啟策略時提供了更多的靈活性,同時在必要時也能夠對某些專案應用例外,將它們排除在強制執行範圍之外。

改善了使用者管理總結

社群版 專業版 旗艦版
SaaS
私有化部署 Y Y Y

管理員現在有一個增強的摘要檢視,可以檢視有關其例項上使用者的以下關鍵資訊:

  • 等待的稽核。
  • 沒有開啟雙因素認證。
  • 管理員。

這提高了使用者管理效率,因為管理員可以快速從摘要檢視中看到有多少使用者處於這些狀態,並對其進行過濾。

選擇性的 SAML 單點登入強制執行

社群版 專業版 旗艦版
SaaS
私有化部署 Y Y Y

之前,當開啟 SAML SSO 後,群組可以選擇強制執行 SSO,這就要求所有的成員都得用 SSO 認證來訪問該群組。然而,有些群組希望對員工或群組成員強制執行 SSO,但是對於外部貢獻者或者外包員工可以在沒有 SSO 的情況下依舊能訪問該群組。

現在,啟用了 SAML SSO 的群組會自動對所有擁有 SAML 身份的成員強制執行 SSO。沒有 SAML 身份的群組成員不會被要求使用 SSO,除非明確啟用了 SSO 強制執行。

如果以下某個條件為真或全部條件為真,一個成員就會擁有 SAML 身份:

  • 他們使用他們的極狐GitLab 群組單點登入 URL 登入極狐GitLab。
  • 他們是由 SCIM 管理的。

為了能平滑使用此功能,在選擇為此群組開啟 SAML 認證選項前確保你的 SAML 配置能夠正確工作。

相關文章