Openflow BYOC – Benutzerdefinierten Dateneingang einrichten

Unter diesem Thema werden die Überlegungen und die Schritte beschrieben, die zum Einrichten einer Openflow BYOC-Bereitstellung mit einer benutzerdefinierten Lösung für den Dateneingang erforderlich sind, die in Ihrer eigenen AWS-Konto verwaltet wird.

Vorteile

Benutzerspezifischer Dateneingang für Openflow BYOC-Bereitstellungen bietet Ihrer Organisation Folgendes:

  • Mehr Sicherheit durch Einschränkungen auf Netzwerkebene, die den Zugriff nur auf Ihr VPN oder privates Netzwerk beschränken können.

  • Volle Kontrolle über die URL und das TLS-Zertifikat, die für den Zugriff auf Openflow verwendet werden, um Ihre Sicherheits- und Compliance-Anforderungen zu erfüllen.

Hinweise

Mit von Snowflake verwaltetem Dateneingang erstellt Openflow die erforderlichen DNS-Datensätze und den öffentlichen Load Balancer und verwaltet das TLS-Zertifikat für die Openflow-Laufzeitumgebungen in Ihrer BYOC-Bereitstellung.

Wenn Sie den kundenspezifischen Dateneingang aktivieren, verwaltet Openflow nicht mehr automatisch externe DNS-Datensätze, erstellt nicht automatisch einen öffentlichen Load Balancer und verwaltet keine Zertifikate mehr für die Openflow-Laufzeitumgebungen. Sie müssen diese Ressourcen innerhalb Ihres eigenen AWS-Kontos verwalten.

Openflow Managed Ingress im Vergleich zu Custom Ingress, was die zusätzlichen Anforderungen für DNS, Load Balancer und Zertifikate hervorhebt.

Konfigurieren des benutzerdefinierten Dateneingangs in Snowflake Openflow

  1. Aktivieren Sie den kundenspezifischen Dateneingang während der Erstellung einer Bereitstellung.

    • Aktivieren Sie während der Erstellung der Bereitstellung die Option Custom ingress und geben Sie Ihren bevorzugten vollqualifizierten Domänennamen (FQDN) im Feld Hostname an.

    • Sie müssen in der Lage sein, diesen DNS-Datensatz zu verwalten und ein TLS-Zertifikat für diesen FQDN zu erstellen. Verwenden Sie keine Subdomäne von snowflakecomputing.com.

    • Sie dürfen das Protokoll https:// und auch keinen nachstehenden Schrägstrich / in den FQDN einbeziehen.

    • Wenn Sie beispielsweise openflow01.your-domain.org`angeben, greifen Sie auf eine Laufzeitumgebung mit dem Namen „My Runtime“ unter :code:`https://openflow01.your-domain.org/my-runtime/nifi/ zu.

  2. Laden Sie die CloudFormation-Vorlage herunter. Diese Datei enthält alle Einstellungen, die erforderlich sind, damit Openflow als Ihre benutzerdefinierte Dateneingangsdomäne ausgeführt werden kann.

Konfigurieren Sie des benutzerdefinierten Dateneingangs in AWS

Bemerkung

{deployment-key} stellt den eindeutigen Openflow-Bezeichner dar, der auf Cloudressourcen angewendet wird, die von Openflow für eine bestimmte Bereitstellung erstellt und verwaltet werden.

