共用方式為


整合 適用於雲端的 Defender CLI 與 CI/CD 管線

適用於雲端的 Defender 命令行介面 (CLI) 是一種應用程式,可用於持續整合和持續部署 (CI/CD) 管線。 它會執行靜態分析工具,並將程式代碼連線到雲端服務。 您可以在任何建置程式中使用 適用於雲端的 Defender CLI,透過內建安全性掃描器掃描映像是否有安全性弱點。 它會將掃描結果傳送至 適用於雲端的 Defender 入口網站。 Cloud Security Explorer 接著可以存取容器映射及其弱點。

必要條件

  • 已上線 適用於雲端的 Defender的 Azure 訂用帳戶。 如果您尚未擁有 Azure 帳戶,請建立免費帳戶

  • 下列其中一個 CI/CD 管線工具:Jenkins、BitBucket Pipelines、Google Cloud Build、Bamboo、CircleCI、Travis CI、TeamCity、Oracle DevOps 服務、AWS CodeBuild

  • 針對 Azure DevOps,Azure DevOps 組織上安裝的 Microsoft Security DevOps (MSDO) 延伸模組

  • 已啟用Defender CSPM

  • 建立用戶端識別碼和秘密的安全性系統管理員許可權。

設定

在下列各節中,我們會說明如何擷取用戶端標識碼和秘密、更新 CI/CD 管線腳本,以及將環境變數新增至 CI/CD 管線。

擷取 API 令牌

若要允許將來自 適用於雲端的 Defender CLI 的安全性資料傳遞至 適用於雲端的 Defender 後端,適用於雲端的 Defender 中的安全性系統管理員必須先從 適用於雲端的 Defender 產生 API 金鑰以進行驗證。

產生令牌時,安全性系統管理員會選取要與令牌相關聯的訂用帳戶範圍。 從此令牌「推送」到 適用於雲端的 Defender 的數據會限定為令牌所關聯的訂用帳戶。 這些 API 令牌是不可變的,只能產生/刪除。

安全性系統管理員必須從該處安全地將令牌傳遞至要新增至 CI/CD 管線的開發人員。

  1. 登入 Azure 入口網站

  2. 移至 [適用於雲端的 Microsoft Defender> 管理>環境設定>整合]。

    適用於雲端的 Defender 中的 [整合環境設定] 螢幕快照。

  3. 選取 [新增整合 ],然後選取 [DevOps Ingestion]。

    新DevOps擷取選項的螢幕快照。

  4. 輸入令牌的描述性名稱,選取的租用戶會儲存令牌資訊。 當您輸入秘密的描述和到期日時,會產生客戶端密碼。

    新增DevOps擷取整合的螢幕快照。

  5. 在組態啟用令牌,並建立令牌。

    建立DevOps擷取和建立令牌的螢幕快照。

  6. 複製每個令牌。 選取 [ 確定] 之後,就無法編輯或擷取它們/

    成功建立DevOps擷取的螢幕快照。

  7. [整合] 數據表中,會顯示新的 擷取

    具有新擷取的DevOps Integrations資料表螢幕快照。

更新 CI/CD 管線腳本

每個 CI/CD 管線工具都有不同的語法。 此程式代碼是 Bitbucket 管線的範例:

image: atlassian/default-image:3
 
pipelines:
  default:
    - parallel:
      - step:
          name: 'MSDO trivy test'
          script:
            - curl -L -o ./msdo_linux.zip https://www.nuget.org/api/v2/package/Microsoft.Security.DevOps.Cli.linux-x64/
            - unzip ./msdo_linux.zip
            - chmod +x tools/guardian
            - chmod +x tools/Microsoft.Guardian.Cli
            - ls -lah .
            - tools/guardian init --force
            - tools/guardian run -t trivy --export-file ./ubuntu-test.sarif --publish-file-folder-path ./ubuntu-test.sarif            

管線變數

在安全地接收令牌之後,開發人員必須設定金鑰的環境變數。 環境變數會透過開發人員可從 curl 接收的殼層腳本傳遞至 CLI,或手動將殼層腳本複製到其存放庫。

名稱
GDN_PUSH_TOKEN_CLIENT_ID <用戶端識別碼>
GDN_PUSH_TOKEN_CLIENT_ID <用戶端識別碼>
GDN_PUSH_TOKEN_CLIENT_SECRET <用戶端祕密>
GDN_PIPELINENAME bitbucket、jenkins、gcp、bamboo、circle、travis、teamcity、oci、aws
GDN_PUSH_TOKEN_TENANT_ID <租用戶標識碼>

在 Cloud Security Explorer 中檢閱結果

  1. 成功執行管線之後,請再次流覽至 適用於雲端的 Microsoft Defender。

  2. 在 [適用於雲端的 Defender] 功能表中,選取 [雲端安全性總管]。

  3. 選取 [ 選取資源類型 ] 下拉式列表,選取 [DevOps],然後選取 [ 完成]。

    Cloud Security Explorer 中 CI/CD 管線的螢幕快照。

  4. +選取圖示以新增搜尋準則。

    Cloud Security Explorer 中新搜尋的螢幕快照。

  5. 選擇 [ 選取條件 ] 下拉式清單。 然後選取 [ 數據],然後選取 [ 推送]。

    選取 [雲端安全性總管] 條件的螢幕快照。

  6. 選擇 [ 選取資源類型 ] 下拉式清單。 然後選取 [容器],然後選取 [容器映射],然後選取 [完成]。

    在 Cloud Security Explorer 中選取容器映射的螢幕快照。

  7. 選取在環境設定中建立整合期間選取的範圍。

    選取 [雲端安全性總管] 範圍的螢幕快照。

  8. 選取 [搜尋]

    在 Cloud Security Explorer 中搜尋的螢幕快照。

  9. 請參閱管線到影像對應的結果。

與受監視的容器相互關聯

  1. 在 Cloud Security Explorer 中,輸入下列查詢:CI/CD 管線 -管線 + 容器映射 ->>包含在容器緩存器 (group) 中。 +

  2. 檢閱 資源名稱 以查看容器對應。