使用 Amazon Inspector Jenkins 插件 - Amazon Inspector

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Inspector Jenkins 插件

此Jenkins外掛程式利用 Amazon Inspector 產生SBOM器二進位檔和 Amazon Inspector 掃描API,在建置結束時產生詳細的報告,讓您可以在部署之前調查並修復風險。使用 Amazon Inspector Jenkins 外掛程式,您可以將 Amazon Inspector 漏洞掃描添加到您的Jenkins管道。Amazon Inspector 弱點掃描可設定為根據偵測到的弱點數量和嚴重性來通過或失敗管道執行。您可以在Jenkins市場上查看該Jenkins插件的最新版本 https://plugins.jenkins.io/amazon-inspector-image-scanner/. 下列步驟說明如何設定 Amazon Inspector Jenkins 外掛程式。

重要

在完成下列步驟之前,您必須將 Jenkins 升級至 2.387.3 版或更高版本,才能執行外掛程式。

步驟 1. 設置一個 AWS 帳戶

設定 AWS 帳戶 具有允許存取 Amazon Inspector 掃描的IAM角色API。如需說明,請參閱設置一個 AWS 帳戶以使用 Amazon Inspector CI/CD 集成

步驟 2. 安裝 Amazon Inspector 詹金斯插件

下面的過程描述了如何從Jenkins儀表板安裝 Amazon Inspector 詹金斯插件。

  1. 從詹金斯儀表板,選擇管理詹金斯,然後選擇管理插件。

  2. 選擇 [可用]。

  3. 在「可用」索引標籤中搜尋 Amazon Inspector 掃描,然後安裝外掛程式。

(選擇性) 步驟 3。將 docker 認證添加到 Jenkins

注意

如果 docker 映像位於私有存儲庫中,則僅添加 docker 憑據。否則,請跳過這個步驟。

下列程序說明如何從Jenkins儀表板將 docker 認證新增Jenkins至。

  1. 從詹金斯儀表板,選擇管理詹金斯憑據,然後系統。

  2. 選擇全域認證,然後選擇新增認證

  3. 對於種類,選取使用者名稱與密碼

  4. 對於範圍,選擇全局(詹金斯,節點,項目,所有子項目等)

  5. 輸入您的詳細資訊,然後選擇 [確定]

(選擇性) 步驟 4。新增 AWS 認證

注意

如果您要根據IAM使用者進行驗證,請僅新增 AWS 認證。否則,請跳過這個步驟。

下列程序說明如何從Jenkins儀表板新增 AWS 認證。

  1. 從詹金斯儀表板,選擇管理詹金斯憑據,然後系統。

  2. 選擇全域認證,然後選擇新增認證

  3. 對於種類,選取AWS認證

  4. 輸入您的詳細資訊,包括您的存取金鑰 ID秘密存取金鑰,然後選擇 [確定]

步驟 5. 在Jenkins腳本中添加CSS支持

下列程序說明如何在Jenkins指令碼中新增CSS支援。

  1. 重新啟動 Jenkins。

  2. 從儀表板中,選擇管理 Jenkins節點、內建節,然後選擇指令碼主控台

  3. 在文字方塊中,新增該行System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", ""),然後選擇 [執行]。

步驟 6. 添加 Amazon Inspector 掃描到您的構建

您可以在專案中新增建置步驟或使用Jenkins宣告式管道,將 Amazon Inspector Scan 新增至您的組建。

Amazon Inspector 掃描到您的構建,在您的項目中添加一個構建步驟

  1. 在 [設定] 頁面上,向下捲動至 [建置步驟],然後選擇 [新增建置步驟]。然後選擇 Amazon Inspector 掃描

  2. 在兩種檢測器-sbomgen 安裝方式之間進行選擇:自動或手動。

    1. (選項 1) 選擇自動下載最新版本的檢測器-sbomgen. 如果您選擇此方法,請務必選取符合執行外掛程式之系統的CPU架構。

    2. (選項 2)如果要設置 Amazon Inspector SBOM 器生成器二進製文件進行掃描,請選擇手動。如果您選擇此方法,請確保提供檢查器-sbomgen 先前下載版本的完整路徑。

    有關更多信息,請參閱安裝 Amazon Inspector 查SBOM器生成器 (安裝) 在 Amazon Inspector 查器發生器. SBOM

  3. 完成以下步驟以完成 Amazon Inspector 掃描建置步驟的設定:

    1. 輸入您的圖像 ID。影像可以是本機、遠端或封存影像。影像名稱應遵循Docker命名慣例。如果要分析匯出的影像,請提供預期 tar 檔案的路徑。請參閱下列範例影像 ID 路徑:

      1. 對於本機或遠端容器:NAME[:TAG|@DIGEST]

      2. 對於 tar 文件:/path/to/image.tar

    2. 選取AWS 區域要透過傳送掃描要求。

    3. (選擇性) 對於 Docker 認證,請選取您的Docker使用者名稱。只有當您的容器映像位於私有存儲庫中時,才執行此操作。

    4. (選擇性) 您可以提供下列支援的 AWS 驗證方法:

      1. (可選)對於IAM角色,請提供一個角色ARN(arn: aw:iam::AccountNumber:角色/RoleName).

      2. (選擇性) 對於AWS認證,請選取要根據IAM使用者進行驗證的 ID

      3. (選擇性) 對於AWS 設定檔名稱,請提供要使用設定檔名稱進行驗證的設定檔名稱。

    5. (選擇性) 指定每個嚴重性的弱點閾值。如果在掃描期間超過您指定的數目,映像建立將會失敗。如果值為全部0,則無論是否發現任何漏洞,組建都會成功。

  4. 選擇儲存

