Rediriger les connexions du client

La redirection des clients permet de rediriger les connexions de vos clients vers des comptes Snowflake dans différentes régions pour assurer la continuité des activités et la reprise après sinistre, ou lors de la migration de votre compte vers une autre région ou une autre plateforme Cloud.

Dans ce chapitre :

Présentation de la redirection des clients

La redirection des clients est mise en œuvre par le biais d’un objet Snowflake de connexion. L’objet de connexion stocke une URL de connexion sécurisée que vous utilisez avec un client Snowflake pour vous connecter à Snowflake.

Le nom d’hôte de l’URL de connexion est composé du nom de votre organisation et du nom de l’objet de connexion en plus d’un nom de domaine commun :

organization_name-connection_name.snowflakecomputing.com

Notez que ce nom d’hôte ne spécifie pas le compte auquel vous vous connectez. Un administrateur de compte détermine le compte à utiliser en désignant la connexion de ce compte comme étant la connexion primaire. Lorsque vous utilisez l’URL de connexion pour vous connecter à Snowflake, vous vous connectez au compte qui contient la connexion primaire.

Si une panne se produit dans une région ou une plateforme Cloud et que la panne affecte le compte avec la connexion primaire, l’administrateur peut promouvoir une connexion dans un compte différent dans une région ou une plateforme Cloud différents pour servir de connexion primaire.

Pendant cette panne, vous pouvez continuer à utiliser la même URL de connexion pour vous connecter à Snowflake. Snowflake résout l’URL de connexion vers le compte avec la connexion venant d’être promue (le compte situé en dehors de la région ou de la plateforme Cloud affectés par la panne).

Note

Les comptes Snowflake qui stockent les connexions primaires et secondaires doivent être hébergés dans différentes régions.

Flux de redirection des clients

  1. Suivez les étapes de la section Configuration de la redirection des clients (dans cette rubrique) pour créer une URL de connexion pour les connexions client. Cela comprend la création d’une connexion primaire et d’une ou plusieurs connexions secondaires liées.

  2. Mettez à jour les clients Snowflake pour qu’ils se connectent en utilisant l’URL de connexion. Utilisation d’une URL de connexion (dans cette rubrique) contient une liste des clients pris en charge et des détails de connexion.

  3. En cas de panne de service dans la région où se trouve la connexion primaire, effectuez les étapes de Rediriger les connexions du client (dans cette rubrique) pour mettre à jour l’URL de connexion afin de la rediriger vers une connexion secondaire.

  4. Lorsque la panne est résolue, effectuez les étapes de Rediriger les connexions du client pour rediriger les connexions des clients vers la connexion primaire d’origine.

Les diagrammes suivants illustrent le flux de redirection des clients pour deux comptes dans la même organisation mais dans des régions différentes (Region A et Region B) sur des plateformes Cloud identiques ou différentes.

La connexion primaire est dans Account 1 dans Region A. Les clients Snowflake utilisant l’URL de connexion se connectent à Account 1.

Normal client connections

Une interruption de service dans Region A entraîne l’échec des connexions des clients :

Failed client connections

La connexion dans Account 2 dans Region B est promue pour agir en tant que connexion primaire. Les clients Snowflake utilisant l’URL de connexion se connectent désormais à Account 2.

Redirected client connections

Exemple

Les instructions SQL suivantes passent par le flux de travail de redirection du client. Chaque étape est expliquée en détail dans les sections qui suivent dans cette rubrique.

Connexions normales des clients : configurer la redirection du client

Exécuter à partir du compte source

Créez une nouvelle connexion primaire et activez le basculement vers d’autres comptes de votre organisation. Chaque compte qui est activé pour le basculement doit être dans une région différente de celle du compte avec la connexion primaire.

Notez la colonne account_name dans la sortie de SHOW REPLICATION ACCOUNTS pour chaque compte à activer pour le basculement.

-- Create a new primary connection
CREATE CONNECTION myconnection;

-- View accounts in your organization that are enabled for replication
SHOW REPLICATION ACCOUNTS;

-- Configure failover accounts for the primary connection
ALTER CONNECTION myconnection
  ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;

-- View the details for the connection
SHOW CONNECTIONS;

Si Connectivité privée au service Snowflake est activé pour votre compte Snowflake, vous devez créer et gérer un enregistrement DNS CNAME pour votre URL de connexion. Pour plus de détails, voir Configuration de l’enregistrement DNS CNAME pour la connectivité privée au service Snowflake.

Exécuté sur le compte cible

