设置 AppScan 360° Static Analysis 环境

在安装 AppScan 360° Static Analysis 之前,设置环境以实现最佳部署。

在安装和部署 AppScan 360° Static Analysis 的环境中,需要设置一些先决条件工具才能获得最佳性能:

HCL 标识

您的 HCL 标识会将您的帐户与有效的许可证以及对软件和支持的访问权相关联。访问 HCL 许可证和下载门户和 HCL Harbor 时,需要此项。

有关创建 HCL 标识以及访问许可证和软件的完整信息,请参阅本文档

Linux 系统

需要 Ubuntu 或 Red Hat Enterprise Linux 系统才能启动部署。实际部署可以位于远程 Kubernetes 集群(例如 Azure Kubernetes Service 中的集群),但部署是从此 Linux 机器启动的。

AppScan Central Platform

AppScan Central PlatformAppScan Central Platform 体验的基础。它汇集了用户界面、API 和核心服务器组件。

有关安装和配置 AppScan Central Platform 的完整说明,请参阅此处

重要: 在下载和部署 AppScan Central Platform 之前安装 AppScan Central Platform
安装后,从 ASCP 收集以下信息,并在适当的情况下将信息保存到本地文件中:
  • ASCP 服务主机名

    ASCP 服务器的主机名 (FQDN)。例如, ascp.example.com

  • 认证令牌

    认证令牌位于 <ascp-install-path>\Keys\AgentsApiKey.txt

  • CA 证书

    证书文件位于 <ascp-install-path>\Certs\AppScan360_RootCA.crt

  • 专用密钥

    专用密钥文件位于 <ascp-install-path>\Certs\AppScan360_RootCA.key

本地容器服务

从 HCL 许可证和下载门户网站下载的存档文件安装 AppScan 360° Static Analysis 时,需要一个可以将映像推送到远程注册表的本地容器服务。您可以使用 docker(管理容器持久进程)或 containerd(管理物理计算机或虚拟机上容器的生命周期的运行时)。

Kubectl

Kubectl 用于与远程 Kubernetes 集群通信。

有关安装和配置 Kubectl 的完整说明,请参阅此处

Kubernetes 集群

集群是 AppScan 360° Static Analysis 代理程序容器驻留并投入使用的位置。

例如,要部署 Azure Kubernetes 集群,用户必须有一个资源组来管理集群使用的资源。

集群设置注释:
  • 缺省情况下,AppScan 360° SAST prepareranalyzer Pod 至少需要 16GB 内存。
  • 需要支持 ReadWriteMany 的存储提供序。AKS 提供 azurefile 作为存储提供程序,后者支持 ReadWriteMany。如果要使用 longhorn 等定制存储提供程序,请确保它支持 ReadWriteMany

验证 VM 与 Kubernetes 集群之间的通信

例如,如果您使用的是 Azure Kubernetes 集群:
  1. 登录到您的 Azure 帐户:
    > azure login
  2. 要连接到 Azure 上的 Kubernetes 集群:
    > az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>

    --resource-group 是含您的集群的 Azure 资源组。--name 是要连接到 CLI 的集群的名称。

    连接到集群会将您的安装令牌合并到主文件夹中的 .kube/config 文件。如果不存,则将创建配置文件。

Keda

安装和配置 Keda
> helm repo add kedacore https://kedacore.github.io/charts
> helm repo update
> helm install keda kedacore/keda --namespace keda --create-namespace  

入口控制器

部署入口控制器。

建议的入口控制器是 NGINX(最新版本)。但是,如果集群中已存在入口控制器,则无需安装新的控制器。

需要链接到 DNS 名称的 IP 地址。此 IP 地址必须存在于用于 AKS 部署的缺省 Kubernetes 资源组中。

注: 此处的服务注释适用于 Azure 负载均衡器运行状况检查,仅应在安装 AKS 集群的入口时使用。
> helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx 
> helm repo update 
> helm install ingress-nginx ingress-nginx/ingress-nginx \ 
    --namespace ingress-nginx \ 
    --create-namespace \ 
    --set controller.service.loadBalancerIP=<ip-address> \ 
    --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz

可以为公差、节点选择器等配置 NGINX 入口安装。这些配置可以使用 -f 选项传递到入口 Helm 部署命令。可配置的参数包括:

参数 描述
controller.config.proxy-body-size 请求正文中允许的最大大小。该值应大于您尝试推送的数据的大小。
controller.config.proxy-connect-timeout 与代理服务器建立连接的最长超时时间。
controller.config.proxy-read-timeout 设置向代理服务器读取请求的超时。
controller.config.proxy-send-timeout 设置向代理服务器传输请求的超时
controller.config.enable-access-log-for-default-backend 启用记录对缺省后端的访问。缺省情况下禁用。
controller.config.ssl-redirect 如果服务器具有 TLS 证书,则将重定向 (301) 的全局值设置为 HTTPS。缺省值为 true。
controller.config.use-http2 在安全连接中启用或禁用 HTTP/2 支持。
nodeSelector.kubernetes.io/os 要运行入口的节点上的操作系统类型。
tolerations.key 实现容错功能。

证书管理器

安装和配置 Cert-manager
> helm repo add jetstack https://charts.jetstack.io
> helm repo update
> helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDs=true

Helm

Helm 是一组使您可以更轻松地配置和使用 Kubernetes 应用程序的资源。

有关安装 Helm CLI 的完整说明,请参阅此处

Azure CLI

Azure CLI 是一组用于创建和管理 Azure 资源的命令。

有关安装 Azure CLI 的完整说明,请参阅此处