Configurer Snowflake pour les importations d'agents IA

Pour importer des agents IA depuis Snowflake, vous devez effectuer des tâches de configuration dans votre compte Snowflake.

Pourquoi et quand exécuter cette tâche

La configuration de Snowflake pour les importations agent IA nécessite la configuration de votre compte Snowflake. Dans Snowflake, vous créez un rôle personnalisé avec un accès aux agents que vous souhaitez importer, vous attribuez ce rôle à l'utilisateur qui autorise la connexion, vous créez une intégration de sécurité OAuth, puis vous récupérez les identifiants du client. Okta utilise ces identifiants pour authentifier les requêtes envoyées vers les API REST et SQL de Snowflake.

Okta importe les agents Cortex, qui sont des agents gérés par Snowflake dont la permission couvre une base de données et un schéma.

Avant de commencer

  • Vous avez le rôle ACCOUNTADMIN dans Snowflake, ou un rôle disposant du privilège global CREATE INTEGRATION.
  • Vous avez le rôle SECURITYADMIN dans Snowflake ou un rôle équivalent qui peut créer et accorder des rôles.
  • Vous êtes autorisé à gérer des applications dans Okta.
  • Vous avez intégré l'application Snowflake dans votre org et vous avez saisi le sous-domaine de votre compte Snowflake dans l'onglet Général. Consultez Ajouter des intégrations d'application.

Procédure

  • Créer un rôle personnalisé dans Snowflake
    1. Connectez-vous à Snowsight avec le rôle SECURITYADMIN.
    2. Exécutez la requête SQL suivante pour créer le rôle personnalisé et lui accorder l'accès à une base de données et à un schéma :
      USE ROLE SECURITYADMIN;
      CREATE ROLE IF NOT EXISTS OKTA_AI_AGENT_IMPORT_ROLE;
      GRANT USAGE ON DATABASE <your_database> TO ROLE OKTA_AI_AGENT_IMPORT_ROLE;
      GRANT USAGE ON SCHEMA <your_database>.<your_schema> TO ROLE OKTA_AI_AGENT_IMPORT_ROLE;

      Répétez les instructions GRANT USAGE pour chaque base de données et chaque schéma depuis lesquels vous souhaitez importer. Le rôle peut uniquement accéder aux bases de données, aux schémas et aux agents que vous autorisez explicitement.

    3. Exécutez la requête SQL suivante pour accorder au rôle un accès aux agents Cortex dans le schéma :
      GRANT USAGE ON ALL AGENTS IN SCHEMA <your_database>.<your_schema> TO ROLE OKTA_AI_AGENT_IMPORT_ROLE;
      GRANT USAGE ON FUTURE AGENTS IN SCHEMA <your_database>.<your_schema> TO ROLE OKTA_AI_AGENT_IMPORT_ROLE;
  • Attribuer le rôle à l'utilisateur qui donne l'autorisation
    1. Choisissez l'utilisateur de Snowflake qui autorise la connexion avec Okta.
      Okta ne demande pas de rôle spécifique par son nom. La session de l'utilisateur démarre avec son rôle par défaut, puis bascule vers le rôle personnalisé pour les requêtes d'importation.
    2. Exécutez la requête SQL suivante pour attribuer le rôle personnalisé à l'utilisateur :
      USE ROLE SECURITYADMIN;
      GRANT ROLE OKTA_AI_AGENT_IMPORT_ROLE TO USER <authorizing_user>;
    3. Facultatif. Pour définir le rôle personnalisé en tant que rôle par défaut de l'utilisateur, exécutez la requête SQL suivante :
      ALTER USER <authorizing_user> SET DEFAULT_ROLE = OKTA_AI_AGENT_IMPORT_ROLE;
  • Créer une intégration de sécurité OAuth dans Snowflake
    1. Exécutez la requête SQL suivante pour créer l'intégration de sécurité. Remplacez <your_okta_domain> par le domaine de votre org Okta (par exemple, example.okta.com).
      USE ROLE ACCOUNTADMIN;
      CREATE SECURITY INTEGRATION OKTA_AI_AGENT_IMPORT_OAUTH
        TYPE = OAUTH
        ENABLED = TRUE
        OAUTH_CLIENT = CUSTOM
        OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
        OAUTH_REDIRECT_URI = 'https://<your_okta_domain>/oauth2/v1/sts/callback'
        OAUTH_ISSUE_REFRESH_TOKENS = TRUE
        OAUTH_REFRESH_TOKEN_VALIDITY = 7776000
        OAUTH_ANY_ROLE_MODE = 'ENABLE'
        ALLOWED_ROLES_LIST = ('OKTA_AI_AGENT_IMPORT_ROLE');

      OAUTH_ANY_ROLE_MODE = 'ENABLE' est obligatoire car Okta demande la permission session:role-any. ALLOWED_ROLES_LIST limite la session au rôle personnalisé.

    2. Exécutez la requête SQL suivante pour récupérer l'ID client et la clé secrète client :
      SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('OKTA_AI_AGENT_IMPORT_OAUTH');
    3. Copiez l'ID client et la clé secrète client et stockez-les en lieu sûr.
    4. Facultatif. Pour vérifier l'intégration, exécutez DESC SECURITY INTEGRATION OKTA_AI_AGENT_IMPORT_OAUTH;.
      Dans le résultat, OAUTH_ALLOWED_AUTHORIZATION_ENDPOINTS est https://<your_account>.snowflakecomputing.com/oauth/authorize et OAUTH_ALLOWED_TOKEN_ENDPOINTS est https://<your_account>.snowflakecomputing.com/oauth/token-request.
    5. Enregistrez l'ID client, la clé secrète client et toutes les paires de base de données et de schémas depuis lesquelles vous souhaitez importer.
      Lorsque vous configurez l'importation de l'agent IA dans Okta, saisissez l'ID client dans ID client, la clé secrète client dans Clé secrète client, et sélectionnez Agents Cortex dans Plateforme. Pour limiter l'importation, saisissez les paires DATABASE.SCHEMA (par exemple, SALES_DB.PUBLIC) dans Permissions d'importation. Lorsque vous sélectionnez Tester les identifiants de l'API, connectez-vous en tant qu'utilisateur qui accorde l'autorisation.