您可以選擇將自己的中繼資料提供給構件分析,以滿足特定業務需求。例如,針對客戶的 Docker 容器提供安全管理服務的機構,可以使用 Artifact Analysis 儲存及擷取映像檔中與安全性相關的中繼資料。
請按照下列步驟,使用 Artifact Analysis API 提供映像檔的自訂安全漏洞中繼資料。您可以按照相同的操作說明,儲存及擷取 Artifact Analysis 支援的各種中繼資料。
事前準備
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Container Analysis API.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Container Analysis API.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
- 瞭解如何為專案中的中繼資料設定存取權控管。如果您只使用 Artifact Analysis 容器掃描建立的安全漏洞例項中繼資料,請略過這個步驟。
建立名為
note.json
的檔案,其中含有安全漏洞的說明和詳細資料。下列程式碼顯示note.json
檔案範例:{ "shortDescription": "A brief Description of the note", "longDescription": "A longer description of the note", "kind": "VULNERABILITY", "vulnerability": { "details": [ { "affectedPackage": "libexempi3", "affectedCpeUri": "cpe:/o:debian:debian_linux:7", "affectedVersionStart": { "name": "2.5.7", "revision": "1", "kind": "MINIMUM"}, "affectedVersionEnd": { "name": "2.5.9", "revision": "1", "kind": "MINIMUM"}, }, { "affectedCpeUri": "cpe:/o:debian:abc:10", "affectedPackage": "anotherPackage", } ] } }
如要進一步瞭解記事的 JSON 表示法,請參閱記事 API 說明文件。
執行下列 curl 指令來建立記事:
curl -v -H "Content-Type: application/json" -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ https://containeranalysis.googleapis.com/v1/projects/PROVIDER_PROJECT_ID/notes?note_id=NOTE_ID -d @note.json
其中:
- PROVIDER_PROJECT_ID 是您的專案 ID。
- NOTE_ID 會指定附註的 ID。使用長度上限為 100 個字元的字串。
建立名為
occurrence.json
的檔案,並在當中加入下列內容:{ "resourceUri": "<resource_url>", "noteName": "projects/<provider-project-id>/notes/<note_id>", "kind": "VULNERABILITY", "vulnerability": { "packageIssue": [{ "affectedCpeUri": "cpe:/o:debian_linux:7", "affectedPackage": "packageName", "affectedVersion": { "kind": "NORMAL", "name": "8.1", "revision": "3" }, "fixedCpeUri": "cpe:/o:debian_linux:7", "fixedPackage": "packageName", "fixedVersion": { "kind": "MAXIMUM" } }] "severity": "LOW" } }
其中:
- resource_url 是與事件相關聯的資源網址,例如
https://us-central1-docker.pkg.dev/my-project/my-repository/my-image@sha256:123
。 - note_id 會指定附註的 ID。使用字串,長度上限為 100 個字元。
如要進一步瞭解發生事項的 JSON 表示法,請參閱發生事項 API 說明文件。
- resource_url 是與事件相關聯的資源網址,例如
執行下列 curl 指令,其中的 CUSTOMER_PROJECT_ID 是客戶的專案 ID:
curl -v -H "Content-Type: application/json" -H \ "Authorization: Bearer $(gcloud auth print-access-token)" \ https://containeranalysis.googleapis.com/v1/projects/CUSTOMER_PROJECT_ID/occurrences -d @occurrence.json
如要瞭解如何查看及篩選容器映像檔的註記和例項,請參閱查看安全漏洞例項。
如需設定通知的操作說明,請參閱「Pub/Sub 通知」。
建立專案的附註和例項
本節說明如何建立附註和例項。在本範例中,您將使用 VULNERABILITY
種類。
供應商必須在專案中建立每種安全漏洞的註記,並在客戶的專案中建立這些安全漏洞的例項記錄。
建立附註
請按照下列步驟建立記事並提供記事 ID。
API
Java
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Java API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Go
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Go API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Node.js API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Ruby
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Ruby API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Python API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
為註記建立例項
如何為註記建立例項:
API
Java
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Java API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Go
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Go API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Node.js API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Ruby
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Ruby API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Python API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
取得特定註記的所有例項
您可以使用 notes.occurrences.list()
查看客戶專案中特定安全漏洞的所有例項。
API
如要列出特定註記的所有例項,請傳送 GET 要求,如下所示:
GET https://containeranalysis.googleapis.com/v1/projects/PROJECT_ID/notes/NOTE_ID/occurrences
如需完整的詳細資料,請參閱 projects.notes.occurrences.list
API 端點。
Java
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Java API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Go
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Go API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Node.js API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Ruby
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Ruby API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Artifact Analysis 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Artifact Analysis Python API 參考說明文件。
如要向 Artifact Analysis 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。