Sécurité avec un KeyStore personnalisé pour les services d'environnement du Dynamic Engine
Utilisez un KeyStore personnalisé pour que votre environnement du Dynamic Engine vérifie les artefacts de Jobs d'intégration de données signés.
Pour savoir comment générer et gérer les KeyStores dans le Studio Talend, consultez Configurer un KeyStore Java personnalisé pour les signatures d'artefacts de Jobs.Pourquoi et quand exécuter cette tâche
Par défaut, un environnement de Dynamic Engine utilise le KeyStore par défaut pour la vérification des signatures d'artefacts. Pour vérifier les artefacts de Jobs d'intégration de données signés par votre propre KeyStore, vous devez fournir le KeyStore personnalisé et son mot de passe lorsque vous déployez ou mettez à niveau l'environnement.
Vous n'avez besoin d'inclure que le certificat public de l'autorité de certification racine dans votre KeyStore personnalisé. Les clés privées et les certificats intermédiaires ne sont pas nécessaires.
Procédure
Résultats
Cela fait, les services d'environnement de Dynamic Engine sont installés dans votre cluster avec le KeyStore personnalisé et connectés au Dynamic Engine.
Dans Talend Management Console, le statut de cet environnement devient Ready (Prêt), confirmant qu'il est prêt à exécuter des tâches ou des plans.
Lorsqu'une tâche d'intégration de données s'exécute, la signature d'artefacts est d'abord vérifiée par rapport au KeyStore personnalisé, puis par rapport à celui par défaut. Si aucun ne peut authentifier la signature, l'exécution ne démarre pas et la tâche s'affiche en échec dans Talend Management Console.
- Créez le fichier de valeurs pour ce pod de test. Dans cet exemple, le fichier est nommé 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
- Appliquez le modèle du pod de test :
kubectl apply -n qlik-processing-env-<environment-id> -f check-custom-keystore.yaml
- Lister le contenu des KeyStore avec keytool :
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)
Cette commande confirme que le KeyStore personnalisé est monté et lisible dans l'environnement.
- Supprimez le pod de test lorsque vous avez terminé :
kubectl delete -n qlik-processing-env-<environment-id> -f check-custom-keystore.yaml