设置 AppScan 360° Static Analysis 环境
在安装 AppScan 360° Static Analysis 之前,设置环境以实现最佳部署。
- 所有环境:
- HCL 标识
- 安装有 Ubuntu 或 Red Hat Enterprise Linux V7 或更高版本的 Linux 系统
- AppScan Central Platform
- 本地容器服务,即 Docker 或 Containerd
- Kubectl
- Kubernetes 集群
- 已验证 Linux VM 和 Kubernetes 集群之间的通信
- Keda
- 入口控制器
- 证书管理器
- 用于启用 TLS 的证书
- Helm
- Azure CLI
- 如果要从 Harbor 下载 AppScan 360° Static Analysis
- 如果您通过 FlexNet Operations 从存档文件下载 AppScan 360° Static Analysis:
- 如果您使用的是基于云的 Azure 集群:
HCL 标识
您的 HCL 标识会将您的帐户与有效的许可证以及对软件和支持的访问权相关联。访问 FlexNet Operation 和 HCL Harbour 需要此项。
有关创建 HCL 标识以及访问许可证和软件的完整信息,请参阅本文档。
AppScan Central Platform
AppScan Central Platform 是 AppScan 360° 体验的基础。它汇集了用户界面、API 和核心服务器组件。
有关安装和配置 AppScan Central Platform 的完整说明,请参阅此处。
- API 服务 URL
ASCP REST API 服务的URL。例如:
https://ascp.appscan.com:5000。 - 认证令牌
认证令牌位于
<ascp-install-path>\Keys\AgentsApiKey.txt。 - CA 证书
证书文件位于
<ascp-install-path>\Certs\AppScan360_RootCA.crt。 - 专用密钥
专用密钥文件位于
<ascp-install-path>\Certs\AppScan360_RootCA.key。
本地容器服务
从自 FlexNet Operations 下载的存档文件安装 AppScan 360° Static Analysis 时,需要一个可以将映像推送到远程注册表的本地容器服务。您可以使用 docker(管理容器持久进程)或 containerd(管理物理计算机或虚拟机上容器的生命周期的运行时)。
Kubectl
Kubectl 用于与远程 Kubernetes 集群通信。
有关安装和配置 Kubectl 的完整说明,请参阅此处。
Kubernetes 集群
集群是 AppScan 360° Static Analysis 代理程序容器驻留并投入使用的位置。
要部署 Azure Kubernetes 集群,用户必须有一个资源组来管理集群使用的资源。
- 缺省情况下,AppScan 360° SAST
preparer和analyzerPod 至少需要 24GB 内存。 - Azure Kubernetes Service 将
azurefile作为存储提供程序提供。如果选择使用定制存储提供程序,如longhorn,请确保有 250GB 的磁盘空间可用。
验证 VM 与 Kubernetes 集群之间的通信
- 登录到您的 Azure 帐户:
> azure login - 要连接到 Azure 上的 Kubernetes 集群:
> az aks get-credentials --resource-group --name \-
-resource-group是含您的集群的 Azure 资源组。--name是要连接到 CLI 的集群的名称。连接到集群会将您的安装令牌合并到主文件夹中的 .kube/config 文件。如果不存,则将创建配置文件。
Keda
> helm repo add kedacore https://kedacore.github.io/charts
> helm repo update
> helm install keda kedacore/keda --namespace keda --create-namespace --version 2.9.4 入口控制器
建议的入口控制器是 NGINX(最新版本)。但是,如果集群中已存在入口控制器,则无需安装新的控制器。
需要链接到 DNS 名称的 IP 地址。此 IP 地址必须存在于用于 AKS 部署的缺省 Kubernetes 资源组中。
> 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 |
实现容错功能。 |
证书管理器
> helm repo add jetstack https://charts.jetstack.io
> helm repo update
> helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.11.0 --set installCRDs=true用于启用 TLS 的证书
AppScan 360° Static Analysis 的某些组件必须使用 HTTPS 与 AppScan Central Platform 安全通信,从而验证证书是否由受信任的证书颁发机构签名。ASCP 在初始 ASCP 安装期间运行时提供此证书和专用密钥。请参阅安装 AppScan Central Platform。
Helm
Helm 是一组使您可以更轻松地配置和使用 Kubernetes 应用程序的资源。
有关安装 Helm CLI 的完整说明,请参阅此处。
Azure CLI
Azure CLI 是一组用于创建和管理 Azure 资源的命令。
有关安装 Azure CLI 的完整说明,请参阅此处。