posted

0 Comments

PKS 中包含了容器映像倉庫 Harbor,Harbor 是一個用於存儲和分發容器映像的企業級 Registry 伺服器,支持一系列企業級運行環境必需的功能:

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

Harbor 中存儲的容器映像按照項目 (Project) 來存放,基於角色的訪問控制 RBAC 就是以項目作為控制粒度的。Harbor 中的項目分為兩類:

  • Public Project :所有的用戶都可以只讀方式訪問,適用於公用的容器映像。
  • Private Project :用戶訪問之前必需進行用戶身份鑒權,符合 RBAC 規定的用戶才可以訪問。

 

當用戶訪問 Private Project 時,首先要創建一個 secret 對象,下面的例子就是創建一個名為 regcred 的 secret 對象,其中用加密的方式存放了訪問 Harbor 的用戶身份鑒權信息 (用戶名和密碼),這樣可以避免在腳本中用明文方式引用用戶密碼,避免不必要的安全漏洞。

kubectl create secret docker-registry regcred –docker-server=<your-registry-server> –docker-username=<your-name> –docker-password=<your-pword> –docker-email=<your-email>

 

接下來請大家看一段關於 Harbor 的演示,主要包括了以下兩個場景:

  • Harbor 對於容器映像的安全漏洞報告;
  • 只有經過數字簽名的容器映像才能被正常地部署和運行。