Gérer les points de terminaison de connectivité privée pour Snowflake Open Catalog : AWS¶
Lorsque les données de vos catalogues dans votre compte Snowflake Open Catalog sont stockées dans des compartiments de stockage Amazon Simple Storage Service (Amazon S3), suivez ces étapes pour configurer la connectivité privée pour le trafic réseau sortant.
Pour activer la connectivité privée pour votre compte Open Catalog, il vous suffit généralement de suivre une seule fois les étapes de configuration de cette rubrique. Ensuite, vous activez la connectivité privée sortante pour chaque catalogue dans votre compte Open Catalog.
Par exemple, si vous avez effectué les étapes de configuration et que vous créez ensuite un nouveau catalogue catalog1
, vous n’aurez généralement qu’à activer la connectivité privée sortante pour catalog1
. Pour obtenir des instructions sur l’activation de la connectivité privée pour un catalogue, consultez Activer la connectivité privée sortante pour un catalogue. Toutefois, si catalog1
utilise un compartiment de stockage dont vous n’avez pas mis à jour la politique, vous devez également mettre à jour la politique de compartiment pour ce compartiment. Lorsque vous mettez à jour une politique de compartiment, vous limitez l’accès au réseau pour le compartiment à un point de terminaison de connectivité privée.
Conditions préalables¶
Votre compte Open Catalog et votre stockage Cloud externe doivent tous deux être hébergés dans la même région AWS.
Vous avez besoin des autorisations IAM dans AWS qui vous permettent de modifier la politique du compartiment de stockage AWS où sont stockées vos tables Iceberg. Pour plus d’informations, consultez la rubrique Politiques de compartiment pour Amazon S3 dans la documentation de AWS.
Votre moteur de requête tiers ou votre moteur Snowflake doit avoir accès à votre compartiment de stockage via AWS PrivateLink ou un point de terminaison S3 Gateway. Pour plus de détails, voir Configurer un point de terminaison d’interface dans la documentation de AWS. Sinon, lorsque vous activez la connectivité privée sortante, le moteur ne peut pas lire ou écrire dans les tables stockées dans le compartiment, mais Open Catalog peut lire ou écrire des métadonnées dans le compartiment.
Paramétrage de la connectivité privée pour votre compte¶
Suivez les étapes suivantes pour mettre en place la connectivité privée pour votre compte Open Catalog.
Étape 1 : créez une connexion Snowflake CLI pour Open Catalog¶
Pour mettre en place une connectivité privée dans Open Catalog, vous avez besoin d’une connexion Snowflake CLI pour Open Catalog. Suivez les étapes suivantes pour créer cette connexion. Si le programme d’installation de Snowflake CLI n’est pas encore installé, voir Installation de Snowflake CLI.
Avant de commencer¶
Pour créer une connexion au compte Snowflake CLI pour Open Catalog, vous avez besoin de votre identificateur de compte complet Open Catalog. L’identificateur de compte comprend le nom de votre organisation Snowflake et le nom de votre compte Open Catalog ; par exemple, <nom organisation>.<my-snowflake-open-catalog-account-name>
.
Pour trouver le nom de votre organisation Snowflake (
<nom organisation>
), voirTrouver le nom de l'organisation et du compte pour un compte <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>
_.Pour trouver votre nom de compte Snowflake Open Catalog (
<my-snowflake-open-catalog-account-name>
), voirTrouver le nom de compte d'un compte Snowflake Open Catalog <https://other-docs.snowflake.com/en/opencatalog/find-account-name>
_.
Important
Pour créer cette connexion, vous devez être un utilisateur d’Open Catalog disposant des privilèges d’administrateur de service. Pour des informations sur les privilèges de l’administrateur du service, voir Rôle de l’administrateur du service.
Ajoutez une connexion Snowflake CLI pour Snowflake Open Catalog¶
Ajoutez une connexion pour le compte Snowflake Open Catalog dans lequel vous souhaitez activer la connectivité privée.
Ajoutez une connexion <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>
_ avec les valeurs suivantes. Pour tous les autres paramètres, appuyez sur Entrer pour ne pas spécifier de valeur pour le paramètre.Paramètres de configuration de la connexion
Valeur
Nom de cette connexion
Indiquez un nom pour la connexion ; par exemple,
myopencatalogconnection
.Nom du compte
Indiquez le nom de votre organisation Snowflake, suivi du nom de votre compte Open Catalog, dans ce format :
<orgnamemy-snowflake-open-catalog-account-name>-<>
.Par exemple,
ABCDEFG-MYACCOUNT1
.Pour trouver ces noms, voir
Avant de commencer
_.Nom d’utilisateur
Spécifiez votre nom d’utilisateur pour Open Catalog ; par exemple,
jsmith
.Mot de passe [optionnel]
Ce paramètre est non optionnel lorsque vous créez une connexion pour Open Catalog.
Saisissez votre mot de passe pour Open Catalog ; par exemple,
MyPassword123456789
.Rôle pour la connexion [optionnel]
Ce paramètre est non optionnel lorsque vous créez une connexion pour Open Catalog.
Vous devez saisir
POLARIS_ACCOUNT_ADMIN
Testez la connexion Snowflake CLI¶
Pour tester votre connexion à CLI, suivez cet exemple, qui teste la connexion à
myopencatalogconnection
:snow connection test -c myopencatalogconnection
La réponse devrait ressembler à ceci :
+------------------------------------------------------------------------------+ | key | value | |----------------------------+-------------------------------------------------| | Connection name | myopencatalogconnection | | Status | OK | | Host | ABCDEFG-MYACCOUNT1.snowflakecomputing.com | | Account | ABCDEFG-MYACCOUNT1 | | User | jsmith | | Role | POLARIS_ACCOUNT_ADMIN | | Database | not set | | Warehouse | not set | +------------------------------------------------------------------------------+
Paramétrez votre connexion Snowflake CLI pour Snowflake Open Catalog comme connexion par défaut¶
Pour vous assurer que la connexion que vous utilisez dispose toujours du rôle POLARIS_ACCOUNT_ADMIN requis, vous pouvez définir la connexion Snowflake CLI que vous avez créée pour Open Catalog comme la connexion par défaut. Pour plus d’informations sur la connexion par défaut, voir Paramétrer la connexion par défaut <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>
_.
Suivez cet exemple, qui paramètre la connexion
myopencatalogconnection
par défaut :snow connection set-default myopencatalogconnection
Pour confirmer que vous utilisez l’utilisateur et le rôle corrects, exécutez la procédure suivante :
snow sql -q "Select current_user(); select current_role();"
La réponse devrait renvoyer votre nom d’utilisateur Open Catalog et le ROLE CURRENT devrait être POLARIS_ACCOUNT_ADMIN.
+----------------+ | CURRENT_USER() | |----------------| | JSMITH | +----------------+ select current_role(); +-----------------------+ | CURRENT_ROLE() | |-----------------------| | POLARIS_ACCOUNT_ADMIN | +-----------------------+
Étape 2 : Mettez à disposition un point de terminaison de connectivité privée¶
Utilisez votre connexion Snowflake CLI pour Open Catalog afin d’appeler les fonctions suivantes du système :
Pour provisionner un point de terminaison de connectivité privée pour vos compartiments de stockage, appelez la fonction système SYSTEM$PROVISION_PRIVATELINK_ENDPOINT.
Pour confirmer que le point de terminaison de connectivité privée est prêt à être utilisé, appelez la fonction système SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO.
Pour obtenir des instructions, reportez-vous à la section Fournir des points de terminaison de connectivité privée dans la documentation de Snowflake. N’oubliez pas que les instructions se réfèrent à un compte Snowflake et non à un compte Snowflake Open Catalog, mais le processus est le même dans Open Catalog.
Important
Vous devez utiliser le rôle POLARIS_ACCOUNT_ADMIN au lieu du rôle ACCOUNTADMIN mentionné dans les instructions.
Si la connexion Snowflake CLI que vous avez définie par défaut n’a pas le rôle POLARIS_ACCOUNT_ADMIN, vous devez inclure l’instruction suivante dans votre commande :
USE ROLE POLARIS_ACCOUNT_ADMIN;
Avec votre commande, vous devez insérer une barre oblique immédiatement avant
$
pour l’échapper. Par exemple,snow sql -q "SELECT SYSTEM\$GET_PRIVATELINK_CONFIG();"
.
Note
Vous pouvez utiliser ce point de terminaison de connectivité privée que vous provisionnez pour accorder l’accès à tous les compartiments de stockage situés dans la même région AWS où votre compte Open Catalog est hébergé ; vous ne pouvez pas l’utiliser pour accorder l’accès à un compartiment situé dans une région différente.
Exemple : Mise à disposition d’un point de terminaison de connectivité privée¶
L’exemple suivant crée un PrivateLink avec un accès externe à Amazon S3 afin de configurer un point de terminaison pour la région us-west-2
:
SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT(
'com.amazonaws.us-west-2.s3',
'*.s3.us-west-2.amazonaws.com'
);
Étape 3 : Mettez à jour votre politique en matière de compartiments¶
Pour limiter l’accès réseau à votre compartiment de stockage au point de terminaison de connectivité privée que vous avez créé à l’étape précédente, dans AWS, mettez à jour la politique de compartiment pour votre compartiment de stockage. Pour obtenir des instructions, reportez-vous à la section Restreindre l’accès à un VPCendpoint spécifique dans la documentation AWS. Pour <vpce-id>
dans la politique de compartiment, indiquez l’ID du point de terminaison de connectivité privée que vous avez créé à l’étape précédente.
Si nécessaire, répétez cette étape pour tous les autres compartiments que vous souhaitez connecter à Open Catalog.
Important
Assurez-vous que votre politique de compartiment inclut des privilèges qui vous permettent d’accéder au compartiment et à la politique de compartiment à partir du navigateur après l’avoir ajouté. Sinon, après avoir mis à jour votre politique de compartiment, vous ne pourrez plus accéder au compartiment ou à la politique de compartiment à partir du navigateur.
Cet exemple de politique de compartiment vous permet d’accéder au compartiment et à la politique de compartiment à partir du navigateur :
{
"Version": "2012-10-17",
"Id": "Policy1234567890123",
"Statement": [
{
"Sid": "Deny public access",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:PutObject",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"StringNotLike": {
"aws:SourceVpc": "vpc-*"
}
}
},
{
"Sid": "Access-to-specific-VPCE-only",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion",
"s3:PutObject",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpce": "vpce-xxxxxxxxxxx"
}
}
}
]
}
Activez la connectivité privée sortante pour un catalogue¶
Cette section décrit comment activer la connectivité privée sortante pour un catalogue dans votre compte Open Catalog.
Étape 1 : Activez la connectivité privée¶
Vous pouvez activer la connectivité privée pour un catalogue nouveau ou existant :
Activer la connectivité privée pour un nouveau catalogue¶
Suivez les instructions de Créer un catalogue à l’aide d’Amazon Simple Storage Service (Amazon S3). Assurez-vous que, pour le catalogue, la bascule Private Link est activée.
Note
Si vous n’avez pas mis à jour la politique du compartiment où sont stockées les tables du catalogue, consultez Mettez à jour votre politique en matière de compartiments. Lorsque vous mettez à jour une politique de compartiment, vous limitez l’accès réseau à votre compartiment de stockage à votre point de terminaison de connectivité privée.
Activez la connectivité privée pour un catalogue existant¶
Connectez-vous à Open Catalog.
Dans le menu de navigation, sélectionnez Catalogues.
Dans la liste des catalogues, sélectionnez le catalogue pour lequel vous souhaitez activer la connectivité privée.
Dans l’onglet Détails du catalogue, paramétrez l’option PrivateLink sur activé.
Étape 2 : Créez une table en utilisant le moteur de requête¶
Pour vérifier que votre moteur de requête est connecté à votre catalogue via AWS PrivateLink, utilisez votre moteur de requête pour créer une table et y insérer des données. Si vous ne pouvez pas insérer de données dans la table, il se peut que vous n’ayez pas configuré AWS PrivateLink pour le moteur de requête.
Dépannage¶
Cette section fournit des solutions aux problèmes liés à la connectivité privée sortante pour le trafic réseau.
Impossible de voir le schéma d’une table dans Open Catalog¶
Symptôme
Dans Open Catalog, vous sélectionnez une table dans votre catalogue (par exemple, catalog1
) mais vous recevez le message d’erreur suivant : « Aucune autorisation d’accès à cette ressource ».
Cause
Dans AWS, vous avez mis à jour votre politique de compartiment pour router le trafic réseau via votre point de terminaison VPC. Cependant, dans Open Catalog, vous n’avez pas activé la connectivité privée pour ce catalogue, donc Open Catalog ne peut pas accéder à votre compartiment.
Solution
Activez la connectivité privée pour le catalogue (par exemple, catalog1
). Pour plus d’informations, consultez Activer la connectivité privée pour un nouveau catalogue.
Erreur « Business Critical » lors de l’exécution de la commande SYSTEM$PROVISION_PRIVATELINK_ENDPOINT¶
Symptôme
Dans votre connexion Snowflake CLI, vous exécutez la commande SYSTEM\$PROVISION_PRIVATELINK_ENDPOINT
, mais elle échoue avec le message d’erreur suivant : « Business Critical ou édition supérieure requises pour cette opération. Veuillez passer à l’édition valide et réessayer. »
Cause
L’édition de votre compte Open Catalog n’est pas Business Critical.
Pour activer la connexion privée pour le trafic réseau sortant, ce qui inclut le provisionnement d’un point de terminaison de connectivité privée, l”édition de votre compte Snowflake Open Catalog doit être Business Critical.
Solution
Contactez le support Snowflake pour obtenir de l’aide sur la mise à niveau de votre compte Open Catalog vers Business Critical.