HCL AppScan 360° 先决条件说明

本文档提供了一份详尽的 HCL AppScan 360° 部署先决条件检查清单,内容涵盖部署服务器、Kubernetes 集群、外部依赖关系及资源要求。使用验证命令来验证设置。有关详细的配置说明,请参阅准备配置文件指南

部署服务器先决条件

部署服务器是一个基于 Linux 的系统,用于启动和管理 AppScan 360° 部署。

类别 需求
操作系统 Ubuntu 22.04 / Ubuntu 24.04 / RHEL 9
软件
  • Bash shell
  • Docker(用于本地容器服务,请参阅 Docker 安装)- 适用于 Ubuntu 环境
  • Podman(用于本地容器服务),适用于 RHEL 环境(通常已预装)
  • Kubectl(用于 Kubernetes 集群管理,请参阅 Kubectl 安装
  • Helm 4(请参阅 Helm 安装
配置
  • 端口 80、443、5443、6443、7443、8443 必须保持可用状态,并开放访问权限

  • 定制模式下,必须能够访问指定的 MSSQL 和 DPR 服务器

Kubernetes 集群先决条件

Kubernetes 集群托管 AppScan 360° 平台,并需要特定的组件和配置。
类别 需求
组件
  • 入口控制器(例如,NGINX 版本 1.11.5、版本 1.12.1 或更高版本)。

    配置:

    - proxy-body-size: 2g

    - proxy-connect-timeout: 3600

    - proxy-read-timeout: 3600

    - proxy-send-timeout: 3600

    - enable-access-log-for-default-backend: true

    - ssl-redirect: true

    - use-http2: true

    - use-forwarded-headers: true

    - compute-full-forwarded-for: true

  • Cert-manager(版本 1.11.0 或兼容版本)

    参考:证书管理器安装

存储
  • 支持持久卷 ReadWriteMany (RWX) 访问模式的存储类

  • 支持 fsGroup 安全上下文的 Kubernetes CSI 驱动程序

联网
  • 如果需要 IPv6,则启用双栈 IPv4/IPv6

  • 针对加密通信的网络策略支持

工作程序节点
  • 确保为动态和静态扫描提供充足的资源(请参阅“资源要求”)
注: 对于动态扫描,请在运行动态扫描的所有节点中增加内核中的 inotify 实例数:
  • fs.inotify.max_user_instances=524288 添加到 /etc/sysctl.conf 中。

  • 重新启动节点以使更改生效。

  • 对于较小的集群,32800 可能已足够,但建议使用 524288 以实现稳健的动态扫描。

外部依赖关系

AppScan 360° 依赖于必须配置且可访问的外部服务。
类别 需求
数据库

MSSQL Server 2019 或更高版本(已配置 db_creator 权限),且可供访问以存储扫描数据(每次扫描执行约占用 150 KB)

认证
  • SSO - OIDC (keycloak / Okta) 或

  • 通过端口 389/636/TCP 访问 Microsoft Active Directory / Domino (LDAP)

  • 对于用户认证,缺省本地用户:Admin(密码:Admin12!)、User(密码:User123!)在安装过程中创建

电子邮件 通过端口 25/TCP 访问 SMTP 服务器,以发送通知
许可证发放 通过端口 443/TCP 访问 HCL 许可证管理门户网站,以进行许可证激活(需要提供标识)
容器注册表 用于存储和提取 AppScan 360 容器映像的远程容器注册表
网络 用于安全通信的受信任证书(如果需要,请将不受信任的证书导入客户机 JRE 密钥库中)
存储 扫描数据的文件存储(请参阅“存储要求”)

存储要求

AppScan 360° 需要 MSSQL 数据库和文件存储。基于扫描执行的估计存储需求如下:

扫描执行

MSSQL Server 存储

文件存储

1,000 1 GB 10 GB
100.000 5 GB 100 GB
1,000,000 20 GB 1000 GB

建议:为 MSSQL 服务器存储和文件存储至少分配 200 GB 的空间,以存放临时日志。存储必须经过加密、具备冗余性、能够在 Pod 之间进行共享,并支持 ReadWriteMany (RWX) 访问模式。可以手动删除旧扫描以节省空间。

资源需求

AppScan 360° 平台

组件 内存(最小值/最大值) CPU(vCore,最小值/最大值)
ASCP 42GB / 48GB 10/12

扫描资源

情境 内存(最小值/推荐值) CPU(vCore,最小值/推荐值)
动态分析扫描:单次扫描 3GB/4GB 2/3
动态分析扫描:五个并发扫描 15GB/20GB 10/15
动态分析扫描:十个并发扫描 30GB/40GB 20/30
静态分析扫描:单次扫描 16GB/28GB 2/4
静态分析扫描:五个并发扫描 80GB/140GB 10/20
静态分析扫描:十个并发扫描 160GB/280GB 20/40
软件组成分析 (SCA) 扫描:单次扫描 1GB/2GB 2/5
软件组成分析 (SCA) 扫描:五次并发扫描 2GB/4GB 7/10
软件组成分析 (SCA) 扫描:十次并发扫描 4GB/6GB 10/12
注: 资源需求会随着并发扫描数量的增加而相应增加。节点进行静态扫描时,至少需要 28GB RAM 和 4 个核心来进行静态扫描,进行动态扫描时,则需要 4GB RAM、3 个核心以及 200GB 磁盘空间。确保有足够的 AppScan 360° 许可证和 Kubernetes 资源可用。并发扫描数不得超过 25 次。

验证配置

使用以下命令验证先决条件:
  • Kubernetes 连接kubectl version or kubectl get nodes

  • Docker 连接docker version

  • Helm 连接helm version

  • 证书管理器kubectl get pods --namespace cert-manager (确保 cert-manager Pod 正在运行)

  • 入口kubectl get ingress --all-namespaces(验证入口资源)

  • 存储kubectl get storageclass and kubectl get pv(检查存储是否支持 RWX)

  • SQL 连接ping <MSSQL_SERVER_IP>(替换为实际 IP)

  • Docker 登录docker login <PRIVATE_REGISTRY_URL>(替换为实际 URL)

其他注意事项

  • 标识:访问 HCL 许可证和下载门户网站及 HCL Harbor 时,需要此项。

  • 浏览器支持:对于 AppScan 360 用户界面,使用最新版本的 Chrome、Safari、Edge 或 Firefox。

  • 屏幕分辨率:建议使用 1920x1080 分辨率,可确保获得最佳显示效果。

  • 网络端口

    • 22/TCP(通过 SSH 连接到部署服务器)

    • 25/TCP (SMTP)

    • 389/TCP (LDAP)

    • 80、443、8080/TCP

  • 访问点

    • 用户门户网站:https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>

    • 用户 API:https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>/api

    • 用户 API (Swagger):https://<CK_CONFIGURATION_DISCLOSED_SITE_URL>/swagger

  • :使用 DNS 服务器中的指定 IP 发布入口 FQDN。