Dieser findet sich im DataPlaneKey-Parameter der CloudFormation-Vorlage, die auch in Openflow über das Menü View Details für die Bereitstellung verfügbar ist.

  1. Fügen Sie das folgende Tag zu den privaten Subnetzen Ihrer Openflow-Bereitstellung hinzu:

    • Schlüssel: kubernetes.io/role/internal-elb

    • Wert: 1

  2. Wenn Ihre privaten Subnetze von anderen EKS-Clustern verwendet werden, müssen Sie diese auch mit dem Namen des Openflow-Clusters taggen. Dies ermöglicht Openflow, einen Load Balancer zusammen mit anderen Load Balancern zu erstellen.

    • Schlüssel: kubernetes.io/cluster/{deployment-key}

    • Wert: 1

  3. Laden Sie die CloudFormation-Vorlage hoch. Warten Sie etwa 30 Minuten, bis Openflow den internen Load Balancer für das Netzwerk erstellt hat.

    • Sie finden den internen Network Load Balancer in der AWS-Konsole unter EC2 » Load Balancers.

    • Der Load Balancer wird runtime-ingress-{deployment-key} benannt.

  4. Rufen Sie die interne IP-Adresse des von Openflow verwalteten AWS-internen Netzwerk-Load-Balancers ab.

    • Navigieren Sie unter EC2 » Load Balancers zur Detailseite, und kopieren Sie den DNS name des Load Balancers.

    • Log into your agent EC2 instance (identified as openflow-agent-{deployment-key}) and run the command nslookup {openflow-load-balancer-dns-name}.

    • Kopieren Sie die IP-Adressen des von Openflow verwalteten AWS-internen Netzwerk-Load-Balancers. Dies sind die Ziele für die Zielgruppe des Load Balancers, den Sie in einem der nachfolgenden Schritte erstellen werden.

  5. Stellen Sie ein TLS-Zertifikat bereit.

    • Beziehen Sie ein TLS-Zertifikat für den Load Balancer, das den Datenverkehr zu den Openflow-Laufzeitumgebungs-UIs verwaltet. Sie können ein Zertifikat entweder mit dem AWS-Zertifikatsmanager (ACM) generieren oder ein vorhandenes Zertifikat importieren.

  6. Erstellen Sie einen Netzwerk-Load-Balancer, der den Datenverkehr an den von Openflow verwaltetenAWS-internen Netzwerk-Load-Balancer weiterleitet.

    1. Erstellen Sie in Ihrem AWS-Konto einen Network Load Balancer mit der folgenden Konfiguration:

      • Name: Wir empfehlen die Namenskonvention custom-ingress-external-{deployment-key}, wobei {deployment-key} der Schlüssel Ihrer Openflow-Bereitstellung ist.

      • Typ: Network Load Balancer

      • Schema: Internal oder Internet-facing, abhängig von Ihren Anforderungen.

      • VPC: Wählen Sie die VPC Ihrer Bereitstellung

      • Verfügbarkeitszonen: Wählen Sie beide Verfügbarkeitszonen aus, in denen Ihre Openflow-Bereitstellung ausgeführt wird.

      • Subnetze: Wählen Sie die privaten Subnetze Ihres VPC für einen Internal Load Balancer oder die öffentlichen Subnetze Ihres VPC für einen Internet-facing Load Balancer aus.

      • Sicherheitsgruppen: Wählen oder erstellen Sie eine Sicherheitsgruppe, die Datenverkehr über Port 443 zulässt

      • Standardmäßig verwendetes SSL/TLS-Serverzertifikat: Importieren Sie Ihr SSL/TLS-Zertifikat

      • Zielgruppe: Erstellen Sie eine neue Zielgruppe mit den folgenden Einstellungen:

        • Zieltyp: IP addresses

        • Protokoll: TLS

        • Port: 443

        • VPC: Stellen Sie sicher, dass die VPC zu Ihrer Bereitstellung passt

        • Geben Sie die IP-Adresse des von Openflow erstellten (im vorherigen Schritt erhaltenen) internen Netzwerk-Load Balancer als Ziel ein und wählen Sie Include as pending below aus.

    2. Sobald der Load Balancer erstellt ist, kopieren Sie im nächsten Schritt den DNS-Namen, der für den Load Balancer verwendet werden soll.

    3. Weitere Informationen zum Erstellen eines Netzwerk-Load-Balancers finden Sie unter Erstellen eines Network Load Balancers.

  7. Erstellen Sie einen DNS CNAME-Datensatz, der Ihren benutzerspezifischen Dateneingangs-FQDN dem AWS Load Balancer DNS-Namen zuordnet.

