メイン コンテンツをスキップする 補完的コンテンツへスキップ

Dynamic Engineのエグレスを既知のIPアドレスに制限する

最終更新日時: 2026/08/07
デフォルトのインターネットエグレスポリシーを、既知の外部IPアドレスおよびKubernetes APIサーバーへのアクセスのみを許可するカスタムポリシーに置き換えます。

このタスクについて

デフォルトのネットワークポリシーセットが提供するものよりも厳格なアウトバウンド制御が必要な場合は、この手順を適用してください。

手順

  1. デフォルトのポリシーの確認:
    # 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. ポリシーで許可する必要があるエンドポイントアドレスを収集します。

    カスタムポリシーを作成する前に、必要なQlikエンドポイントおよびKubernetes APIサーバーのパブリックIPアドレスをクエリします。

    情報メモ重要: IPアドレスはAWS側で変更される可能性があるため、エグレスネットワークポリシーの定期的なメンテナンスが必要となる場合があります。
    # 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. デフォルトのインターネットエグレスポリシー(default-allow-egress-to-internet)を無効にし、特定の既知(静的)IPアドレスへのアクセスに限定するポリシーを有効にします。
    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
    IPプレースホルダー(xおよびy)を実際のアドレスに置き換えます。
  4. 環境レベルのポリシーに、Dockerレジストリの例外を追加します。

    イメージレジストリAPIは、kubeletに加え、サービスdi-job-deployerおよびdata-service-route-deployerでも使用されています。そのため、Dynamic Engine環境が引き続きDockerレジストリサービスからイメージをプルできるように、環境固有のポリシーを追加してください。

    • 外部のDockerレジストリについては、そのIPアドレスを上記のrestrict-allow-egress-to-known-ip-addressesポリシーに追加してください。
    • 内部Dockerレジストリの場合、次のvaluesファイルを作成します。
      # 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
      情報メモ重要: Dynamic Engineには、クイックスタートおよび開発環境へのデプロイ専用の内部Dockerレジストリが含まれています。独自のネームスペースとネットワークポリシーを持つDynamic Engine環境は、このDockerレジストリへのアクセスを必要とします。

      本番環境では、Talend Management Consoleタスク用に外部のDockerレジストリをセットアップします。詳細は、Talend Management Consoleタスク向けのカスタムDockerレジストリの設定をご覧ください。

  5. カスタムポリシーファイルを使用して、チャートをインストールまたはアップグレードします。
    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. 制限的なポリシーセットを検証します。

    デフォルトのインターネットエグレスポリシーが無効になっており、カスタムポリシーがエンジンおよび環境のネームスペースに存在することを確認します。

    kubectl get networkpolicies -A -l "app.qlik.com/owned-by=qlik"
    default-allow-egress-to-internetポリシーは削除され、代わりにカスタムエグレスポリシーが表示されるはずです。例:

    エンジンネームスペース内:

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

    環境ネームスペース内:

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

    カスタムvaluesファイルが正しく適用されていれば、どちらのチャートの出力にもdefault-allow-egress-to-internetは含まれなくなるはずです。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。