Créez une connexion secondaire liée à la connexion primaire. Le nom de la connexion secondaire doit être le même que celui de la connexion primaire.

CREATE CONNECTION myconnection
  AS REPLICA OF myorg.myaccount1.myconnection;

Si Connectivité privée au service Snowflake est activé pour votre compte Snowflake, vous devez créer ou mettre à jour un enregistrement CNAME DNS pour votre URL de connexion. Pour plus de détails, voir Modification de l’enregistrement DNS CNAME pour la connectivité privée au service Snowflake.

Une panne se produit dans la région source : basculement

Si une panne survient dans la région où se trouve la connexion primaire, promouvez une connexion secondaire dans une région différente pour servir de connexion primaire.

Exécuté sur le compte cible
ALTER CONNECTION myconnection PRIMARY;

Si Connectivité privée au service Snowflake est activé pour votre compte Snowflake, vous devez créer ou mettre à jour un enregistrement CNAME DNS pour votre URL de connexion. Pour plus de détails, voir Modification de l’enregistrement DNS CNAME pour la connectivité privée au service Snowflake.

Panne résolue : restauration

Une fois la panne résolue, faites en sorte que la connexion primaire d’origine serve à nouveau de connexion primaire.

Exécuter à partir du compte source

Exécutez la commande suivante depuis le compte avec la connexion que vous voulez promouvoir comme connexion primaire :

ALTER CONNECTION myconnection PRIMARY;

Si Connectivité privée au service Snowflake est activé pour votre compte Snowflake, vous devez créer ou mettre à jour un enregistrement CNAME DNS pour votre URL de connexion. Pour plus de détails, voir Modification de l’enregistrement DNS CNAME pour la connectivité privée au service Snowflake.

Configuration de la redirection des clients

Cette section décrit comment créer une connexion primaire et une ou plusieurs connexions secondaires dans un groupe de connexions.

Condition préalable

Pour activer la fonction de redirection des clients pour vos comptes, un administrateur d’organisation (un utilisateur ayant le rôle ORGADMIN) doit activer la réplication pour au moins deux comptes. Pour activer la réplication, voir Prérequis : activer la réplication des comptes dans l’organisation pour des instructions détaillées.

Note

Seuls les administrateurs de compte (utilisateurs dotés du rôle ACCOUNTADMIN) peuvent exécuter les commandes SQL dans cette section.

Créer une connexion primaire

Prudence

Snowflake a attribué à votre organisation un nom unique et généré lors de sa création dans le système. Le nom de l’organisation est une partie de l’URL de connexion définie dans un objet de connexion et soumise par les clients Snowflake pour accéder à un compte. Avant de créer des objets de connexion, vérifiez que le nom de votre organisation dans Snowflake est satisfaisant. Pour changer le nom de votre organisation dans le système, contactez l’assistance Snowflake.

  1. Créez une nouvelle connexion primaire en utilisant CREATE CONNECTION. Le nom de chaque connexion primaire doit être unique parmi tous les noms de connexions et de comptes dans l’organisation.

    Le nom de la connexion est inclus dans l’URL de connexion utilisée pour se connecter aux comptes Snowflake.

    Par exemple, pour créer une connexion nommée myconnection :

    CREATE CONNECTION myconnection;
    
  2. Modifiez cette connexion primaire en utilisant une instruction ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS. Fournissez une liste, séparée par des virgules, des comptes de votre organisation qui peuvent stocker une option de basculement pour cette connexion (c’est-à-dire une connexion secondaire).

    Tout compte qui stocke une connexion secondaire doit être hébergé dans une région différente de celle du compte qui stocke la connexion primaire. La redirection des clients ne fonctionne bien que dans les régions. Par exemple, si vous essayez de rediriger les connexions des clients de account1 vers account2 dans la même région, la redirection des clients ne fonctionne pas.

    Pour voir la liste complète des comptes de votre organisation qui sont activés pour la réplication, exécutez SHOW REPLICATION ACCOUNTS.

    Par exemple, autorisez les comptes myaccount2 et myaccount3 de l’organisation myorg à stocker chacun une connexion secondaire pour la connexion myconnection :

    ALTER CONNECTION myconnection ENABLE FAILOVER TO ACCOUNTS myorg.myaccount2, myorg.myaccount3;
    
  3. Exécutez la commande SHOW CONNECTIONS pour voir les détails de la connexion.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    

Créer une connexion secondaire

