- 基于角色的訪問(wèn)控制 (RBAC – Role Based Access Control):Harbor 按項(xiàng)目來(lái)組織管理容器映像,可以集成企業(yè)內(nèi)部已有的 AD/LDAP 服務(wù) (例如 Pivotal 的 UAA – User Account Authentication) ,用于用戶身份鑒權(quán)管理。
- 容器映像存儲(chǔ):開(kāi)發(fā)人員可以通過(guò)推送 (Push) 或下拉 (Pull) 操作來(lái)上傳或下載容器映像,支持多個(gè) Harbor 服務(wù)器之間的鏡像資源復(fù)制。
- 可信容器映像服務(wù):Notary 是云原生計(jì)算基金會(huì) CNCF (Cloud Native Computing Foundation) 的官方項(xiàng)目,為容器映像提供數(shù)字簽名保護(hù),以防止對(duì)于容器映像的惡意篡改。該功能打開(kāi)之后,只有經(jīng)過(guò)數(shù)字簽名的映像才能被部署到 PKS 集群里去運(yùn)行。
- 安全漏洞掃描:Harbor 集成了安全漏洞掃描模塊 Clair,來(lái)對(duì)容器映像的代碼進(jìn)行靜態(tài)掃描,及時(shí)發(fā)現(xiàn)已知的安全漏洞 CVE (Common Vulnerabilities and Exposures)。
Harbor 中存儲(chǔ)的容器映像按照項(xiàng)目 (Project) 來(lái)存放,基于角色的訪問(wèn)控制 RBAC 就是以項(xiàng)目作為控制粒度的。Harbor 中的項(xiàng)目分為兩類:
- Public Project :所有的用戶都可以只讀方式訪問(wèn),適用于公用的容器映像。
- Private Project :用戶訪問(wèn)之前必需進(jìn)行用戶身份鑒權(quán),符合 RBAC 規(guī)定的用戶才可以訪問(wèn)。
當(dāng)用戶訪問(wèn) Private Project 時(shí),首先要?jiǎng)?chuàng)建一個(gè) secret 對(duì)象,下面的例子就是創(chuàng)建一個(gè)名為 regcred 的 secret 對(duì)象,其中用加密的方式存放了訪問(wèn) 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>
請(qǐng)點(diǎn)擊:https://www.bilibili.com/video/av23182802/觀看關(guān)于 Harbor 的演示,主要包括了以下兩個(gè)場(chǎng)景:
- Harbor 對(duì)于容器映像的安全漏洞報(bào)告;
- 只有經(jīng)過(guò)數(shù)字簽名的容器映像才能被正常地部署和運(yùn)行。