自動掃描 OS 套件

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

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

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

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

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

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

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. Install the Google Cloud CLI.

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

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

    gcloud init
  11. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  14. 在 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 識別碼連結。

    查看結果的其他方式

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

    清除所用資源

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

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

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    後續步驟