Dynamic Engineのエグレスを既知のIPアドレスに制限する
最終更新日時: 2026/08/07
デフォルトのインターネットエグレスポリシーを、既知の外部IPアドレスおよびKubernetes APIサーバーへのアクセスのみを許可するカスタムポリシーに置き換えます。
このタスクについて
デフォルトのネットワークポリシーセットが提供するものよりも厳格なアウトバウンド制御が必要な場合は、この手順を適用してください。
手順
-
デフォルトのポリシーの確認:
# 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 -
ポリシーで許可する必要があるエンドポイントアドレスを収集します。
カスタムポリシーを作成する前に、必要な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 -
デフォルトのインターネットエグレスポリシー(default-allow-egress-to-internet)を無効にし、特定の既知(静的)IPアドレスへのアクセスに限定するポリシーを有効にします。
IPプレースホルダー(xおよびy)を実際のアドレスに置き換えます。
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 -
環境レベルのポリシーに、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レジストリの設定をご覧ください。
-
カスタムポリシーファイルを使用して、チャートをインストールまたはアップグレードします。
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 -
制限的なポリシーセットを検証します。
デフォルトのインターネットエグレスポリシーが無効になっており、カスタムポリシーがエンジンおよび環境のネームスペースに存在することを確認します。
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は含まれなくなるはずです。