在 Kubernetes 上部署微服務 IAST 代理程式

AppScan 支援在 Kubernetes 叢集上自動安裝 IAST 代理程式。若使用 MutatingAdmissionWebhook,IAST 代理程式會自動安裝在任何啟動的 Pod 中。您可以使用 Helm 或 Webhook 指令碼安裝或移除代理程式。

執行這項作業的原因和時機

在 Kubernetes 上安裝 IAST 代理程式的步驟圖例,支援 Java、.NET 與 Node.js 應用程式。

顯示在 Kubernetes 上安裝的影像

一般說明

程序

  1. 下載代理程式:

    此處說明下載 AppScan 360° Kubernetes IAST 代理程式,並解壓縮 ZIP 檔案內容。

  2. 在叢集中安裝 IAST 代理程式:

    此代理程式可安裝於一或多個名稱空間。系統會部署 MutatingAdmissionWebhook,並自動將 IAST 代理程式注入至所選名稱空間中建立的每個新 Pod。如果未指定名稱空間,則會使用預設名稱空間。

  3. 重新啟動現有 Pod:

    安裝完成後,重新啟動目標名稱空間中任何正在執行的 Pod,以確保 IAST 代理程式已成功注入。

  4. 在問題中檢視 Pod 名稱:

    已回報問題的 Pod 名稱可在問題詳細資料標籤中的其他資訊下看到。

  5. 選擇性的: 提供下列選用功能:
    1. 自訂代理程式配置:可用於排除特定 Pod。
    2. IAST 分析工具:提供完整的服務圖形視圖,並可減少誤報。目前僅支援 Node.js.NET

      顯示 Kubernetes Pod 指令注入問題的服務圖表。

以 Helm 為基礎的安裝

執行這項作業的原因和時機

若要使用 Helm 圖表在 Kubernetes 叢集中安裝或解除安裝 IAST 代理程式,請依照下列步驟操作。

程序

  1. 安裝 IAST 代理程式:

    依照下列說明安裝 IAST 代理程式。安裝後,重新啟動目標名稱空間中任何正在執行的 Pod 以完成安裝。

    1. 預設名稱空間中安裝:

      helm install secagent helm-secagent --wait

    2. 在一或多個名稱空間中安裝:
      helm install secagent helm-secagent --wait --set 
                          config.namespaceConfig.namespaces={my-namespace,my-second-namespace}
    3. 選擇性的: 在啟用分析工具的情況下安裝:
      helm install secagent helm-secagent --wait \
                        --set config.namespaceConfig.namespaces={my-namespace} \
                        --set analyzer.enabled=true 
  2. 解除安裝 IAST 代理程式:執行此指令:

    helm uninstall secagent

    此操作會移除名為 secagent 的 Helm 版本。接著,重新啟動所有正在執行的 Pod 以完成移除作業。

    如需進階配置與完整文件,請參閱 helm-secagent/README.md

以指令碼為基礎的安裝

執行這項作業的原因和時機

若要使用指令碼在 Kubernetes 叢集中安裝或解除安裝 IAST 代理程式,請依照下列步驟操作。

程序

  1. 安裝 IAST 代理程式

    依照下列說明安裝 IAST 代理程式。安裝後,重新啟動目標名稱空間中任何正在執行的 Pod 以完成安裝。

    1. 預設名稱空間中安裝:

      ./install-secagent-webhook.sh

    2. 在一或多個名稱空間中安裝:
      ./install-secagent-webhook.sh -n my-namespace -n my-second-namespace
    3. 選擇性的: 在啟用分析工具的情況下安裝:
      ./install-secagent-webhook.sh -n my-namespace --with-analyzer
  2. 解除安裝 IAST 代理程式:執行此指令:

    ./uninstall-secagent-webhook.sh

    指令碼執行完成後,重新啟動所有正在執行的 Pod 以完成移除作業。

從 IAST 安裝中排除 Pod

程序

  1. 在已納入的名稱空間中排除特定 Pod。

    在 Pod 的 YAML 配置中新增 skip-iast-webhook="true" 標籤。

    任何使用此標籤建立的新 Pod 都會被 IAST 變化 Webhook 忽略。
  2. 若要再次納入該 Pod,請移除此標籤或將其設為 false,然後重新啟動 Pod。