Configuração do Openflow - Snowflake Deployment: Criar a função do Snowflake

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:

  • Criação da função do Snowflake específica do tempo de execução

  • 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.

  1. Crie uma função do Snowflake e os privilégios associados para gravar dados na função do Snowflake para tempos de execução na seção de implantação do Snowflake.

  2. Associe uma função do Snowflake. Consulte a função do Snowflake para tempos de execução na seção de implantação do Snowflake.

  3. Crie integrações de acesso externo e associe-as aos tempos de execução. Consulte Criação de integrações de acesso externo

  4. Quando a conectividade do PrivateLink de saída é necessária para conectar um sistema privado usando SPCS Egress.

Criar uma função do Snowflake

Ao criar e editar tempos de execução do Openflow, os proprietários de tempo de execução poderão associar uma função ao tempo de execução. Essa função será usada para fluxos executados dentro do tempo de execução. Para obter mais informações sobre as funções do Snowflake, consulte What is a Snowflake role?.

A criação de uma função do Snowflake é um pré-requisito para criar um tempo de execução e envolve as seguintes etapas:

  1. Criar a função em si

  2. Conceder à função o acesso ao warehouse usado pelo tempo de execução.

  3. Conceder à função o acesso aos objetos Snowflake usados pelo tempo de execução.

  4. Conceder à função o acesso às integrações de acesso externo utilizadas pelo tempo de execução.

Para criar uma função Snowflake:

  1. Crie a função Snowflake necessária.

    Nota

    <RUNTIMENAME> denota o nome do tempo de execução associado.

    USE ROLE ACCOUNTADMIN;
    
    CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO USER <username>;
    
    Copy
  2. Autorize a função do Snowflake a usar um warehouse existente que você planeja utilizar para ingestão de dados. Use esse warehouse mais tarde ao configurar seus conectores para os tempos de execução em que você usará essa função do Snowflake.

    GRANT USAGE, OPERATE ON WAREHOUSE <OPENFLOW_INGEST_WAREHOUSE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy
  3. Permitir que a função do Snowflake use, crie ou acesse objetos Snowflake.

    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>;
    
    Copy

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:

  1. Criar a regra de rede, agrupando os identificadores de rede em áreas lógicas.

  2. Criar a integração de acesso externo (External Access Integration, EAI), especificando a lista de regras de rede e garantindo que a função do Snowflake tenha USAGE na EAI.

  3. 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.

  1. 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 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. Crie uma integração de acesso externo ou adicione a regra de rede a uma existente. Consulte CREATE EXTERNAL ACCESS INTEGRATION para obter mais informações.

    Para criar uma nova 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

    Para adicionar a regra de rede a uma EAI existente, primeiro verifique quais regras já estão associadas a ela e depois atualize aEAI para incluir as regras existentes e novas:

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

    Na saída, encontre a propriedade ALLOWED_NETWORK_RULES e anote as regras existentes. Depois disso, atualize a EAI listando todas as regras existentes junto com a nova:

    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. Conceda acesso à EAI para a função do Snowflake que já foi criada.

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

Próximos passos

Criação de tempo de execução