Set up Openflow - Snowflake Deployment: Create Snowflake role

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:

  • Creation of Runtime specific Snowflake role

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

Unter diesem Thema wird das Erstellen dieser Ressourcen beschrieben.

  1. Create a Snowflake Role and associated privileges to write data to Snowflake Role for Runtimes on Snowflake Deployment Section

  2. Associate Snowflake Role. See Snowflake Role for Runtimes in the Snowflake Deployment Section.

  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.

Create a Snowflake role

When creating and editing Openflow Runtimes, Runtime Owners will have the ability to associate a role with the Runtime. This role will be used for flows that execute within the Runtime. For more information about Snowflake Roles, see What is a Snowflake role?.

Bemerkung

As OPENFLOW_ADMIN, you’ll create the Snowflake role and grant it to OPENFLOW_ADMIN, so that users granted that role are authorized to set this role on the Runtime.

Creating a Snowflake role is a prerequisite for creating a Runtime and involves the following steps:

  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.

To create a Snowflake role:

  1. Create the required Snowflake role.

    Bemerkung

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

    USE ROLE OPENFLOW_ADMIN;
    
    CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO ROLE OPENFLOW_ADMIN;
    
    Copy
  2. Allow the Snowflake role to use an existing warehouse that you are planning to use for data ingestion. Use this warehouse later when configuring your connectors for runtimes where you will be using this Snowflake role.

    GRANT USAGE, OPERATE ON WAREHOUSE <OPENFLOW_INGEST_WAREHOUSE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy
  3. Allow the Snowflake role to use, create or otherwise access Snowflake objects.

    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. Create the external access integration (EAI), specifying the list of network rules and assuring the Snowflake Role has USAGE on the EAI.

  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 OR REPLACE NETWORK RULE OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE
        MODE = EGRESS
        TYPE = HOST_PORT
        VALUE_LIST = ('comma separated list of host:port pairs');
    
    Copy
  2. Erstellen Sie die zugehörige externe Integration. Weitere Informationen dazu finden Sie unter CREATE EXTERNAL ACCESS INTEGRATION.

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION OPENFLOW_<RUNTIME>_EAI
       ALLOWED_NETWORK_RULES = (OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE)
       ENABLED = TRUE;
    
    Copy
  3. Grant access to the EAI to the previously created Snowflake role.

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

Nächste Schritte

Laufzeitumgebung erstellen