Openflow - Snowflake Deployment einrichten: Erstellen der Snowflake-Rolle

Openflow - Snowflake Deployment erfordert die Erstellung einer Reihe von Ressourcen, die nicht für eine Bereitstellung, sondern für eine bestimmte Laufzeitumgebung spezifisch sind. Zu diesen Ressourcen gehören in der Regel:

  • Erstellen einer für die Laufzeitumgebung spezifischen Snowflake-Rolle

  • Erstellung von Laufzeit-spezifischen Netzwerkregeln und Integrationen für den externen Zugriff (EAI)

Unter diesem Thema wird das Erstellen dieser Ressourcen beschrieben.

  1. Abschnitt „Erstellen einer Snowflake-Rolle und zugehöriger Berechtigungen zum Schreiben von Daten in die Snowflake-Rolle für Laufzeitumgebungen auf Snowflake-Bereitstellungen“

  2. Snowflake-Rolle zuordnen Siehe Abschnitt „Snowflake-Rolle für Laufzeitumgebungen in der Snowflake-Bereitstellung“.

  3. Erstellen Sie Integrationen für den externen Zugriff und verknüpfen sie mit Laufzeiten. Siehe Erstellen von Integrationen für den externen Zugriff

  4. Wenn ausgehende PrivateLink-Konnektivität erforderlich ist, um übe SPCS-Egress eine Verbindung zu einem privaten System über herzustellen.

Eine Snowflake-Rolle erstellen

Beim Erstellen und Bearbeiten von Openflow-Laufzeitumgebungen haben Laufzeit-Eigentümer die Möglichkeit, eine Rolle mit der Laufzeitumgebung zu verknüpfen. Diese Rolle wird für Abläufe verwendet, die innerhalb der Laufzeitumgebung ausgeführt werden. Weitere Informationen zu Snowflake-Rollen finden Sie unter What is a Snowflake role?.

Das Erstellen einer Laufzeitrolle ist eine Voraussetzung für das Erstellen einer Laufzeitumgebung und umfasst die folgenden Schritte:

  1. Die Rolle selbst erstellen

  2. Gewähren Sie der Rolle Zugriff auf das von der Laufzeitumgebung verwendete Warehouse.

  3. Gewähren Sie der Rolle Zugriff auf die von der Laufzeitumgebung verwendeten Snowflake-Objekte.

  4. Gewähren Sie der Rolle Zugriff auf die von der Laufzeit verwendeten Integrationen für den externen Zugriff.

So erstellen Sie eine Snowflake-Rolle:

  1. Erstellen Sie die erforderliche Snowflake-Rolle.

    Bemerkung

    <RUNTIMENAME> bezeichnet den Namen der zugehörigen Laufzeitumgebung.

    USE ROLE ACCOUNTADMIN;
    
    CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO USER <username>;
    
    Copy
  2. Erlauben Sie der Laufzeitrolle, ein bestehendes Warehouse zu verwenden, das Sie für die Datenaufnahme verwenden möchten. Verwenden Sie dieses Warehouse später, wenn Sie Ihre Konnektoren für Laufzeitumgebungen konfigurieren, in denen Sie diese Laufzeitrolle verwenden wird.

    GRANT USAGE, OPERATE ON WAREHOUSE <OPENFLOW_INGEST_WAREHOUSE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy
  3. Erlauben Sie der Snowflake-Rolle, Snowflake-Objekte zu verwenden, zu erstellen oder anderweitig darauf zuzugreifen.

    Bemerkung

    Je nachdem, welcher Openflow-Konnektor erstellt wird, variieren die erforderlichen zugrunde liegenden Objekte. Das folgende Beispiel dient nur zur Veranschaulichung.

    GRANT USAGE ON DATABASE <OPENFLOW_SPCS_DATABASE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    GRANT USAGE ON SCHEMA <OPENFLOW_SPCS_SCHEMA> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy

Erstellen von Netzwerkregeln und Integrationen für den externen Zugriff

