Sicherheit mit einem benutzerdefinierten Schlüsselspeicher für Dynamic Engine-Umgebungsdienste
Verwenden Sie einen benutzerdefinierten Schlüsselspeicher für Ihre Dynamic Engine-Umgebung, um signierte Jobartefakte der Datenintegration.
Details zum Erzeugen und Verwalten von Schlüsselspeichern in Talend Studio finden Sie unter Konfigurieren eines benutzerspezifischen Java KeyStore für die Signatur von Job-Artefakten.Vorbereitungen
- Die benutzerdefinierten Ressourcendefinitionen dynamic-engine-crd müssen mit dem Helm-Chart oci://ghcr.io/talend/helm/dynamic-engine-crd installiert worden sein. Führen Sie andernfalls die folgenden Befehle für die Installation aus:
- Suchen Sie die zu verwendende Diagrammversion:
- Führen Sie den folgenden Helm-Befehl aus:
helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version> - Sehen Sie die Version direkt über Talend Management Console ein oder suchen Sie im Dynamic Engine Änderungs-Log nach der in Ihrer Dynamic Engine-Version enthaltenen Diagrammversion.
- Verwenden Sie einen API-Aufruf an den Dynamic Engine-Versionsendpunkt.
- Führen Sie den folgenden Helm-Befehl aus:
- Führen Sie den folgenden Befehl aus, um das Helm-Chart einer bestimmten Version zu installieren:Ersetzen Sie <helm_chart_version> durch die Chart-Version, die von Ihrer Dynamic Engine-Version unterstützt wird.
helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>Wenn die Version nicht angegeben wird, installieren Sie die neueste verfügbare dynamic-engine-crd-Diagrammversion.
- Suchen Sie die zu verwendende Diagrammversion:
-
Ihre Dynamic Engine muss implementiert worden sein. Führen Sie andernfalls den folgenden Befehl aus, um sie zu implementieren:Dies ist die Standardbereitstellung, da die aktuelle Anpassung nur auf der Dynamic Engine-Umgebungsseite benötigt wird. Aus diesem Grund wurde keine Anpassung für die Dynamic Engine-Instanz konfiguriert.
helm install dynamic-engine -f <engine-id>-helm-values/<engine-id>-values.yaml oci://ghcr.io/talend/helm/dynamic-engine
Warum und wann dieser Vorgang ausgeführt wird
Standardmäßig verwendet eine Dynamic Engine-Umgebung den Standard-Schlüsselspeicher für die Signaturverifizierung von Artefakten. Um Signatur-Artefakte der Datenintegration, die mit Ihrem eigenen Schlüsselspeicher signiert wurden, müssen Sie den benutzerdefinierten Schlüsselspeicher und sein Passwort bereitstellen, wenn Sie die Umgebung bereitstellen oder upgraden.
Sie müssen nur das öffentliche Zertifikat der Stamm-Zertifizierungsstelle (ZS) in Ihrem benutzerdefinierten Schlüsselspeicher einschließen. Die privaten Schlüssel oder Zwischenzertifikate sind nicht notwendig.
Prozedur
Ergebnisse
Nach erfolgreicher Durchführung sind die Dynamic Engine-Umgebungsdienste mit dem benutzerdefinierten Schlüsselspeicher in Ihrem Cluster installiert und stellen eine Verbindung zur Dynamic Engine her.
In Talend Management Console ändert sich der Status dieser Umgebung zu Ready (Bereit), was bestätigt, dass sie zum Ausführen von Tasks oder Plänen bereit ist.
Wenn eine Datenintegrationsaufgabe ausgeführt wird, wird die Artefaktsignatur zunächst mit dem benutzerdefinierten Schlüsselspeicher und dann mit dem Standardspeicher verglichen. Wenn keiner der beiden die Signatur authentifizieren kann, beginnt die Ausführung nicht, und die Aufgabe wird in Talend Management Console als fehlgeschlagen angezeigt.
- Erstellen Sie die Wertedatei für diesen Testpod. In diesem Beispiel wird die Datei check-custom-keystore.yaml genannt.
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 - Wenden Sie die Testpodvorlage an:
kubectl apply -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID -f check-custom-keystore.yaml - Listen Sie die Schlüsselspeicherinhalte mit keytool auf:
kubectl exec -it check-custom-keystore -n qlik-processing-env-$DYNAMIC_ENGINE_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)Dieser Befehl bestätigt den benutzerdefinierten Schlüsselspeicher in der Umgebung gemountet und lesbar ist.
- Löschen Sie den Testpod nach Beendigung:
kubectl delete -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID -f check-custom-keystore.yaml