Créez une connexion secondaire dans un ou plusieurs comptes, liée à une connexion primaire en utilisant CREATE CONNECTION … AS REPLICA OF. Notez que vous ne pouvez créer une base de données secondaire que dans un compte spécifié dans l’instruction ALTER CONNECTION … ENABLE FAILOVER TO ACCOUNTS dans Créer une connexion primaire.

Exécutez une instruction CREATE CONNECTION … AS REPLICA OF dans chaque compte cible pour créer un réplica de la connexion primaire spécifiée.

Important

Chaque connexion secondaire doit porter le même nom que sa connexion primaire. Le nom de la connexion est inclus dans l’URL de connexion.

Exécutez les instructions SQL de cette section dans le compte cible où vous voulez créer une connexion secondaire.

  1. Exécutez la commande SHOW CONNECTIONS pour voir toutes les connexions. Copiez la valeur de la colonne primary pour la connexion primaire. Vous utiliserez cette valeur lors de la création de la connexion secondaire à l’étape suivante.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
  2. Exécutez la commande CREATE CONNECTION … AS REPLICA OF pour créer une connexion secondaire.

    Par exemple, créez une connexion secondaire nommée myconnection qui est liée à la connexion primaire myorg.myaccount1.myconnection. Après AS REPLICA OF, collez le nom pleinement qualifié de la connexion primaire (le nom que vous avez copié de la sortie SHOW CONNECTIONS à l’étape précédente).

    CREATE CONNECTION myconnection
      AS REPLICA OF MYORG.MYACCOUNT1.MYCONNECTION;
    
  3. Exécutez la commande SHOW CONNECTIONS pour vérifier que la connexion secondaire a été créée.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    | AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    

Configuration de l’enregistrement DNS CNAME pour la connectivité privée au service Snowflake

Si Connectivité privée au service Snowflake est activé pour votre compte Snowflake, votre administrateur réseau doit créer et gérer un enregistrement DNS CNAME pour votre URL de connexion. Pour tous les autres comptes, Snowflake crée et gère l’enregistrement CNAME.

Ces étapes utilisent AWS PrivateLink comme exemple. Les étapes sont les mêmes si votre compte Snowflake utilise Azure Private Link ou Google Cloud Private Service Connect :

  1. Exécutez SHOW CONNECTIONS dans l’un de vos comptes dans lequel la redirection du client est activée. Par exemple, supposons que AWS PrivateLink est activé pour myaccount1 et myaccount2.

    SHOW CONNECTIONS;
    
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    | snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
    |--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    |--------------------|-------------------------------|---------------------|-------------------|-----------------|---------------|-------------------------------|-------------------------------------|-------------------------------------------|-------------------|-------------------|
    | AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
    | AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
    +--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
    
  2. Enregistrez la valeur de la colonne CONNECTION_URL. Ajoutez un segment privatelink à l’URL juste avant snowflakecomputing.com (myorg-myconnection.privatelink.snowflakecomputing.com, dans cet exemple).

  3. En utilisant un outil fourni par votre fournisseur DNS, créez un enregistrement CNAME pour l’URL de connexion :

    • Définissez le domaine (ou l’alias) en utilisant la valeur modifiée de la colonne CONNECTION_URL.

    • Définissez le nom d’hôte de destination comme l’URL du compte Snowflake complet pour le compte qui stocke votre connexion primaire, y compris les segments supplémentaires qui identifient la région et la plate-forme Cloud où votre compte est hébergé et la prise en charge de AWS PrivateLink. Il s’agit du nom du compte où les connexions du client à l’URL de connexion seront redirigées.

      Par exemple :

      myaccount1.us-west-2.privatelink.snowflakecomputing.com.
      

      Vous pouvez également utiliser l’URL du nom de l’organisation et du compte.

      Par exemple :

      myorg-myaccount1.privatelink.snowflakecomputing.com.
      

      Notez le point final, qui doit être inclus.

Les utilisateurs se connectent à Snowflake en utilisant le format d’URL de connexion suivant :

organization_name-connection_name.privatelink.snowflakecomputing.com

Où :

organization_name

Nom de votre organisation Snowflake. Les comptes Snowflake auxquels vos utilisateurs se connectent sont contenus dans cette organisation.

connection_name

Nom de l’objet de connexion.

Pour plus d’informations, voir :

Utilisation d’une URL de connexion

Cette section fournit des instructions pour référencer une URL de connexion dans la configuration de divers clients Snowflake.

Clients Snowflake pris en charge

La Redirection des clients est prise en charge par Snowsight : l’interface Web de Snowflake. et Interface Web classique de Snowflake. De plus, les versions suivantes du client Snowflake (et supérieures) prennent en charge la Redirection des clients :

