Kubernetes でのマイクロサービス向け IAST エージェントのデプロイ
AppScan は、Kubernetes クラスターへの IAST エージェントの自動インストールをサポートしています。MutatingAdmissionWebhook を使用すると、IAST エージェントはすべての開始ポッドに自動的にインストールされます。Helm スクリプトまたは Webhook スクリプトを使用して、エージェントをインストールまたは削除できます。
このタスクについて
注: Kubernetes エージェントは、AppScan 360° の FIPS 対応ダウンロードには使用できません。
Kubernetes に IAST エージェントをインストールする手順の図 (Java、.NET、Node.js アプリケーションをサポート)
一般的な指示
手順
-
エージェントのダウンロード:
ここで説明するように AppScan 360° Kubernetes IAST エージェントをダウンロードし、ZIP ファイルの内容を抽出します。
-
クラスターに IAST エージェントをインストールする:
エージェントは、1 つ以上の名前空間にインストールできます。
MutatingAdmissionWebhookIAST エージェントが配置され、選択された名前空間で作成されるすべての新しいポッドに自動的にインジェクトされます。名前空間を指定しない場合は、デフォルトの名前空間が使用されます。以下のいずれかの方法でエージェントをインストールします。
-
既存のポッドの再起動:
インストール後、IAST エージェントがインジェクトされるように、ターゲットの名前空間で実行中のポッドを再起動します。
-
問題のポッド名の表示:
報告された問題のポッド名は、 「問題の詳細」タブの「追加情報」で確認できます。
- オプション:
以下のオプション機能が使用できます。
Helm ベースのインストール
このタスクについて
手順
-
IAST エージェントのインストール:
-
IAST エージェントのアンインストール: 以下のコマンドを実行します。
helm uninstall secagent
これにより secagent という名前の Helm リリースが削除されます。実行中のポッドをすべて再起動して、削除を完了します。
詳細な設定と完全なマニュアルについては helm-secagent/README.md を参照してください。
スクリプトベースのインストール
このタスクについて
手順
-
IAST エージェントのインストール:
-
IAST エージェントのアンインストール: 以下のコマンドを実行します。
./uninstall-secagent-webhook.sh
スクリプトの実行が完了したら、実行中のすべてのポッドを再起動して削除を完了します。
POD を IAST インストールから除外する
手順
-
含まれている名前空間から特定のポッドを除外します。
skip-iast-webhook="true"ポッドの YAML 構成にラベルを追加します。このラベルを使用して作成された新しいポッドは、IAST mutating webhook では無視されます。 - ポッドを再び含めるには、ラベルを削除するか false に設定してから、ポッドを再起動します。
-
ユーザー構成によるポッドの除外:
Kubernetes YAML ファイルが編集のためにアクセスできない場合は、ユーザー構成ファイルを使用して IAST 計装からポッドを除外できます。サンプルの user-config.json ファイルは、ダウンロードしたパッケージのexamples フォルダーにあります。例
{ "name": "demo-app-frontend", "namespace": "default", "ignore": true, "agents": ["java"] }フィールドの説明- name (必須): ポッドの名前。
- namespace (必須): ポッドが実行されている名前空間。
- 無視 (オプション): true に設定すると、IAST はこのポッドの計装をスキップします。
- エージェント (オプション): IAST がインストールを試みるエージェントを指定します。指定されていない場合、IAST はサポートされているすべてのエージェント・タイプを試します。値は、以下の通りです。 [java, net-core, nodejs]
プライベート・レジストリーの使用
このタスクについて
手順
-
パブリック IAST レジストリーからイメージをプルします。
docker pull iastappscan.azurecr.io/webhook-certificate:latest docker pull iastappscan.azurecr.io/webhook-server:latest docker pull iastappscan.azurecr.io/secagent-sidecar:latest -
イメージをプライベート・レジストリーにプッシュします。
Example: docker tag iastappscan.azurecr.io/secagent-sidecar:latest my.registry.com/secagent-sidecar:latest Docker push my.registry.com/secagent-sidecar:latest -
以下のパラメーターを使用して、スクリプトを実行します。
./install-secagent-webhook.sh -n my-namespace --registry=my.registry.comまたは、Helm チャートを使用してインストールします。helm install secagent helm-secagent --wait \ --set config.namespaceConfig.namespaces={test-ns1,test-ns2,test-ns3} \ --set registry=my.registry.com -
プライベート・レジストリーで認証が必要な場合は、次の手順に従います。
制限された環境でのインストール
このタスクについて
secagent 名前空間を作成します。一部の制限された環境では、名前空間の自動作成は許可されていません。例:
- 管理者のみが名前空間を作成できる、エンタープライズ・クラスターやクラウド・マネージド・クラスターなどのマネージド Kubernetes プラットフォーム。
- サービス・アカウントまたはスクリプトが名前空間を作成できないようにする厳密な RBAC ポリシーを持つ環境。
- そのまま使用する必要がある、事前にプロビジョニングされた名前空間を持つクラスター。
手順
- 事前に名前空間を手動で作成して構成します。
-
前の手順を使用して、必要な名前空間にエージェントをインストールします。
secagentという名前空間が既に存在する場合、インストール・スクリプトはそれを検出し、再作成を試行せずに使用します。 -
アンインストールするには、アンインストール・スクリプトはデフォルトで
secagent名前空間と関連するすべてのリソースを削除することに注意してください。名前空間と関連する RBAC 設定を削除せずに Webhook をアンインストールするには、以下を使用します。./uninstall-secagent-webhook.sh --keep-namespace

