自動掃描 OS 套件

瞭解如何啟用自動掃描功能、將容器映像檔推送至 Artifact Registry,以及查看映像檔中發現的安全漏洞清單。

每當映像檔推送至 Artifact Registry 時,Artifact Analysis 就會掃描安全漏洞。平台管理員和應用程式開發人員可使用這項自動掃描功能,協助找出軟體交付管道中的風險。

本快速入門導覽課程會使用簡單的公開套件,示範一種套件掃描類型。根據預設,啟用掃描 API 後,Artifact Analysis 會掃描多種套件類型的安全漏洞。支援的套件類型包括:OS、Go、Java (Maven)、Python 和 Node.js (npm)。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. 安裝 Google Cloud CLI。

  3. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  4. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  5. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替換為 Google Cloud 專案名稱。

  6. 確認專案已啟用計費功能 Google Cloud

  7. 啟用 Artifact Registry 和 Container Scanning API:

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. 安裝 Google Cloud CLI。

  9. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  10. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  11. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替換為 Google Cloud 專案名稱。

  12. 確認專案已啟用計費功能 Google Cloud

  13. 啟用 Artifact Registry 和 Container Scanning API:

    啟用 API 時所需的角色

    如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com

在 Artifact Registry 中建立 Docker 存放區

您必須建立 Docker 存放區,以便儲存本快速入門教學導覽課程所用的範例映像檔。

  1. 在 Google Cloud 控制台中開啟「Repositories」(存放區) 頁面。

    開啟「存放區」頁面

  2. 點選「Create Repository」

  3. 在「Create Repository」(建立存放區) 頁面中,輸入下列設定:

    • Name (名稱):quickstart-docker-repo
    • 格式:Docker
    • 模式:標準
    • 位置類型:區域
    • Region (區域):us-central1
  4. 點選「建立」

畫面會顯示「Repositories」頁面。quickstart-docker-repo 存放區會新增至存放區清單。

設定驗證機制

如要使用 Artifact Registry 推送或提取映像檔,請先設定 Docker,透過 Google Cloud CLI 驗證傳送至 Artifact Registry 的要求。

在 Cloud Shell 或本機殼層中,為 us-central1 區域的 Docker 存放區設定驗證機制:

gcloud auth configure-docker us-central1-docker.pkg.dev

取得套件

  1. 切換至要儲存容器映像檔的目錄。

  2. 將圖片複製到本機目錄。舉例來說,您可以使用 Docker 從 Docker Hub 提取最新版 Ubuntu 映像檔。

    docker pull ubuntu:latest
    

使用存放區名稱為套件加上標記

如要將套件推送至 Artifact Registry,您需要設定 docker push 指令,將映像檔推送至特定位置。

執行下列指令,將映像檔標記為 quickstart-image:tag1

docker tag ubuntu:latest \
us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

地點

  • PROJECT 是您的 Google Cloud 專案 ID。 如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案
  • us-central1 是 Artifact Registry 存放區區域。
  • docker.pkg.dev 是 Docker 存放區的主機名稱。
  • quickstart-image 是您要用於存放區的映像檔名稱。 可以使用和本機映像檔不同的名稱。
  • tag1 是您要新增至 Docker 映像檔的標記。如果您沒有指定標記,Docker 會套用預設標記 latest

將映像檔推送至 Artifact Registry

將新的映像檔上傳至 Artifact Registry 時,容器分析會自動掃描這些映像檔。

如要將映像檔推送至 Artifact Registry 中的 Docker 存放區,請執行下列指令:

docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

PROJECT 替換為 Google Cloud 專案 ID。 如果您的專案 ID 包含冒號 (:),請參閱網域範圍專案

查看安全漏洞掃描結果

如要查看映像檔中的安全漏洞:

  1. 在 Artifact Analysis 控制台中開啟 Artifact Registry 存放區清單。

    開啟「Repositories」(存放區) 頁面

  2. 在存放區清單中,按一下存放區。

  3. 按一下圖片名稱。

    畫面上會顯示圖片的摘要清單。

    每個映像檔摘要的安全漏洞總數會顯示在「Vulnerabilities」(安全漏洞) 資料欄中。

    發生安全漏洞的映像檔螢幕擷取畫面

  4. 按一下「Vulnerabilities」(安全漏洞) 欄中連結的安全漏洞總數。

    系統隨即會顯示安全漏洞清單。

    映像檔清單和安全漏洞詳細資料的螢幕截圖

    安全漏洞清單會顯示映像檔的掃描次數、安全漏洞嚴重程度、修正可用性、內含安全漏洞的套件名稱和套件類型。

  5. 如要深入瞭解安全漏洞來源的特定安全漏洞,請按一下「Name」(名稱) 資料欄中的連結 CVE 識別碼。

查看結果的其他方式

Google Cloud 控制台最多會顯示 1200 個安全漏洞。如果映像檔有超過 1200 個安全漏洞,請使用 gcloudAPI 查看完整清單。

清除所用資源

為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。

如果您是為了本指南建立新專案,現在可以刪除該專案。

  1. 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。

    前往「Manage resources」(管理資源)

  2. 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)
  3. 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。

後續步驟