Client Snowflake

Version minimale prise en charge

SnowSQL

1.1.82

Connecteur Snowflake pour Python

1.8.3

Pilote Node.js

1.2.0

Pilote Go Snowflake

1.2.0

Pilote .NET

1.0.0

Pilote JDBC

3.8.4

Pilote ODBC

2.19.4

Snowpark

Toutes les versions

Configuration des clients Snowflake

Utilisez le nom d’hôte suivant pour l’URL de connexion lorsque vous vous connectez à Snowflake :

Nom d’hôte : organization_name-connection_name.snowflakecomputing.com

Où :

organization_name

Nom de votre organisation Snowflake. Les comptes Snowflake auxquels vos utilisateurs se connectent sont contenus dans cette organisation.

connection_name

Nom de l’objet de connexion.

Important

Connectivité privée au service Snowflake

Les clients utilisant Connectivité privée au service Snowflake doivent ajouter un segment privatelink à l’URL juste avant snowflakecomputing.com :

organization_name-connection_name.privatelink.snowflakecomputing.com

Snowsight : l’interface Web de Snowflake.

Entrez ce qui suit dans le champ du nom de compte sur app.snowflake.com :

<organization-name>-<connection-name>

Par exemple :

myorg-myconnection

Lorsque vous utilisez organization-connection pour vous connecter, Snowsight navigue vers la région et le localisateur spécifiques de la connexion primaire actuelle. Pendant une panne, une fois la connexion redirigée, les utilisateurs doivent se reconnecter via organization-connection pour se connecter via la connexion primaire.

Interface Web classique de Snowflake

Entrez l’URL suivante dans un navigateur Web :

https://<organization_name>-<connection_name>.snowflakecomputing.com/

Par exemple :

https://myorg-myconnection.snowflakecomputing.com/

SnowSQL

Spécifiez le nom d’hôte pour l’URL de connexion dans le paramètre de connexion accountname du fichier SnowSQL config. Pour des informations sur le fichier config, voir Configuration de SnowSQL.

accountname = <organization_name>-<connection_name>
username = <username>
password = <password>

Par exemple :

accountname = myorg-myconnection
username = jsmith
password = mySecurePassword

Connecteur Snowflake pour Python

Spécifiez le nom d’hôte de l’URL de connexion dans le paramètre de connexion account lorsque vous appelez la fonction de connexion. Pour plus d’informations, voir Connecteur Python API et Utilisation du connecteur Python.

con = snowflake.connector.connect (
      account = <organization_name>-<connection_name>
      user = <username>
      password = <password>
)

Par exemple :

con = snowflake.connector.connect (
      account = myorg-myconnection
      user = jsmith
      password = mySecurePassword
)

Pilote JDBC

Spécifiez le nom d’hôte pour l’URL de connexion dans la chaîne de connexion. Pour plus d’informations, voir Configuration du pilote JDBC.

jdbc:snowflake://<organization_name>-<connection_name>.snowflakecomputing.com/?user=<username>&password=<password>

Par exemple :

jdbc:snowflake://myorg-myconnection.snowflakecomputing.com/?user=jsmith&password=mySecurePassword

Pilote ODBC

Spécifiez le nom d’hôte pour l’URL de connexion dans le paramètre de connexion du serveur. Pour plus d’informations sur les paramètres de connexion, voir Paramètres de configuration et de connexion ODBC.

[ODBC Data Sources]
<account_name> = SnowflakeDSIIDriver

[<dsn_name>]
Description     = SnowflakeDB
Driver          = SnowflakeDSIIDriver
Locale          = en-US
SERVER          = <organization_name>-<connection_name>.snowflakecomputing.com

Par exemple :

[ODBC Data Sources]
myaccount = SnowflakeDSIIDriver

[client_redirect]
Description     = SnowflakeDB
Driver          = SnowflakeDSIIDriver
Locale          = en-US
SERVER          = myorg-myconnection.snowflakecomputing.com

Pilote Node.js

Spécifiez le nom d’hôte pour l’URL de connexion dans l’option de connexion account. Pour plus d’informations sur les paramètres de connexion, voir Utilisation du pilote Node.js.

var configuration = {
  username: '<username>',
  password: '<password>',
  account: <organization_name>-<connection_name>.
}

var connection = snowflake.createConnection(configuration)

Par exemple :

var configuration = {
  username: 'jsmith',
  password: 'mySecurePassword',
  account: myorg-myconnection.
}

