设置 AppScan 360° Static Analysis 环境
在安装 AppScan 360° Static Analysis 之前,设置环境以实现最佳部署。
- 所有 Kubernetes 环境:
- 如果要从 Harbor 下载 AppScan 360° Static Analysis
- 如果您通过 HCL 许可证和下载门户从存档文件下载 AppScan 360° Static Analysis:
- 如果您使用的是基于云的 Azure 集群:
HCL 标识
您的 HCL 标识会将您的帐户与有效的许可证以及对软件和支持的访问权相关联。访问 HCL 许可证和下载门户和 HCL Harbor 时,需要此项。
有关创建 HCL 标识以及访问许可证和软件的完整信息,请参阅本文档。
Linux 系统
需要 Ubuntu 或 Red Hat Enterprise Linux 系统才能启动部署。实际部署可以位于远程 Kubernetes 集群(例如 Azure Kubernetes Service 中的集群),但部署是从此 Linux 机器启动的。
AppScan Central Platform
AppScan Central Platform 是 AppScan Central Platform 体验的基础。它汇集了用户界面、API 和核心服务器组件。
有关安装和配置 AppScan Central Platform 的完整说明,请参阅此处。
- 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
preparer
和analyzer
Pod 至少需要 16GB 内存。 - 需要支持
ReadWriteMany
的存储提供序。AKS 提供azurefile
作为存储提供程序,后者支持ReadWriteMany
。如果要使用longhorn
等定制存储提供程序,请确保它支持ReadWriteMany
。
验证 VM 与 Kubernetes 集群之间的通信
- 登录到您的 Azure 帐户:
> azure login
- 要连接到 Azure 上的 Kubernetes 集群:
> az aks get-credentials --resource-group <resource-group-name> --name <cluster-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
入口控制器
部署入口控制器。
建议的入口控制器是 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 --set installCRDs=true
Helm
Helm 是一组使您可以更轻松地配置和使用 Kubernetes 应用程序的资源。
有关安装 Helm CLI 的完整说明,请参阅此处。
Azure CLI
Azure CLI 是一组用于创建和管理 Azure 资源的命令。
有关安装 Azure CLI 的完整说明,请参阅此处。