AppScan 360° 静的分析 環境のセットアップ

AppScan 360° 静的分析 をインストールする前に、最適な配置環境を設定します。

AppScan 360° 静的分析 をインストールおよび配置する環境では、パフォーマンスを最適化するための前提条件ツールをいくつか設定する必要があります。

HCL ID

HCL ID により、アカウントに有効なライセンスと、ソフトウェアおよびサポートへのアクセス権が関連付けられます。HCL ライセンス、ダウンロード・ポータル、HCL Harbor へのアクセスに必要です。

HCL ID の作成とライセンスおよびソフトウェアへのアクセスの詳細については、この資料を参照してください。

Linux システム

デプロイメントを開始するには、Ubuntu または Red Hat Enterprise Linux システムが必要です。実際のデプロイメントは、リモート Kubernetes クラスター (たとえば、Azure Kubernetes Service のクラスター) にデプロイできますが、デプロイメントはこの Linux マシンから開始されます。

AppScan Central Platform

AppScan Central Platform は、AppScan 360° エクスペリエンスの基盤であり、ユーザー・インターフェース、API、およびコア・サーバー・コンポーネントを統合します。

AppScan Central Platform のインストールおよび構成の詳しい手順については、こちらをご覧ください。

重要: AppScan 360° 静的分析 のダウンロードおよび配置の前に AppScan Central Platform をインストールします。
インストールが完了したら、ASCP から以下の情報を収集し、必要に応じてローカル・ファイルに情報を保存します。
  • ASCP サービス・ホスト名:

    ASCP サーバーのホスト名 (FQDN)。たとえば、 ascp.example.com

  • 認証トークン

    認証トークンは、<ascp-install-path>\Keys\AgentsApiKey.txt にあります。

  • CA 証明書 (CA certificate)

    証明書ファイルは、<ascp-install-path>\Certs\AppScan360_RootCA.crt にあります。

  • 秘密鍵

    秘密鍵ファイルは、<ascp-install-path>\Certs\AppScan360_RootCA.key にあります。

ローカル・コンテナー・サービス

HCL License and Download Portal からダウンロードしたアーカイブ・ファイルから AppScan 360° 静的分析 をインストールする場合、リモート・レジストリーにイメージをプッシュできるローカル・コンテナー・サービスが必要です。コンテナーを管理する永続的なプロセスである Docker か、物理マシンや仮想マシン上のコンテナーのライフサイクルを管理するランタイムである containerd のどちらかを使用できます。

Kubectl

Kubectl は、リモート Kubernetes クラスターとの通信に使用されます。

Kubectl のインストールおよび構成の詳しい手順については、こちらをご覧ください。

Kubernetes クラスター

このクラスターは、AppScan 360° 静的分析 エージェント・コンテナーが存在する場所であり、活用される場所です。

たとえば、Azure Kubernetes クラスターをデプロイするには、クラスターで消費されるリソースを管理するためのリソース・グループが必要です。

クラスター設定に関する注意事項:
  • AppScan 360° SAST preparer および analyzer のポッドには、デフォルトで最低 16GB のメモリーが必要です。
  • ReadWriteMany をサポートするストレージ・プロバイダーが必要です。AKSは、ReadWriteMany をサポートするストレージ・プロバイダーとして azurefile を提供します。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  

ingress コントローラー

ingress コントローラーをデプロイします。

推奨される ingress コントローラーは NGINX (最新バージョン) です。ただし、ingress コントローラーが既にクラスターに存在する場合、新しいコントローラーをインストールする必要はありません。

DNS 名にリンクされた IP アドレスが必要です。この IP アドレスは、AKS 配置用のデフォルトの Kubernetes リソース・グループに存在する必要があります。

注: ここでのサービス・アノテーションは、Azure ロード・バランサー正常性チェック用であり、AKS クラスターに ingress をインストールする場合にのみ使用してください。
> 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 ingress をインストールすると、toleration、nodeSelector などを構成できます。これらの構成は、-f オプションを使用して ingress 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 ingress を実行するノードの OS タイプ。
tolerations.key フォールト・トレランス。

cert-manager

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 のインストールの詳しい手順については、こちらをご覧ください。