在 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 的安装

关于此任务

要在 Kubernetes 集群中使用 Helm 图表安装或卸载 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。

    将标签 skip-iast-webhook="true" 添加到 Pod 的 YAML 配置中。

    IAST 突变 webhook 将忽略使用此标签创建的任何新 Pod。
  2. 要再次包含该 Pod,请删除此标签或将其设置为 false,然后重新启动该 Pod。