Dynamic Engine環境サービスのカスタムKeystoreを使ったセキュリティ
Dynamic Engine環境のカスタムKeystoreを使い、署名済みであるデータ統合ジョブのアーティファクトを検証します。
Talend StudioでのKetystoreの生成と管理については、ジョブアーティファクト署名用のカスタムJava KeyStoreを設定をご覧ください。情報メモ重要: Dynamic Engine環境サービス用のカスタムスKeystoreは、エンジンのデプロイ中、またはアップグレード中のみ設定することが許可されています。
このタスクについて
デフォルトでは、Dynamic Engine環境はアーティファクト署名の検証でデフォルトのKeystoreを使用します。独自のKeystoreで署名されたデータ統合ジョブのアーティファクトを検証する場合は、環境のデプロイメントやアップグレード時に、カスタムKeystoreとそのパスワードを指定する必要があります。
カスタムKeystoreストアに含める必要があるのは、ルート認証局(CA)のパブリック証明書だけです。プライベートキーや中間の証明書は必要ありません。
手順
タスクの結果
正しく完了すると、Dynamic Engine環境サービスがカスタムKeystoreと共にクラスターにインストールされ、Dynamic Engineに接続します。
Talend Management Consoleではこの環境のステータスが[Ready] (準備完了)になり、タスクまたはプランを実行する準備ができていることが確定されます。
データ統合タスクが実行されると、アーティファクトの署名がまずカスタムKeystoreに対して検証され、次にデフォルトのKeystoreに対して検証されます。そのいずれも署名を認証できない場合、実行は開始されず、タスクはTalend Management Consoleで失敗したもとのして表示されます。
署名の問題でタスクの実行が失敗する場合は、環境でカスタムKeystoreを検証する単純なポッドテンプレートを作成します:
- このテストポッド用に値ファイルを作成します。この例では、check-custom-keystore.yamlというファイルです。
cat <<EOF > check-custom-keystore.yaml apiVersion: v1 kind: Pod metadata: labels: app.kubernetes.io/managed-by: kubectl name: check-custom-keystore spec: securityContext: runAsNonRoot: true runAsUser: 61000 seccompProfile: type: RuntimeDefault containers: - name: runner image: ghcr.io/talend/jre21-base-minimal:4.0.32 command: - cat tty: true securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL resources: requests: cpu: '0.3' memory: 256Mi limits: cpu: '0.5' memory: 256Mi volumeMounts: - mountPath: /tmp/signature/keystores/default name: signature-check-secret-volume readOnly: true - mountPath: /tmp/signature/keystores/custom name: custom-signature-check-secret-volume readOnly: true volumes: - name: signature-check-secret-volume secret: defaultMode: 420 secretName: signature-check-secret - name: custom-signature-check-secret-volume secret: defaultMode: 420 secretName: custom-signature-check-secret EOF
- テストポッドのテンプレートを適用します:
kubectl apply -n qlik-processing-env-<environment-id> -f check-custom-keystore.yaml
- keytoolを使って、Keystoreのコンテンツをリストします:
kubectl exec -it check-custom-keystore -n qlik-processing-env-<environment-id> \ -- /usr/lib/jvm/jdk-21.0.5+11-jre/bin/keytool -list -v -keystore /tmp/signature/keystores/custom/custom-code-verify.jks \ -storepass \$(cat /tmp/signature/keystores/custom/custom-code-verify-jks-password)
このコマンドによって、カスタムKeystoreが環境にマウントされ、読み取り可能であることが確認されます。
- 完了したら、テストポッドを削除します:
kubectl delete -n qlik-processing-env-<environment-id> -f check-custom-keystore.yaml