var connection = snowflake.createConnection(configuration)

Pilote Go Snowflake

Spécifiez le nom d’hôte pour l’URL de connexion dans le paramètre Account. Pour plus d’informations, voir Pilote Go Snowflake.

cfg := &Config{
  Account: "<organization_name>-<connection_name>",
  User: "<username>",
  Password: "<password>"
}

dsn, err := DSN(cfg)

Par exemple :

cfg := &Config{
  Account: "myorg-myconnection",
  User: "jsmith",
  Password: "mySecurePassword"
}

dsn, err := DSN(cfg)

Snowpark

Snowpark Python

Spécifiez le nom d’hôte pour l’URL de connexion dans le paramètre de connexion account du dictionnaire Python (dict) utilisé pour créer une session. Pour plus d’informations sur la création d’une session, voir Création d’une session pour Snowpark Python.

connection_parameters = {
  "account": "<organization_name>-<connection_name>",
  "user": "<snowflake_user>",
  "password": "<snowflake_password>"
}

Par exemple :

connection_parameters = {
  "account": "myorg-myconnection",
  "user": "jsmith",
  "password": "mySecurePassword"
}
Snowpark Java

Spécifiez l’URL de connexion dans la propriété URL du fichier de propriétés ou Map que vous utilisez pour établir la session. Pour plus d’informations sur la création d’une session, voir Création d’une session pour Snowpark Java.

# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com

Par exemple :

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com
Snowpark Scala

Spécifiez l’URL de connexion dans la propriété URL du fichier de propriétés ou Map que vous utilisez pour établir la session. Pour plus d’informations sur la création d’une session, voir Création d’une session pour Snowpark Scala.

# Properties file (a text file) for establishing a Snowpark session
URL = https://<organization_name>-<connection_name>.snowflakecomputing.com

Par exemple :

# Properties file (a text file) for establishing a Snowpark session
URL = https://myorg-myconnection.snowflakecomputing.com

Authentification et redirection des clients

Les utilisateurs doivent être provisionnés dans le compte source et sur chaque compte cible.

Authentification fédérée et SSO

Configurez l’authentification fédérée séparément dans chaque compte cible. Fournissez les détails du fournisseur d’identité (IdP) en utilisant les options de configuration dans Fonctions SSO SAML avancées :

Note

Snowflake recommande de configurer votre fournisseur d’identité conforme SAML 2.0 (IdP) avec l’URL de connexion plutôt qu’une URL de compte afin que les utilisateurs soient redirigés vers le bon compte en cas de basculement.

OAuth

Configurez un objet d’intégration de sécurité pour OAuth dans chaque compte cible. L’objet d’intégration de sécurité doit être identique au même objet dans le compte source. Pour obtenir des instructions, reportez-vous à la section appropriée :

Pour récupérer les propriétés de l’intégration de sécurité, interrogez la commande DESCRIBE INTEGRATION pour chaque intégration de sécurité dans le compte source. Ensuite, recréez chaque intégration de sécurité dans un compte cible en exécutant la commande CREATE INTEGRATION.

Comportement de redirection OAuth

Si vous utilisez Snowflake OAuth pour authentifier une connexion client et que vous vous connectez à Snowflake à l’aide d’une URL de connexion, vous êtes invité à vous réauthentifier si l’URL de connexion est redirigée vers un autre compte (par exemple, en cas de basculement). Les jetons OAuth de Snowflake sont valables pour une utilisation dans un compte spécifique. Lorsqu’une URL de connexion est mise à jour pour pointer vers un compte dans un déploiement différent, le jeton OAuth existant devient non valide.

Dans le cas d’un basculement, lorsque l’URL de connexion est mise à jour vers le nouveau compte, le client se déconnecte avec une erreur invalid OAuth access token. Vous devez vous ré-authentifier et consentir aux autorisations pour rétablir la connexion.

Vérification de l’URL de connexion utilisée par vos utilisateurs

Interrogez la famille LOGIN_HISTORY , LOGIN_HISTORY_BY_USER de fonctions de table pour voir l’activité de connexion de vos utilisateurs au cours des 7 derniers jours. La sortie indique quels utilisateurs et clients Snowflake ont utilisé une URL de connexion. Les colonnes REPORTED_CLIENT_TYPE et REPORTED_CLIENT_VERSION affichent le client et la version utilisés pour chaque connexion à Snowflake, et la colonne CONNECTION affiche l’URL de connexion utilisée, le cas échéant.

Note