Überprüfung

  1. Die Openflow-Bereitstellung zeigt den Status Active auf der Seite Deployments an.

  2. Erstellen Sie eine Laufzeitumgebung in der Openflow-Bereitstellung.

  3. Sobald die Laufzeit Active ist, klicken Sie auf den Namen der Laufzeitumgebung, oder verwenden Sie die Menüoption View canvas, um auf die UI der Laufzeitumgebung zuzugreifen.

  4. Openflow leitet Sie an die Laufzeitumgebung mit dem Hostnamen weiter, der bei der Erstellung der Bereitstellung angegeben wurde. Beispiel: https://openflow01.your-domain.org/my-runtime/nifi/.

Troubleshooting

The following sections provide troubleshooting steps for common issues with custom ingress. If you are still experiencing issues after performing these checks, file a Snowflake Support case.

Load balancer target health check

The target group for your network load balancer should list the IP addresses of the Openflow-managed internal network load balancer as targets. All of these targets should show as Healthy. If targets are Unhealthy, use the following checks to narrow down where traffic is failing.

  1. In the AWS console, open EC2 » Load Balancers.

  2. Locate the Openflow-managed load balancer that manages ingress to the Kubernetes cluster. This load balancer is named runtime-ingress-{deployment-key}.

  3. Review the target health for that load balancer under the Resource map tab.

  4. If the Openflow-managed load balancer is not active or has Unhealthy targets:

    • Traffic may be blocked between the Openflow-managed load balancer and the BYOC cluster, or a service inside the cluster may not be ready.

    • Generate a diagnostic bundle by running ./diagnostics.sh from the openflow-agent-{deployment-key} EC2 instance and attach it to a Snowflake Support case.

  5. If the Openflow-managed load balancer is active and has healthy targets, check the target health for your load balancer.

  6. If your load balancer’s targets are Unhealthy, the path from your load balancer to the Openflow-managed load balancer is the most likely problem:

    • Incorrect or stale IP addresses in your target group. The Openflow-managed load balancer exposes multiple IP addresses that can change over time. To get the latest values, run nslookup with the DNS name of the Openflow-managed load balancer. Update your load balancer’s targets as necessary.

    • Security group rules. Confirm that inbound rules on the Openflow-managed load balancer’s security groups allow TCP 443 from your load balancer. Traffic can fail if your load balancer can’t reach the Openflow load balancer on port 443.

Browser security blocking

Some problems with custom ingress are caused by corporate browser security, firewalls, or web proxies that block or inspect traffic to your custom hostname. Those policies are separate from AWS load balancer configuration. You may find that users can’t open the Openflow UI even when AWS load balancers report healthy targets.

To verify connectivity through the load balancers to the Openflow services:

  1. In the AWS console, open EC2 » Load Balancers to get the DNS name of the load balancer that is serving traffic and the TLS certificate for your custom ingress domain name.

    • This is not the runtime-ingress-{deployment-key} load balancer.

  2. From the openflow-agent-{deployment-key} EC2 instance, verify connectivity through the load balancers to the Openflow deployment. Run the command:

    curl -kv https://{your-load-balancer-dns-name}
    
    • If the command outputs the expected certificate information and a successful 404 status code response, you have successfully verified connectivity to your Openflow deployment.

    • If the command times out or returns an error, create a Snowflake Support case and attach a diagnostic bundle generated by running ./diagnostics.sh from the Openflow Agent instance.

  3. From the Openflow Agent instance, you can also verify the DNS CNAME record for your custom ingress FQDN. Run the command:

    source ~/.env && nslookup $DOMAIN
    
    • If the command returns the IP addresses of the load balancer that is performing TLS termination for your custom ingress domain name, you have successfully verified the DNS CNAME record.

    • If the command returns no results, the DNS CNAME record is not configured correctly. Check the DNS record for your custom ingress FQDN and ensure it points to your load balancer’s DNS name.

If the Openflow Agent connected successfully through your load balancer’s DNS and you have verified the DNS CNAME record, a security policy or firewall is likely blocking traffic from your browser to the Openflow BYOC deployment. Work with your security team to allowlist your custom ingress FQDN.