Set up Openflow - Snowflake Deployment: Create Snowflake role¶
Openflow - Snowflake Deployment requer a criação de uma série de recursos que são específicos não para uma implantação, mas para um tempo de execução específico. Normalmente, esses recursos incluem:
Creation of Runtime specific Snowflake role
Criação de regras de rede específicas do tempo de execução e integrações de acesso externo (EAI)
Este tópico descreve a criação desses recursos.
Create a Snowflake Role and associated privileges to write data to Snowflake Role for Runtimes on Snowflake Deployment Section
Associate Snowflake Role. See Snowflake Role for Runtimes in the Snowflake Deployment Section.
Crie integrações de acesso externo e associe-as aos tempos de execução. Consulte Criação de integrações de acesso externo
Quando a conectividade do PrivateLink de saída é necessária para conectar um sistema privado usando SPCS Egress.
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?.
Nota
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:
Criar a função em si
Conceder à função o acesso ao warehouse usado pelo tempo de execução.
Conceder à função o acesso aos objetos Snowflake usados pelo tempo de execução.
Conceder à função o acesso às integrações de acesso externo utilizadas pelo tempo de execução.
To create a Snowflake role:
Create the required Snowflake role.
Nota
<RUNTIMENAME>denota o nome do tempo de execução associado.USE ROLE OPENFLOW_ADMIN; CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>; GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO ROLE OPENFLOW_ADMIN;
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>;
Allow the Snowflake role to use, create or otherwise access Snowflake objects.
Nota
Dependendo do conector Openflow que está sendo criado, os objetos subjacentes necessários variam. O exemplo abaixo serve apenas para fins ilustrativos.
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>;
Criação de regras de rede e integrações de acesso externo¶
O modelo de segurança do Snowflake fornece acesso seguro a pontos de extremidade e sistemas externos específicos ao Snowflake usando políticas de redes.
Dois aspectos essenciais das políticas de rede são Regras de rede e integrações de acesso externo (EAI). Cada um deles é usado para fornecer acesso seguro aos recursos externos exigidos pelo tempo de execução.
Existem três etapas necessárias para criar regras de rede e integrações de acesso externo:
Criar a regra de rede, agrupando os identificadores de rede em áreas lógicas.
Create the external access integration (EAI), specifying the list of network rules and assuring the Snowflake Role has USAGE on the EAI.
Associar a EAI com o tempo de execução na UI do Openflow ao criar tempos de execução.
Para criar a regra de rede necessária e a EAI, execute as seguintes etapas:
Nota
Esses exemplos usam RUNTIME_NAME como um espaço reservado para o nome do tempo de execução que está sendo criado.
Crie uma regra de rede apropriada. Consulte CREATE NETWORK RULE para obter mais informações.
Nota
<OPENFLOW_DATABASE>denota o nome do banco de dados que conterá a regra de rede. O Snowflake sugere a criação de um banco de dados específico para regras de rede e integrações de acesso externo relacionados ao Openflow.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');
Crie a integração externa associada. Consulte CREATE EXTERNAL ACCESS INTEGRATION para obter mais informações.
USE ROLE ACCOUNTADMIN; CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION OPENFLOW_<RUNTIME>_EAI ALLOWED_NETWORK_RULES = (OPENFLOW_<RUNTIME_NAME>_NETWORK_RULE) ENABLED = TRUE;
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>;