Accéder au contenu principal Passer au contenu complémentaire

Restreindre la sortie aux adresses IP connues pour le Dynamic Engine

Dernière mise à jour : 07/08/2026
Remplacez la politique de sortie Internet par défaut par une politique personnalisée qui autorise uniquement les adresses IP externes connues et l'accès au serveur d'API Kubernetes.

Pourquoi et quand exécuter cette tâche

Appliquez cette procédure lorsque vous devez renforcer le contrôle en sortie au-delà du contrôle fourni par l'ensemble de politiques de réseau par défaut.

Procédure

  1. Vérifiez les politiques par défaut :
    # For dynamic engine chart
    helm show values oci://ghcr.io/talend/helm/dynamic-engine --version $DYNAMIC_ENGINE_VERSION \
    --jsonpath '{.configuration.networkPolicies.policies}' | jq -r
    
    # For dynamic engine environment chart
    helm show values oci://ghcr.io/talend/helm/dynamic-engine-environment --version $DYNAMIC_ENGINE_VERSION \
    --jsonpath '{.configuration.networkPolicies.policies}' | jq -r
  2. Collectez les adresses des endpoints que la politique doit autoriser.

    Demandez aux adresses IP publiques les endpoints Qlik et le serveur d'API Kubernetes requis avant de construire la politique personnalisée.

    Note InformationsAvertissement : Les adresses IP sont susceptibles d'être modifiées côté AWS et peuvent par conséquent nécessiter une maintenance régulière de vos politiques de réseau en sortie.
    # Find the public IP addresses
    dig api.<region>.cloud.talend.com +short
    dig msg.<region>.cloud.talend.com +short
    
    # Find the virtual IP address of the Kubernetes API server
    kubectl get service kubernetes -n default -o jsonpath='{.spec.clusterIP}'
    
    # Find the real IP addresses of the Kubernetes API server
    kubectl get endpointslices.discovery.k8s.io -n default kubernetes
  3. Désactivez la politique de sortie Internet par défaut (default-allow-egress-to-internet) et activez la politique pour limiter l'accès à des adresses IP (statiques) connues spécifiques.
    cat <<EOF > custom-network-policies-values.yaml
    configuration:
      networkPolicies:
        enabled: true # Enable network policies
        policies:
          default-allow-egress-to-internet:
            enabled: false # Disable default policy allowing all egress traffic to the internet
          restrict-allow-egress-to-known-ip-addresses:
            enabled: true
            spec:
              podSelector: {}
              egress:
                - to:
                    - ipBlock:
                        cidr: xx.xxx.xxx.xxx/xx
                    - ipBlock:
                        cidr: yy.yyy.yyy.yyy/yy
                   # Skipped more lines for brevity
                  ports:
                    - port: 443
                      protocol: TCP
                - to:
                    - ipBlock:
                        cidr: xx.xx.x.x/xx
                  ports:
                    - port: 443
                      protocol: TCP
                - to:
                    - ipBlock:
                        cidr: xxx.xxx.xx.x/xx
                  ports:
                    - port: 8443
                      protocol: TCP
              policyTypes:
                - Egress
    EOF
    Remplacez les valeurs fictives des IP (x et y) par des adresses réelles.
  4. Ajoutez l'exception du registre Docker à la politique au niveau de l'environnement.

    L'API de registre d'images est utilisée dans les services di-job-deployer et data-service-route-deployer en plus de kubelet. Par conséquent, ajoutez la politique spécifique à l'environnement de sorte que l'environnement Dynamic Engine puisse continuer à extraire des images du service du registre Docker.

    • Pour le registre Docker externe, ajoutez ses adresses IP à la politique restrict-allow-egress-to-known-ip-addresses ci-dessus.
    • Pour le registre Docker interne, créez le fichier de valeurs suivant :
      # For inernal embedded Docker registry
      cat <<EOF > custom-environment-network-policies-values.yaml
      configuration:
        networkPolicies:
          policies:
            allow-egress-to-docker-registry:
              enabled: true
              spec:
                podSelector: {}
                egress:
                  - to:
                      - namespaceSelector:
                          matchLabels:
                            kubernetes.io/metadata.name: qlik-dynamic-engine # namespace of the embedded image registry
                        podSelector:
                          matchLabels:
                            app: docker-registry
                    ports:
                      - port: 5000
                        protocol: TCP
                policyTypes:
                  - Egress
                  EOF
      Note InformationsImportant : Dynamic Engine est livré avec un registre Docker interne pour les déploiements à démarrage rapide et de développement uniquement. Un environnement Dynamic Engine, qui a ses propres politiques de réseau et espaces de noms, doit pouvoir accéder à ce registre Docker.

      Pour un environnement de production, configurez un registre Docker externe pour vos tâches Talend Management Console. Pour plus d'informations, consultez Configurer un registre Docker personnalisé pour des tâches Talend Management Console.

  5. Installez ou mettez à niveau les charts avec les fichiers de politiques personnalisées.
    helm upgrade --install dynamic-engine-$DYNAMIC_ENGINE_ID \
      -f $DYNAMIC_ENGINE_ID-values.yaml \
      -f custom-network-policies-values.yaml \
      oci://ghcr.io/talend/helm/dynamic-engine \
      --version $DYNAMIC_ENGINE_VERSION
    
    helm upgrade --install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
      -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml \
      -f custom-network-policies-values.yaml \
      -f custom-environment-network-policies-values.yaml \
      oci://ghcr.io/talend/helm/dynamic-engine-environment \
      --version $DYNAMIC_ENGINE_VERSION
  6. Vérifiez l'ensemble de politiques restrictives.

    Confirmez que la politique de sortie Internet par défaut est désactivée et que la politique personnalisée est présente dans les espaces de noms du moteur et de l'environnement.

    kubectl get networkpolicies -A -l "app.qlik.com/owned-by=qlik"
    La politique default-allow-egress-to-internet doit avoir disparu et les politiques de sortie personnalisées doivent apparaître à la place. Par exemple :

    Dans l'espace de noms du moteur :

    • default-deny-all
    • default-allow-dns
    • default-allow-ingress-docker-registry
    • restrict-allow-egress-to-known-ip-addresses (Nouveau)

    Dans l'espace de nom de l'environnement :

    • default-deny-all
    • default-allow-dns
    • default-allow-egress-to-same-namespace
    • restrict-allow-egress-to-known-ip-addresses (Nouveau)
    • allow-egress-to-docker-registry (Nouveau)

    La sortie ne doit plus inclure default-allow-egress-to-internet pour aucun chart, si le fichier de valeurs personnalisé a été correctement appliqué.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.