Das Sicherheitsmodell von Snowflake bietet sicheren Zugriff auf bestimmte Endpunkte und Systeme außerhalb von Snowflake mithilfe von Netzwerkrichtlinien.

Zwei wichtige Aspekte von Netzwerkrichtlinien sind Netzwerkregeln und Integrationen für den externen Zugriff (EAI). Beide werden verwendet, um einen sicheren Zugriff auf externe Ressourcen zu ermöglichen, die von der Laufzeitumgebung benötigt werden.

Drei Schritte sind erforderlich, um Netzwerkregeln und Integrationen für den externen Zugriff zu erstellen:

  1. Erstellen Sie die Netzwerkregel und gruppieren Sie die Netzwerkbezeichner in logische Bereiche.

  2. Erstellen Sie die Integration für den externen Zugriff (External Access Integration, EAI), wobei Sie die Liste der Netzwerkregeln angeben und sicherstellen, dass die Snowflake-Rolle über die Berechtigung USAGE für die EAI verfügt.

  3. Verknüpfen Sie die EAI mit der Laufzeitumgebung in der Openflow-UI beim Erstellen von Laufzeiten.

So erstellen Sie die erforderlichen Netzwerkregeln und EAI:

Bemerkung

Diese Beispiele verwenden RUNTIME_NAME als Platzhalter für den Namen der zu erstellenden Laufzeitumgebung.

  1. Erstellen Sie eine geeignete Netzwerkregel. Weitere Informationen dazu finden Sie unter CREATE NETWORK RULE.

    Bemerkung

    <OPENFLOW_DATABASE> bezeichnet den Namen der Datenbank, die die Netzwerkregel enthalten wird. Snowflake empfiehlt, eine spezielle Datenbank für Netzwerkregeln und Integrationen für den externen Zugriff im Zusammenhang mit Openflow zu erstellen.

    USE DATABASE <OPENFLOW_DATABASE>;
    
    CREATE NETWORK RULE IF NOT EXISTS OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE
        MODE = EGRESS
        TYPE = HOST_PORT
        VALUE_LIST = ('comma separated list of host:port pairs');
    
    Copy
  2. Erstellen Sie eine Integration für den externen Zugriff, oder fügen Sie die Netzwerkregel zu einer bestehenden hinzu. Weitere Informationen dazu finden Sie unter CREATE EXTERNAL ACCESS INTEGRATION.

    Erstellen einer neuen EAI:

    USE ROLE ACCOUNTADMIN;
    
    CREATE EXTERNAL ACCESS INTEGRATION IF NOT EXISTS OPENFLOW_<RUNTIME_NAME>_EAI
       ALLOWED_NETWORK_RULES = (OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE)
       ENABLED = TRUE;
    
    Copy

    Um die Netzwerkregel zu einer bestehenden EAI hinzuzufügen, prüfen Sie zunächst, welche Regeln bereits damit verknüpft sind, und aktualisieren Sie dann die EAI so, dass sowohl die bestehenden als auch die neuen Regeln einbezogen werden:

    USE ROLE ACCOUNTADMIN;
    
    -- Check the current rules on the EAI
    DESCRIBE EXTERNAL ACCESS INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI;
    
    Copy

    Suchen Sie in der Ausgabe nach der Eigenschaft ALLOWED_NETWORK_RULES und beachten Sie die bestehenden Regeln. Aktualisieren Sie dann die EAI, wobei Sie alle bestehenden Regeln zusammen mit der neuen auflisten:

    ALTER EXTERNAL ACCESS INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI
       SET ALLOWED_NETWORK_RULES = (
          <EXISTING_RULE_1>,
          <EXISTING_RULE_2>,
          OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE
       );
    
    Copy
  3. Gewähren Sie der zuvor erstellten Laufzeitrolle Zugriff auf die EAI.

    GRANT USAGE ON INTEGRATION OPENFLOW_<RUNTIME_NAME>_EAI TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIME_NAME>;
    
    Copy

Nächste Schritte

Laufzeitumgebung erstellen