AppScan 360° 静的分析 クラスターの配置
AppScan 360° 静的分析 クラスターは Azure に配置できます。グラフには、Harbor から、または tar.gz アーカイブ・ファイルのローカル・インストールからアクセスできます。どちらのバンドルにも、配置手順を簡素化するスクリプト (sast-service.sh) が含まれています。
Helm チャートからの AppScan 360° 静的分析 の配置
Harbor から Helm チャートをダウンロードした後で、次の手順を実行します。
- 正しい Kubernetes クラスターに接続していることを確認します。
.kubeフォルダーに正しいクラスター構成ファイルがあることを確認します。 - ASCP サーバーの
agents-apiサービス URL を取得します。例:
https://ascp.appscan.com:5000 - 認証トークン、証明書、および秘密鍵の各ファイルを 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のように指定します。
- 認証トークンは、オプション
- HCL Harbor からユーザー・アカウントの CLI トークンを取得し、ファイルに保存します。
例えば、
registry-token.txtのように指定します。 - RabbitMQ パスワードを保存するファイルを作成します。例えば、
rabbitmq-pwd.txtのように指定します。このパスワードは、RabbitMQ がインストールされている場合、RabbitMQ で構成されます。注: このパスワードは構成後に変更できません。 - ローカルまたは Azure にクラスターを配置するためのオプションを指定してAppScan 360° SAST スクリプトを実行します。
> ./sast-service.sh --install --cloud azure \ --ingress-host <sast-ingress-fqdn> \ --cert AppScan360_RootCA.crt \ --cert-key AppScan360_RootCA.key \ --server-url https://<ascp-fqdn>:<agents-api-port> \ --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 実行中\n X X ascp-adapter-<pod-id>1/1 実行中\n X X gateway-<pod-id>1/1 実行中\n X X preparer-<pod-id>1/1 実行中\n X X sast-service-rabbitmq-01/1 実行中\n X X scan-manager-<pod-id>1/1 実行中\n X X workflow-manager--<pod-id>1/1 実行中\n X X - URL
https://<sast-ingress-fqdn>を使用してブラウザーから AppScan 360° SAST にアクセスできることを確認します。
アーカイブ・ファイルからの AppScan 360° 静的分析 の配置
tar.gz ファイルをダウンロードして解凍した後で、次の手順を実行します。- コンテナー・イメージを ACR またはほかに選択した任意のレジストリーにアップロードするには、以下のパラメーター・オプションを使用して、配置スクリプトにレジストリー資格情報を入力します。注: AppScan 360° SAST コンテナー・イメージは、リモートの OCI 準拠レジストリーにアップロードする必要があります。
--registry <registry>: コンテナー・イメージをプッシュするレジストリー。例:appscanregistry.azurecr.io, docker.io。--registry-user <registry-username>: 認証用のレジストリー・ユーザー名。--registry-token <registry-password-file>: レジストリー・ユーザー・パスワードを含むファイル。例:--registry-token ./registry-.txt--load-images: このオプションは、コンテナー・イメージをファイル・システムからレジストリーにロードする必要があることを示します。コンテナー・イメージはパスsast-service-base/images/*.image内に配置できます。
- 正しい Kubernetes クラスターに接続していることを確認します。
.kubeフォルダーに正しいクラスター構成ファイルがあることを確認します。 - ASCP サーバーの
agents-apiサービス URL を取得します。例:
https://ascp.appscan.com:5000 - 認証トークン、証明書、および秘密鍵の各ファイルを 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 にクラスターを配置するためのオプションを指定してAppScan 360° SAST スクリプトを実行します。
> ./sast-service.sh --install --cloud azure \ --ingress-host <sast-ingress-fqdn> \ --cert AppScan360_RootCA.crt \ --cert-key AppScan360_RootCA.key \ --server-url https://<ascp-fqdn>:<agents-api-port> \ --auth-token AgentsApiKey.txt \ --rabbitmq-password rabbitmq-pwd.txt \ --registry-user <harbor-username> \ --registry-token registry-token.txt \ --storage-class azurefile \ --ingress-class nginx注: オプション-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 実行中\n X X ascp-adapter-<pod-id>1/1 実行中\n X X gateway-<pod-id>1/1 実行中\n X X preparer-<pod-id>1/1 実行中\n X X sast-service-rabbitmq-01/1 実行中\n X X scan-manager-<pod-id>1/1 実行中\n X X workflow-manager--<pod-id>1/1 実行中\n X X - URL
https://<sast-ingress-fqdn>を使用してブラウザーから AppScan 360° SAST にアクセスできることを確認します。
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.注: 状況によっては、クラスターで使用可能な配置がない間、名前空間が終了状態のままになることがあります。このような場合、再構成は失敗します。名前空間を手動で削除し、配置を再試行してください。
デプロイメントのオプション
配置に関する注意事項:
- ローカル・インストールでは、スキャンの成果物が保存されるストレージ・プロバイダーとして
local-pathを使用します。 - 配置スクリプトは、テキスト・ファイルを介して機密情報を受け入れます。例えば、レジストリー・トークンまたは RabbitMQ パスワードなどです。
- インストールをカスタマイズするには、構成ファイルを
yamlファイル形式で指定します。
| パラメーター | 説明 | デフォルト値 | 必須 |
|---|---|---|---|
-i、--install |
AppScan 360° SAST を配置します。このフラグはオプション値を想定していません。 | なし | あり |
-l 、--local、-c、--cloud |
ローカルの Kubernetes インスタンスまたはクラウド・インストールを指定します。
|
-l |
あり |
-n、--namespace |
コンテナーの名前空間。 | hcl-appscan-sast |
あり |
-f、--config-file yaml-file-path |
構成の詳細を指定する yaml ファイルを使用して、コンテナーの配置を構成またはカスタマイズします。yaml ファイルの構成については、「配置構成パラメーター」を参照してください |
なし | いいえ |
-ih|--ingress-host hostname |
ingress のアクセス可能なホスト名。AppScan 360° SAST には、クラスター上で稼働する ingress コントローラーが必要です。クラウド・クラスター用に、クラウド・プロバイダーのホスト・ゾーンに対して構成されたパブリック・アクセス可能なホスト名。 ローカル配置では、dns 修飾名を使用できます。注: ローカル・インストールの場合は、 |
||
-cc、--cert cert-file-path |
TLS と HTTPS をセットアップするには、署名付き証明書ファイルへの完全修飾パスを指定します。空白のままにすると、TLS が無効になり、HTTP が使用されます。 | HTTP | |
-ck、--cert-key key-file-path |
指定された証明書の秘密鍵への対応するパスを指定します。 | 署名付き証明書が提供されている場合。 | |
-su、--server-url url |
ASCP サーバーの API サービス URL とポート番号。ASCP サーバーは AppScan 360 プラットフォーム・インストールの一部として構成されており、このサーバーでユーザーが SAST スキャンを開始できます。 | ||
-at|--auth-token token |
SAST サービスとの ASCP 接続許可。また、ASCP プラットフォーム・サービスと AppScan 360° SAST の間の通信や交換も支援します。 | あり | |
-p |--rabbitmq-passwords pwd-file-path |
RabbitMQ ユーザーのパスワードのファイル・パスを指定します。注: RabbitMQ パスワードは構成後に変更できません。 | あり | |
-r 、--registry registry |
イメージをロードするレジストリー名。 注: SAST イメージを含むアーカイブ zip ファイルを使用したクラウド配置では、配置中にイメージをプルできるように、クラウド K8S レジストリーからアクセス可能なレジストリーを指定する必要があります。 |
|
|
-ru、--registry-user username |
指定されたレジストリーのユーザー名。 | ||
-rt、--registry-token token-file-path |
指定されたレジストリーのユーザー CLI トークンを含むファイルへのパス。 注: トークンは、セキュリティー上の理由からファイルを使用してのみ提供できます。 |
||
-ro|-repo|--repository repository |
イメージと Helm チャートを見つけるためのリポジトリー・パス。 | appscan360-sast/sast-service |
|
-v、--version |
ダウンロードする AppScan 360° SAST のバージョン。 | 現在の配置用のスクリプトのバージョンがデフォルトで使用されます。 | Harbor からダウンロードする場合に必要です。 |
-t、--tag image-tag |
インストールする AppScan 360° SAST のバージョン。指定しない場合、リポジトリーまたはアーカイブ内の最新バージョンが使用されます。 | 利用可能な最新バージョン | あり |
-ic|--ingress-class name |
ingress コントローラーは、 ゲートウェイ・サービスを介して AppScan 360° SAST を公開するために使用されます。クラスターにインストールされている ingress コントローラーの名前を指定する必要があります。 | あり | |
-sc|--storage-class |
すべての AppScan 360° SAST ストレージ要件に使用するストレージ・プロバイダーを構成します。 |
Azure 配置用の |
|
-x、--load-images |
FNO からアーカイブをダウンロードするときは、このパラメーターの指示により、コンテナー・イメージがファイル・システムからロードされ、指定のコンテナー・レジストリーにプッシュされます。このオプションは、エアギャップ・モードの配置にしか使用しないでください。 | いいえ | |
-verbose |
コンソールでの配置に関連する詳細なメッセージを生成します。 |
例(X)
ローカルの Kubernetes の配置:
> ./sast-service.sh -i -l -ih sast.appscan.com \
-cc ./config/appscan.crt -ck ./config/appscan.key \
-su https://asop.appscan.com:1234 -st ./config/server.token \
-ru appscan-user@hcl.com -rt ./config/registry.token \
-pwd ./config/sast.pwd --rabbitmq-password ./config/rabbitmq.pwdクラウド (Azure) の配置:
> az login ...
> ./sast-service.sh --install \
--cloud azure \
--ingress-host test.sast.appscan.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--server-url https://test.asop.appscan.com:5000 \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry appscanregistry.azurecr.io
--registry-user registryuser \
--registry-token ./registry-token.txt \
--ingress-class nginx \
--storage-class azurefile配置後のコンテナーへのアクセス
配置が正常に完了すると、次の swagger-ui を使用して AppScan 360° SAST REST API にアクセスできます。
> https://<appscan sast url>/swagger-ui/index.htmlAppScan 360° SAST では、
auth-token が配置されたときに指定されたトークンベースの認証を使用します。トークンは次のコマンドで取得できます。> kubectl get secrets -n hcl-appscan-sast sast-service-secret -o jsonpath="{.data.SAST_AUTH_TOKEN}" | base64 -d