AppScan 360° 静的分析 クラスターの配置
tar.gz) からアクセスできます。どちらのバンドルにも、配置手順を簡素化するスクリプト (sast-service.sh) が含まれています。HCL Harbor からの Helm チャートを使用した AppScan 360° 静的分析 のデプロイメント
- 正しい Kubernetes クラスターに接続していることを確認します。
.kubeフォルダーに正しいクラスター構成ファイルがあることを確認します。 - ASCP サーバーのホスト名を取得します。
例:
ascp.example.com - 認証トークン、証明書、および秘密鍵の各ファイルを ASCP サーバーから現在のマシンに取得します。
- 認証トークンは、オプション
--auth-tokenを使用して AppScan 360° SAST 配置に指定できます。例えば、--auth-token AgentsApiKey.txtなどを指定します。 - CA 証明書は、オプション
--certを使用して AppScan 360° SAST 配置に指定できます。例えば、--cert AppScan360_RootCA.crtなどを指定します。 - 秘密鍵は、オプション
--cert-keyを使用して AppScan 360° SAST 配置に指定できます。例えば、--cert-key AppScan360_RootCA.keyなどを指定します。
- 認証トークンは、オプション
- からユーザー認証トークンを取得し、ファイルに保存します。
例えば、
registry-token.txtなどを指定します。 - RabbitMQ パスワードを保存するファイルを作成します。例えば、
rabbitmq-pwd.txtなどを指定します。このパスワードは、RabbitMQ がインストールされている場合、RabbitMQ で構成されます。注: このパスワードは構成後に変更できません。 - 使用するストレージ・プロバイダーを特定します。
Azure は
azurefileをサポートしていますが、他のストレージ・プロバイダーを使用する場合は、ReadWriteManyをサポートしていることを確認してください。 - クラスターをローカルにデプロイするためのオプションを指定して AppScan 360° SAST スクリプトを実行します。次に例を示します。
> ./sast-service.sh --install --ingress-host <sast-ingress-fqdn> \ --server <ascp-fqdn> \ --cert AppScan360_RootCA.crt \ --cert-key AppScan360_RootCA.key \ --auth-token AgentsApiKey.txt \ --rabbitmq-password rabbitmq-pwd.txt \ --registry-user <harbor-username> \ --registry-token registry-token.txt \ --storage-class azurefile \ --ingress-class nginx注:- スクリプト・ファイルに実行許可を与えます。例えば、
chmod -R +x sast-service.sh scripts/*などを指定します。 - オプション
-fを使用して、配置構成パラメーター で説明されているように、値がカスタマイズされた yaml ファイルへのファイル・パスを指定します。例えば、-f values.yamlなどを指定します。
- スクリプト・ファイルに実行許可を与えます。例えば、
- 配置が正常に完了したことを確認します。
> kubectl get pods -n <NAMESPACE><NAMESPACE>は、AppScan 360° SAST がインストールされた名前空間です。デフォルトはhcl-appscan-sastです。 - AppScan 360° SAST 関連のすべてのポッドが動作していることを、次のように確認します。
ポッド名 作動可能 状況 再始動 年齢 analyzer-<pod-id>1/1 実行中 X X ascp-adapter-<pod-id>1/1 実行中 X X gateway-<pod-id>1/1 実行中 X X preparer-<pod-id>1/1 実行中 X X sast-service-rabbitmq-01/1 実行中 X X scan-manager-<pod-id>1/1 実行中 X X workflow-manager--<pod-id>1/1 実行中 X X - URL
https://<sast-ingress-fqdn>を使用してブラウザーから AppScan 360° SAST にアクセスできることを確認します。(例:
https://sast.example.com)。
アーカイブ・ファイルからの AppScan 360° 静的分析 の配置
tar.gz ファイルをダウンロードして解凍した後で、次の手順を実行します。- コンテナー・イメージを ACR またはほかに選択した任意のレジストリーにアップロードするには、以下のパラメーター・オプションを使用して、配置スクリプトにレジストリー資格情報を入力します。注: AppScan 360° SAST コンテナー・イメージは、リモートの OCI 準拠レジストリーにアップロードする必要があります。
--registry <registry>: コンテナー・イメージをプッシュするレジストリー。次に例を示します。appscanregistry.azurecr.io, docker.io。--registry-user <registry-username>: 認証用のレジストリー・ユーザー名。--registry-token <registry-token-file>: レジストリー・ユーザー認証トークンを含むファイル。例:--registry-token ./registry-token.txt--load-images: このオプションは、コンテナー・イメージをファイル・システムからレジストリーにロードする必要があることを示します。コンテナー・イメージはパスsast-service-base/images/*.image内に配置できます。
- 正しい Kubernetes クラスターに接続していることを確認します。
.kubeフォルダーに正しいクラスター構成ファイルがあることを確認します。 - ASCP サーバーのホスト名を取得します。
例:
ascp.example.com - 認証トークン、証明書、および秘密鍵の各ファイルを ASCP サーバーから現在のマシンに取得します。
- 認証トークンは、オプション
--auth-tokenを使用して AppScan 360° SAST 配置に指定できます。例えば、--auth-token AgentsApiKey.txtなどを指定します。 - CA 証明書は、オプション
--certを使用して AppScan 360° SAST 配置に指定できます。例えば、--cert AppScan360_RootCA.crtなどを指定します。 - 秘密鍵は、オプション
--cert-keyを使用して AppScan 360° SAST 配置に指定できます。例えば、--cert-key AppScan360_RootCA.keyなどを指定します。
- 認証トークンは、オプション
- RabbitMQ パスワードを保存するファイルを作成します。例えば、
rabbitmq-pwd.txtなどを指定します。このパスワードは、RabbitMQ がインストールされている場合、RabbitMQ で構成されます。注: このパスワードは構成後に変更できません。 - 使用するストレージ・プロバイダーを特定します。
Azure は
azurefileをサポートしていますが、他のストレージ・プロバイダーを使用する場合は、ReadWriteManyをサポートしていることを確認してください。 - クラスターをローカルにデプロイするためのオプションを指定して AppScan 360° SAST スクリプトを実行します。次に例を示します。
> ./sast-service.sh --install --ingress-host <sast-ingress-fqdn> \ --server <ascp-fqdn> --cert AppScan360_RootCA.crt \ --cert-key AppScan360_RootCA.key \ --auth-token AgentsApiKey.txt \ --rabbitmq-password rabbitmq-pwd.txt \ --registry <registry-name> \ --registry-user <registry-username> \ --registry-token <registry-token-file> \ --storage-class azurefile \ --ingress-class nginx \ --load-images注: オプション-fを使用して、配置構成パラメーター で説明されているように、値がカスタマイズされた yaml ファイルへのファイル・パスを指定します。例えば、-f values.yamlなどを指定します。 - 配置が正常に完了したことを確認します。
> kubectl get pods -n <NAMESPACE><NAMESPACE>は、AppScan 360° SAST がインストールされた名前空間です。デフォルトはhcl-appscan-sastです。 - AppScan 360° SAST 関連のすべてのポッドが動作していることを、次のように確認します。
ポッド名 作動可能 状況 再始動 年齢 analyzer-<pod-id>1/1 実行中 X X ascp-adapter-<pod-id>1/1 実行中 X X gateway-<pod-id>1/1 実行中 X X preparer-<pod-id>1/1 実行中 X X sast-service-rabbitmq-01/1 実行中 X X scan-manager-<pod-id>1/1 実行中 X X workflow-manager--<pod-id>1/1 実行中 X X - URL
https://<sast-ingress-fqdn>を使用してブラウザーから AppScan 360° SAST にアクセスできることを確認します。(例:
https://sast.example.com)
ASCP との統合
AppScan 360° コンポーネント間の統合を成功させるには、ASCP で、AppScan 360° 静的分析 ingress URL を設定する必要があります。URLは、ASCP サーバーのインストール時または再構成時に設定することも、インストール後の手順として構成することもできます。
AppScan 360° SAST ingress の構成
提供された ingress が https を使用するよう構成するには、nginx.ingress.kubernetes.io/backend-protocol アノテーションを使用して、NGINX がバックエンド・サービスと通信する方法を指定します。
- パラメーター
global.ingress.additionalAnnotations - 説明
AppScan 360° 静的分析 ingress で構成するアノテーションのリスト。
- 例
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
AppScan 360° 静的分析 の再構成
AppScan 360° 静的分析 の最初の配置後、配置スクリプトを使用し、最後に指定した配置オプションを用いて Kubernetes クラスターを再構成します。最初にクラスターを削除する必要はありません。
Namespace 'hcl-appscan-sast' already exists. The SAST deployment will be upgraded.デプロイメント・コマンド・オプション
| パラメーター | 説明 | デフォルト値 | 必須 |
|---|---|---|---|
-h|-help |
使用可能なコマンドと適切な使用方法を表示します。 | ||
-i|--install |
AppScan 360° SAST を配置します。このフラグはオプション値を想定していません。 | N/A | あり |
-s|--server hostname |
ASCP サーバーのホスト名 (FQDN) を提供します。ASCP サーバーは AppScan 360° プラットフォーム・インストールの一部として構成されており、このサーバーでユーザーは AppScan 360° 静的分析 スキャンを開始できます。 | あり | |
-cc|--cert cert-file-path |
TLS と HTTPS をセットアップするには、署名付き証明書ファイルへの完全修飾パスを指定します。 | あり | |
-ck|--cert-key key-file-path |
指定された証明書の秘密鍵への対応するパスを指定します。 | あり | |
-at|--auth-token token |
SAST サービスとの ASCP 接続許可。また、ASCP プラットフォーム・サービスと AppScan 360° SAST の間の通信や交換も支援します。 | あり | |
-p |--rabbitmq-passwords pwd-file-path |
RabbitMQ ユーザーのパスワードのファイル・パスを指定します。注: RabbitMQ パスワードは構成後に変更できません。 | あり | |
-sc|--storage-class name |
すべての AppScan 360° SAST ストレージ要件に使用するストレージ・プロバイダーを構成できます。例としては、local-path、azurefile、longhorn などがあります。 |
あり | |
-r |--registry registry |
イメージをロードするレジストリー名。 注: SAST イメージを含むアーカイブ・ファイルを使用したクラウド・デプロイメントでは、デプロイメント中にイメージをプルできるよう、クラウド K8S レジストリーからアクセス可能なレジストリーを指定する必要があります。 |
|
|
-ru|--registry-user username |
指定されたレジストリーのユーザー名。 | あり。ただし、アーカイブ・ファイルをローカル Kubernetes クラスター (K3S など) に使用してデプロイする場合は除きます。 | |
-rt、--registry-token token-file-path |
指定されたレジストリーのユーザー認証トークンを含むファイルへのパス。 注: トークンは、セキュリティー上の理由からファイルを使用してのみ提供できます。 |
あり。ただし、アーカイブ・ファイルをローカル Kubernetes クラスター (K3S など) に使用してデプロイする場合は除きます。 | |
-ro|-repo|--repository repository |
イメージと Helm チャートを見つけるためのリポジトリー・パス。 | appscan360-sast/sast-service |
なし |
-v、--version |
ダウンロードする AppScan 360° SAST のバージョン。 | 現在の配置用のスクリプトのバージョンがデフォルトで使用されます。 | なし |
-t、--tag image-tag |
インストールする AppScan 360° SAST のバージョン。指定しない場合、リポジトリーまたはアーカイブ内の最新バージョンが使用されます。 | 利用可能な最新バージョン。 | なし |
-n|--namespace |
AppScan 360° SAST がデプロイされている名前空間。 | hcl-appscan-sast |
なし |
-f|--config-file yaml-file-path |
構成の詳細を指定する yaml ファイルを使用して、コンテナーの配置を構成またはカスタマイズします。yaml ファイルの構成については、「配置構成パラメーター」を参照してください |
N/A | なし |
-ih|--ingress-host hostname |
AppScan 360° SAST デプロイメント後にアクセスするための完全修飾ドメイン名 (FQDN)。 提供された FQDN が DNS で解決可能でない場合は、 |
sast.example.com |
なし |
-ic|--ingress-class name |
ingress コントローラーは、 ゲートウェイ・サービスを介して AppScan 360° SAST を公開するために使用されます。指定しない場合、ingress コントローラーは構成されません。 | なし | |
-x、--load-images |
FNO からアーカイブをダウンロードするときは、このパラメーターの指示により、コンテナー・イメージがファイル・システムからロードされ、指定のコンテナー・レジストリーにプッシュされます。 | このオプションは、エアギャップ・モードの配置にしか使用しないでください。 | |
-verbose |
コンソールでの配置に関連する詳細なメッセージを生成します。 | なし |
例(X)
> az login ...
> ./sast-service.sh --install \
--ingress-host test.sast.example.com \
--server test.ascp.example.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry-user hcl-harbor-user \
--registry-token ./registry-token.txt \
--ingress-class nginx \
--storage-class azurefile> az login ...
> ./sast-service.sh --install \
--ingress-host test.sast.example.com \
--server test.ascp.example.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry appscanregistry.azurecr.io \
--registry-user azure-user \
--registry-token ./registry-token.txt \
--ingress-class nginx \
--storage-class azurefile \
--load-images> ./sast-service.sh --install \
--ingress-host test.sast.example.com \
--server test.ascp.example.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry-user hcl-harbor-user \
--registry-token ./registry-token.txt \
--ingress-class nginx \
--storage-class local-path> ./sast-service.sh --install \
--ingress-host test.sast.example.com \
--server test.ascp.example.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry docker.io \
--ingress-class nginx \
--storage-class local-path \
--load-imagesデプロイメント後の AppScan 360° SAST へのアクセス
> https://<appscan sast url>/swagger-ui/index.html—auth-token オプションを使用して指定されたトークンベースの認証を使用します。トークンは次のコマンドで取得できます。> kubectl get secrets -n hcl-appscan-sast sast-service-secret -o jsonpath="{.data.SAST_AUTH_TOKEN}" | base64 -d