使用Jenkins宣告式管道將 Amazon Inspector 掃描新增至您的組建

您可以使用 Jenkins 宣告式管道自動或手動將 Amazon Inspector 掃描新增至您的組建。

若要自動下載SBOMGen宣告式管線
  • 若要將 Amazon Inspector 掃描新增至組建,請使用下列範例語法。根據 Amazon Inspector SBOM 器生成器下載的首選操作系統架構,替換 SBOMGEN_SOURCE 與linuxAmd六十四或linuxArm六十四。Replace (取代) IMAGE_PATH 與您的圖像的路徑(例如 alpine:latest), IAM_ROLE 使用ARN您在步驟 1 中配置的IAM角色,以及 ID 如果您使用的是私有存儲庫,請使用您的Docker憑據 ID。您可以選擇性地啟動弱點閾值,並指定每個嚴重性的值。

pipeline { agent any stages { stage('amazon-inspector-image-scanner') { steps { script { step([ $class: 'com.amazon.inspector.jenkins.amazoninspectorbuildstep.AmazonInspectorBuilder', sbomgenSource: 'SBOMGEN_SOURCE', // this can be linuxAmd64 or linuxArm64 archivePath: 'IMAGE_PATH', awsRegion: 'REGION', iamRole: 'IAM ROLE', credentialId: 'Id', // provide empty string if image not in private repositories awsCredentialId: ''AWS ID;', awsProfileName: 'Profile Name', isThresholdEnabled: false, countCritical: 0, countHigh: 0, countLow: 10, countMedium: 5, ]) } } } } }
若要手動下載SBOMGen宣告式管線
  • 若要將 Amazon Inspector 掃描新增至組建,請使用下列範例語法。Replace (取代) SBOMGEN_PATH 與您在步驟 3 中安裝的 Amazon Inspector SBOM 器發電機的路徑,IMAGE_PATH 與您的圖像的路徑(例如 alpine:latest), IAM_ROLE 使用ARN您在步驟 1 中配置的IAM角色,以及 ID 如果您使用的是私有存儲庫,請使用您的Docker憑據 ID。您可以選擇性地啟動弱點閾值,並指定每個嚴重性的值。

注意

放置Sbomgen在詹金斯目錄中,並在插件中提供詹金斯目錄的路徑(如 /opt/folder/arm64/inspector-sbomgen).

pipeline { agent any stages { stage('amazon-inspector-image-scanner') { steps { script { step([ $class: 'com.amazon.inspector.jenkins.amazoninspectorbuildstep.AmazonInspectorBuilder', sbomgenPath: 'SBOMGEN_PATH', archivePath: 'IMAGE_PATH', awsRegion: 'REGION', iamRole: 'IAM ROLE', awsCredentialId: ''AWS ID;', credentialId: 'Id;', // provide empty string if image not in private repositories awsProfileName: 'Profile Name', isThresholdEnabled: false, countCritical: 0, countHigh: 0, countLow: 10, countMedium: 5, ]) } } } } }

步驟 7. 查看您的 Amazon Inspector 漏洞報告

  1. 完成項目的新構建。

  2. 建置完成後,請從結果中選取輸出格式。如果您選取此選項HTML,您可以選擇下載JSONSBOM或CSV版本的報告。以下顯示HTML報表的範例:

Amazon Inspector 漏洞報告示例。

故障診斷

以下是您在使用 Amazon Inspector 掃描外掛程式時可能會遇到的常見錯誤Jenkins。

無法載入認證或 sts 例外狀況錯誤

錯誤:

InstanceProfileCredentialsProvider(): Failed to load credentials or sts exception.

重新排序

獲取aws_access_key_idaws_secret_access_key為您的 AWS 帳戶。設定aws_access_key_idaws_secret_access_key在中~/.aws/credentials

Inspector-檢查器路徑錯誤

錯誤:

Exception:com.amazon.inspector.jenkins.amazoninspectorbuildstep.exception.SbomgenNotFoundException: There was an issue running inspector-sbomgen, is /opt/inspector/inspector-sbomgen the correct path?

解決方法:

請完成下列程序來解決問題。

  1. 在Jenkins目錄中放置正確的作業系統架構檢查器-sbomgen 如需詳細資訊,請參閱亞馬遜 Inspector 查器產生器。SBOM

  2. 使用以下命令將可執行權限授予二進製文件:chmod +x inspector-sbomgen

  3. 在插件中提供正確的Jenkins機器路徑,例如/opt/folder/arm64/inspector-sbomgen

  4. 儲存設定並執行Jenkins工作。