您可以選擇將自己的中繼資料提供給「Artifact Analysis」,以滿足特定業務需求。舉例來說,針對客戶的 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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
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.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
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 表示法,請參閱 notes 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 表示法,請參閱 occurrences 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 用戶端程式庫」。詳情請參閱 Artifact Analysis Java API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Go API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Node.js API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Ruby API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Python API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
為註記建立例項
如何為註記建立例項:
API
Java
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Java API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Go API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Node.js API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Ruby API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「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 用戶端程式庫」。詳情請參閱 Artifact Analysis Java API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Go
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Go API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Node.js API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Ruby
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Ruby API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Artifact Analysis 用戶端程式庫,請參閱「Artifact Analysis 用戶端程式庫」。詳情請參閱 Artifact Analysis Python API 參考說明文件。
如要向 Artifact Analysis 驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。