Si un client s’authentifie par le biais d’un fournisseur d’identité (IdP) qui est configuré avec l’URL de compte plutôt qu’avec l’URL de connexion, l’IdP dirige le client vers l’URL de compte une fois l’authentification terminée. La colonne CONNECTION de cet événement de connexion est NULL. Voir Authentification et redirection des clients (dans cette rubrique).

Par exemple, récupérez au maximum 100 événements de connexion de chaque utilisateur que votre rôle actuel est autorisé à surveiller durant les 72 dernières heures :

SELECT *
FROM TABLE(INFORMATION_SCHEMA.LOGIN_HISTORY(DATEADD('HOURS',-72,CURRENT_TIMESTAMP()),CURRENT_TIMESTAMP()))
ORDER BY EVENT_TIMESTAMP;

Rediriger les connexions du client

En cas de panne de service dans la région où se trouve la connexion primaire, redirigez la connexion du client vers un compte qui stocke une connexion secondaire.

Promouvoir une connexion secondaire pour servir de connexion primaire

Le lancement de la redirection implique la promotion d’une connexion secondaire dans une région disponible pour servir de connexion primaire en utilisant ALTER CONNECTION. Simultanément, l’ancienne connexion primaire devient une connexion secondaire.

Exécutez les instructions SQL de cette section dans le compte cible contenant la connexion secondaire actuelle que vous promouvez.

Exemple :

-- view all connections
SHOW CONNECTIONS;

+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+

-- promote the secondary connection to serve as the primary connection
ALTER CONNECTION myconnection PRIMARY;

-- verify that the former secondary connection was promoted successfully
SHOW CONNECTIONS;

+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+
| snowflake_region   | created_on                    | account_name        | name              | comment         | is_primary    | primary                       | failover_allowed_to_accounts        | connection_url                            | organization_name | account_locator   |
|--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------|
| AWS_US_WEST_2      | 2020-07-19 14:49:11.183 -0700 | MYORG.MYACCOUNT1    | MYCONNECTION      | NULL            | false         | MYORG.MYACCOUNT1.MYCONNECTION | MYORG.MYACCOUNT2, MYORG.MYACCOUNT3  | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR1 |
| AWS_US_EAST_1      | 2020-07-22 13:52:04.925 -0700 | MYORG.MYACCOUNT2    | MYCONNECTION      | NULL            | true          | MYORG.MYACCOUNT1.MYCONNECTION |                                     | myorg-myconnection.snowflakecomputing.com | MYORG             | MYACCOUNTLOCATOR2 |
+--------------------+-------------------------------+---------------------+-------------------+-----------------+---------------+-------------------------------+-------------------------------------+-------------------------------------------+-------------------+-------------------+

Modification de l’enregistrement DNS CNAME pour la connectivité privée au service Snowflake

Pour rediriger les connexions des clients vers un compte secondaire, votre administrateur réseau doit modifier l’enregistrement DNS CNAME créé dans Configuration de l’enregistrement DNS CNAME pour la connectivité privée au service Snowflake.

En utilisant un outil fourni par votre fournisseur de DNS, modifiez l’enregistrement CNAME de l’URL de connexion.

Définissez le nom d’hôte de destination comme l’URL du compte Snowflake complet pour le compte qui stocke votre nouvelle connexion primaire, y compris les segments supplémentaires qui identifient la région et la plate-forme Cloud où votre compte est hébergé et la prise en charge de AWS PrivateLink, Azure Private Link ou Google Cloud Private Service Connect. Il s’agit du nom du compte où les connexions des clients à l’URL de connexion seront désormais redirigées.

Par exemple :

myaccount1.us-east-1.privatelink.snowflakecomputing.com.

(Notez le point final, qui doit être inclus.)

Vérification de la mise à jour de l’URL de connexion

Pour vérifier que l’URL de connexion a été mise à jour, vous pouvez confirmer la région de votre connexion actuelle. Utilisez l’URL de connexion pour vous connecter à Snowflake et exécuter la fonction CURRENT_REGION.

select current_region();

Limites actuelles de la redirection des clients

  • La connectivité privée à Snowsight via les URLs d’AWS PrivateLink, d’Azure Private Link ou de Google Cloud Private Service Connect n’est pas prise en charge actuellement.

  • Les connexions clients utilisant une URL de connexion et une intégration OAuth nécessitent une nouvelle authentification lorsque l’URL de connexion est mise à jour pour pointer vers un compte différent. Pour plus de détails, voir Comportement de redirection OAuth (dans ce chapitre).

Revenir au début