將映像檔推送至 Harbor,透過角色型存取控制、自動安全漏洞掃描,以及簡化容器化應用程式的映像檔管理作業,提升安全性。如要將本機映像檔推送到 Harbor 執行個體,請使用存放區名稱標記映像檔,然後推送映像檔。
事前準備
如要推送映像檔,必須使用必要的資源和權限 (包括現有的 Harbor 專案) 設定環境。詳情請參閱「建立 Harbor 專案」。
必要的 IAM 角色
如要將映像檔推送至 Harbor 登錄檔執行個體,請聯絡專案 IAM 管理員,要求下列角色:
- Harbor 執行個體檢視者 (
harbor-instance-viewer):在專案命名空間中取得、列出及監控 Harbor 執行個體。這個角色具備查看現有 Harbor 執行個體詳細資料所需的權限,因此您可以擷取推送映像檔所需的登錄網址。
必要的 Harbor RBAC 角色
與 GDC IAM 角色不同,推送映像檔需要 Harbor 內部角色型存取權控管 (RBAC) 系統中的特定權限。向管理員要求必要權限。強制執行最小權限原則,僅要求特定工作所需的角色。
- 開發人員:將映像檔推送至 Harbor 存放區時需要這個角色。如要進一步瞭解所有可用角色,請參閱 Harbor 說明文件,瞭解各角色的使用者權限:https://goharbor.io/docs/2.12.0/administration/managing-users/user-permissions-by-role/。
標記本機映像檔
如要為本機映像檔加上存放區名稱的標記,請按照下列步驟操作:
- 您必須通過 Harbor 執行個體的驗證。詳情請參閱「為 Harbor 登錄檔執行個體設定 Docker 驗證」。
設定圖片名稱。完整圖片名稱的格式如下:
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE更改下列內容:
INSTANCE_URL:Harbor 執行個體的網址。例如:harbor-1.org-1.zone1.google.gdc.test。使用 GDC 控制台或 gdcloud CLI 取得 Harbor 執行個體的網址。HARBOR_PROJECT_NAME:Harbor 專案的名稱。例如:my-project.IMAGE_NAME:圖片名稱。例如:nginx.
完整圖片名稱範例如下:
harbor-1.org-1.zone1.google.gdc.test/my-project/nginx為本機映像檔加上存放區名稱的標記:
docker tag SOURCE-IMAGE INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
更改下列內容:
SOURCE-IMAGE:本機圖片名稱或圖片 ID。例如:nginx。TAG:標記名稱。例如,staging。如未指定,Docker 預設會套用最新標記。
將加上標記的映像檔推送至 Harbor 登錄檔執行個體
為映像檔加上標記後,將其推送至 Harbor 登錄檔執行個體:
- 請確認您已通過驗證,可以存取 Harbor 執行個體。
- 執行下列指令,推送加上標記的映像檔:
docker push
INSTANCE_URL/HARBOR_PROJECT_NAME/IMAGE:TAG
推送映像檔時,系統會將其儲存在指定的執行個體和 Harbor 專案中。
推送映像檔後,請前往 Harbor 執行個體使用者介面查看映像檔。
後續步驟
將映像檔推送至 Harbor 登錄檔後,即可將其拉取至本機環境進行驗證。您也可以設定標記保留規則,自動維護存放區,並查看安全性掃描結果來偵測安全漏洞: