Configuration de Openflow - Snowflake Deployment : Créer un rôle Snowflake

Openflow - Snowflake Deployment nécessite la création d’un certain nombre de ressources qui sont spécifiques non pas à un déploiement, mais à une exécution spécifique. En général, ces ressources comprennent :

  • Création d’un rôle Snowflake spécifique à l’exécution

  • Création de règles réseau et d’intégrations d’accès externes (EAI) spécifiques aux exécutions

Cette rubrique décrit la création de ces ressources.

  1. Créer un rôle Snowflake et des privilèges associés pour écrire des données dans Snowflake. Consultez la section Rôle pour les exécutions dans les déploiements Snowflake.

  2. Associer un rôle Snowflake. Consultez la section Rôle Snowflake pour les exécutions dans les déploiements Snowflake.

  3. Créer des intégrations d’accès externes et les associer à des exécutions Consultez Création d’intégrations d’accès externes.

  4. Une connexion PrivateLink sortante est requise pour se connecter à un système privé à l’aide d’une sortie SPCS.

Créer un rôle Snowflake

Lors de la création et de la modification d’exécutions Openflow, les propriétaires des exécutions auront la possibilité d’associer un rôle aux exécutions. Ce rôle sera utilisé pour les flux qui s’exécutent dans les exécutions. Pour plus d’informations sur les rôles Snowflake, consultez What is a Snowflake role?.

La création d’un rôle Snowflake est une condition préalable pour créer une exécution et implique les étapes suivantes :

  1. Créer le rôle en lui-même

  2. Accordez au rôle l’accès à l’entrepôt utilisé par l’exécution.

  3. Accordez au rôle l’accès aux objets Snowflake utilisés par l’exécution.

  4. Accordez au rôle l’accès aux intégrations d’accès externes utilisées par l’environnement d’exécution.

Pour créer un rôle Snowflake :

  1. Créez le rôle Snowflake requis.

    Note

    <RUNTIMENAME> indique le nom de l’exécution associée.

    USE ROLE ACCOUNTADMIN;
    
    CREATE ROLE IF NOT EXISTS OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    GRANT ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME> TO USER <username>;
    
    Copy
  2. Autorisez le rôle Snowflake à utiliser un entrepôt existant que vous prévoyez d’utiliser pour l’ingestion des données. Utilisez cet entrepôt plus tard lors de la configuration de vos connecteurs pour les exécutions où vous utiliserez ce rôle Snowflake.

    GRANT USAGE, OPERATE ON WAREHOUSE <OPENFLOW_INGEST_WAREHOUSE> TO ROLE OPENFLOW_RUNTIME_ROLE_<RUNTIMENAME>;
    
    Copy
  3. Autorisez le rôle Snowflake à utiliser ou à créer des objets Snowflake, ou à y accéder d’une autre manière.

    Note

    En fonction du connecteur Openflow créé, les objets sous-jacents requis varieront. L’exemple ci-dessous est présenté à titre indicatif seulement.

    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

Créer des règles réseau et des intégrations d’accès externes

Le modèle de sécurité de Snowflake fournit un accès sécurisé à des points de terminaison et à des systèmes externes à Snowflake à l’aide de politiques réseau.

Deux éléments clés des politiques réseau sont les Règles de réseau et les intégrations d’accès externes (EAI). Chacun de ces éléments est utilisé pour fournir un accès sécurisé aux ressources externes requises par l’exécution.

Il existe trois étapes nécessaires pour créer des règles réseau et des intégrations d’accès externes :

  1. Créer la règle réseau, en regroupant les identificateurs de réseau en zones logiques.

  2. Créer l’intégration d’accès externe (EAI), en spécifiant la liste des règles réseau et en s’assurant que le rôle Snowflake dispose de l’USAGE sur l’EAI.

  3. Associer l’EAI à l’exécution dans l’UI d’Openflow lors de la création d’exécutions.

Pour créer la règle réseau et l’EAI requises, procédez comme suit :

Note

Ces exemples utilisent RUNTIME_NAME comme caractère de remplacement pour le nom de l’exécution en cours de création.

  1. Créez une règle réseau appropriée. Voir CREATE NETWORK RULE pour plus d’informations.

    Note

    <OPENFLOW_DATABASE> indique le nom de la base de données qui contiendra la règle réseau. Snowflake suggère de créer une base de données spécifique pour les règles réseau et les intégrations d’accès externes liées à 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. Créez une intégration d’accès externe, ou ajoutez la règle réseau à une intégration existante. Pour plus d’informations, voir CREATE EXTERNAL ACCESS INTEGRATION.

    Pour créer une nouvelle 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

    Pour ajouter la règle réseau à une EAI existante, vérifiez d’abord quelles règles lui sont déjà associées, puis mettez à jour l’EAI pour inclure à la fois les règles existantes et les nouvelles règles :

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

    Dans la sortie, trouvez la propriété ALLOWED_NETWORK_RULES et notez les règles existantes. Ensuite, mettez à jour l’EAI, en répertoriant toutes les règles existantes ainsi que la nouvelle :

    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. Autorisez l’accès à l’EAI au rôle Snowflake précédemment créé.

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

Prochaines étapes

Créer une exécution