- 基于角色的訪問控制 (RBAC – Role Based Access Control):Harbor 按項目來組織管理容器映像,可以集成企業(yè)內(nèi)部已有的 AD/LDAP 服務(wù) (例如 Pivotal 的 UAA – User Account Authentication) ,用于用戶身份鑒權(quán)管理。
- 容器映像存儲:開發(fā)人員可以通過推送 (Push) 或下拉 (Pull) 操作來上傳或下載容器映像,支持多個 Harbor 服務(wù)器之間的鏡像資源復(fù)制。
- 可信容器映像服務(wù):Notary 是云原生計算基金會 CNCF (Cloud Native Computing Foundation) 的官方項目,為容器映像提供數(shù)字簽名保護,以防止對于容器映像的惡意篡改。該功能打開之后,只有經(jīng)過數(shù)字簽名的映像才能被部署到 PKS 集群里去運行。
- 安全漏洞掃描:Harbor 集成了安全漏洞掃描模塊 Clair,來對容器映像的代碼進行靜態(tài)掃描,及時發(fā)現(xiàn)已知的安全漏洞 CVE (Common Vulnerabilities and Exposures)。

Harbor 中存儲的容器映像按照項目 (Project) 來存放,基于角色的訪問控制 RBAC 就是以項目作為控制粒度的。Harbor 中的項目分為兩類:
- Public Project :所有的用戶都可以只讀方式訪問,適用于公用的容器映像。
- Private Project :用戶訪問之前必需進行用戶身份鑒權(quán),符合 RBAC 規(guī)定的用戶才可以訪問。
當(dāng)用戶訪問 Private Project 時,首先要創(chuàng)建一個 secret 對象,下面的例子就是創(chuàng)建一個名為 regcred 的 secret 對象,其中用加密的方式存放了訪問 Harbor 的用戶身份鑒權(quán)信息 (用戶名和密碼),這樣可以避免在腳本中用明文方式引用用戶密碼,避免不必要的安全漏洞。
kubectl create secret docker-registry regcred –docker-server=<your-registry-server> –docker-username=<your-name> –docker-password=<your-pword> –docker-email=<your-email>
請點擊:https://www.bilibili.com/video/av23182802/觀看關(guān)于 Harbor 的演示,主要包括了以下兩個場景:
- Harbor 對于容器映像的安全漏洞報告;
- 只有經(jīng)過數(shù)字簽名的容器映像才能被正常地部署和運行。