Créer un catalogue

L’administrateur du service Snowflake Open Catalog crée un catalogue.

Les étapes pour créer un catalogue dépendent de votre fournisseur de stockage cloud.

Lorsque vous créez un catalogue, vous fournissez des informations sur votre stockage cloud externe et Snowflake Open Catalog utilise ces informations pour créer une configuration de stockage. Cette configuration stocke une entité de gestion de l’identité et de l’accès (IAM) pour votre stockage. Open Catalog utilise l’entité IAM pour une connexion en toute sécurité à vos emplacements de stockage afin d’accéder aux données de la table, aux métadonnées Apache Iceberg™ et aux fichiers manifestes.

Pour obtenir des instructions, reportez-vous aux sections suivantes :

Créer un catalogue à l’aide d’Amazon Simple Storage Service (Amazon S3)

Conditions préalables

  • Un compartiment de stockage S3 dans la même région que celle qui héberge votre compte Snowflake

    • Open Catalog ne peut pas prendre en charge les noms de compartiment contenant des points (par exemple, my.s3.bucket). Open Catalog utilise des chemins d’accès de style hôte virtuel et HTTPS pour accéder aux données de S3. Cependant, S3 ne prend pas en charge SSL pour les compartiments de style hôte virtuel dont le nom comporte des points.

    • Pour les fonctionnalités de récupération de données, consultez votre fournisseur de stockage.

  • Autorisations dans AWS pour créer et gérer des politiques et des rôles IAM.

    Si vous n’êtes pas un administrateur AWS, demandez à votre administrateur AWS d’effectuer ces tâches.

Étape 1 : créez une politique IAM qui accorde l’accès à votre emplacement S3

Pour configurer les autorisations d’accès pour Open Catalog dans la console de gestion AWS, procédez comme suit :

  1. Connectez-vous à la console de gestion AWS.

  2. Dans le tableau de bord d’accueil, sélectionnez IAM.

  3. Dans le volet de navigation, sélectionnez Paramètres du compte.

  4. Sous Service d’émission de jeton de sécurité (STS), dans la liste Points de terminaison, recherchez la région Open Catalog dans laquelle se trouve votre compte et si le statut STS est inactif, définissez le bouton bascule sur Actif.

  5. Dans le volet de navigation, sélectionnez Politiques.

  6. Sélectionnez Créer une politique.

  7. Pour l”éditeur de politiques, sélectionnez JSON.

  8. Ajoutez une politique pour fournir à Open Catalog les autorisations nécessaires pour lire et écrire des données sur votre emplacement S3.

    L’exemple de politique suivant accorde l’accès à tous les emplacements du compartiment spécifié :

       {
          "Version": "2012-10-17",
          "Statement": [
                {
                   "Effect": "Allow",
                   "Action": [
                      "s3:PutObject",
                      "s3:GetObject",
                      "s3:GetObjectVersion",
                      "s3:DeleteObject",
                      "s3:DeleteObjectVersion"
                   ],
                   "Resource": "arn:aws:s3:::<my_bucket>/*"
                },
                {
                   "Effect": "Allow",
                   "Action": [
                      "s3:ListBucket",
                      "s3:GetBucketLocation"
                   ],
                   "Resource": "arn:aws:s3:::<my_bucket>",
                   "Condition": {
                      "StringLike": {
                            "s3:prefix": [
                               "*"
                            ]
                      }
                   }
                }
          ]
       }
    
    Copy

    Remarque

    • Remplacez *my_bucket* par le nom de votre compartiment. Vous pouvez également spécifier un chemin dans le compartiment ; par exemple, *my_bucket*/*path*.

    • Si vous définissez la condition "s3:prefix": sur ["*"], vous aurez accès à tous les préfixes du compartiment spécifié ; si vous la définissez sur ["*path*/*"], vous aurez accès à un chemin spécifié du compartiment.

    • Pour les compartiments des régions gouvernementales , les ARNs de compartiments utilisent le préfixe arn:aws-us-gov:s3:::.

  9. Sélectionnez Suivant.

  10. Pour Nom de la politique, saisissez un nom de politique (par exemple, open_catalog_access).

  11. Facultatif : pour Description, saisissez une description.

  12. Sélectionnez Créer une politique.

Étape 2 : créez un rôle IAM qui accorde des privilèges sur le compartiment S3

  1. Dans la console de gestion AWS, dans le tableau de bord de la gestion des identités et des accès (IAM), dans le volet de navigation, sélectionnez Rôles.

  2. Sélectionnez Créer un rôle.

  3. Comme type d’entité de confiance, sélectionnez Compte AWS.

  4. Sous Un compte AWS, sélectionnez Ce compte.

    Dans une étape ultérieure, vous modifierez la relation de confiance et accorderez l’accès à Open Catalog.

  5. Facultatif : pour créer un ID externe, cochez la case Exiger un ID externe et saisissez un ID externe ; par exemple, open_catalog_external_id.

    Remarque

    Si vous ne créez pas d’ID externe lorsque vous créez un catalogue, Open Catalog génère un ID externe pour que vous puissiez l’utiliser. Un ID externe est utilisé pour accorder l’accès à vos ressources AWS (telles que des compartiments S3) à un tiers comme Open Catalog.

  6. Sélectionnez Suivant.

  7. Sélectionnez la politique que vous avez créée à l’étape précédente, puis sélectionnez Suivant.

  8. Saisissez un nom de rôle et une description pour le rôle, puis sélectionnez Créer un rôle.

    Vous avez maintenant créé une politique IAM pour un emplacement S3, créé un rôle IAM et vous avez associé la politique au rôle.

  9. Pour afficher la page de résumé du rôle, sélectionnez Afficher le rôle.

  10. Localisez et enregistrez la valeur de ARN (Amazon Resource Name) pour le rôle.

Étape 3 : créer un catalogue dans Open Catalog

  1. Connectez-vous à Open Catalog.

  2. Sur la page d’accueil d’Open Catalog, dans la zone Catalogues, sélectionnez + Créer.

  3. Dans la boîte de dialogue Créer un catalogue, complétez les champs :

    1. Pour Nom, saisissez un nom pour le catalogue.

      Les noms de catalogue sont sensibles à la casse.

    2. Facultatif : pour créer un catalogue externe, définissez le bouton bascule Externe sur Activé.

      Pour plus d’informations sur les catalogues externes, voir Types de catalogue.

    3. Pour Fournisseur de stockage, sélectionnez S3.

    4. Pour Emplacement de base par défaut, saisissez l’emplacement de base par défaut de votre compartiment de stockage S3 AWS.

    5. Facultatif : si le catalogue contient des objets stockés à plusieurs emplacements, répertoriez chaque emplacement supplémentaire (séparé par une virgule) dans Emplacements supplémentaires (facultatif).

    6. Pour le rôle S3 ARN, saisissez l’ARN du rôle IAM que vous avez créé pour Open Catalog.

    7. Facultatif : si vous avez créé un ID externe lorsque vous avez créé un rôle IAM, pour ID externe, saisissez l’ID externe.

    8. Sélectionnez Créer.

Étape 4 : récupérer l’utilisateur IAM AWS de votre compte Open Catalog

  1. Sur la page d’accueil d’Open Catalog, dans la zone Catalogues, sélectionnez le catalogue que vous avez créé.

  2. Sous Détails de stockage, copiez l”arn utilisateur IAM ; par exemple, arn:aws:iam::123456789001:user/abc1-b-self1234.

    Open Catalog fournit un seul utilisateur IAM pour l’ensemble de votre compte Open Catalog. Toutes les configurations de stockage S3 de votre compte utilisent cet utilisateur IAM.

    Remarque Si vous n’avez pas spécifié d’ID externe lorsque vous avez créé votre rôle IAM, Open Catalog génère un ID externe pour que vous puissiez l’utiliser. Enregistrez la valeur afin de pouvoir mettre à jour votre politique de confiance du rôle IAM avec l’ID de rôle externe généré.

Étape 5 : octroyer à l’utilisateur IAM des autorisations pour accéder à des objets de compartiment

  1. Connectez-vous à la console de gestion AWS.

  2. Dans le tableau de bord d’accueil, recherchez et sélectionnez IAM.

  3. Dans le volet de navigation, sélectionnez Rôles.

  4. Sélectionnez le rôle IAM que vous avez créé pour votre configuration de stockage.

  5. Sélectionnez l’onglet Relations de confiance.

  6. Sélectionnez Modifier la politique de confiance.

  7. Modifiez le document de politique en y ajoutant les détails de stockage du catalogue que vous avez enregistrés :

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Sid": "",
             "Effect": "Allow",
             "Principal": {
               "AWS": "<open_catalog_user_arn>"
             },
             "Action": "sts:AssumeRole",
             "Condition": {
               "StringEquals": {
                 "sts:ExternalId": "<open_catalog_external_id>"
               }
             }
           }
         ]
       }
    
    Copy

    Où :

    • open_catalog_user_arn est l’ARN de l’utilisateur IAM que vous avez enregistré.

    • open_catalog_external_id est votre ID externe. Si vous avez spécifié un ID externe lors de la création du rôle et que vous avez utilisé le même ID pour créer votre configuration de stockage, laissez la valeur telle quelle. Sinon, mettez à jour sts:ExternalId avec la valeur que vous avez enregistrée.

    Remarque

    Vous devez mettre à jour ce document de politique si vous créez une nouvelle configuration de stockage et que vous ne fournissez pas votre propre ID externe. Pour des raisons de sécurité, une configuration de stockage nouvelle ou recréée a un ID externe différent et ne peut pas résoudre la relation de confiance à moins que vous ne mettiez à jour cette politique de confiance.

    Exemple de document de politique pour le rôle IAM

    Mettez à jour la politique de confiance pour le rôle IAM.

  8. Pour enregistrer vos modifications, sélectionnez Mettre à jour la politique.

Création d’un catalogue à l’aide de Cloud Storage de Google

Cette section explique comment créer un catalogue et accorder à Open Catalog un accès restreint à un compartiment Cloud Storage à l’aide d’une configuration de stockage.

Un administrateur de votre organisation accorde à l’utilisateur IAM des autorisations dans votre compte Google Cloud.

Remarque

  • Pour suivre les instructions de cette rubrique, des autorisations sont nécessaires dans Google Cloud pour pouvoir créer et gérer des politiques et des rôles IAM. Si vous n’êtes pas un administrateur Google Cloud, demandez à votre administrateur Google Cloud d’effectuer ces tâches.

  • Pour les fonctionnalités de récupération de données, consultez votre fournisseur de stockage.

Étape 1 : créer un catalogue

  1. Connectez-vous à Open Catalog.

  2. Sur la page d’accueil d’Open Catalog, dans la zone Catalogues, sélectionnez + Créer.

  3. Dans la boîte de dialogue Créer un catalogue, complétez les champs :

    1. Pour Nom, saisissez un nom pour le catalogue.

      Les noms de catalogue sont sensibles à la casse.

    2. Facultatif : pour créer un catalogue externe, définissez le bouton bascule Externe sur Activé.

      Pour plus d’informations sur les catalogues externes, voir Types de catalogue.

    3. Pour Fournisseur de stockage, sélectionnez GCS.

    4. Pour Emplacement de base par défaut, saisissez l’emplacement de base par défaut de votre compartiment de stockage Cloud.

    5. Facultatif : si le catalogue contient des objets stockés à plusieurs emplacements, pour Emplacements supplémentaires (facultatif), répertoriez chaque emplacement de stockage supplémentaire, séparé par une virgule.

    6. Sélectionnez Créer.

Étape 2 : récupérer le compte de service Google Cloud pour votre compte Open Catalog

  1. Sur la page d’accueil d’Open Catalog, dans la zone Catalogues, sélectionnez le catalogue que vous avez créé.

  2. Sous Détails de stockage, copiez l’ID GCP_SERVICE_ACCOUNT ; par exemple, service-account-id@project1-123456.iam.gserviceaccount.com.

    Open Catalog fournit un seul compte de service Google Cloud pour l’ensemble de votre compte Open Catalog et utilise ce compte de service lors de l’accès au stockage sur Google Cloud.

Étape 3 : Accorder au compte de service des autorisations lui permettant d’accéder à des objets du compartiment

À cette étape, vous configurez les autorisations d’accès IAM pour Open Catalog dans votre console Google Cloud.

Créer un rôle IAM personnalisé

Créez un rôle personnalisé disposant des autorisations requises pour accéder au compartiment et obtenir des objets.

  1. Connectez-vous à la console Google Cloud en tant qu’éditeur de projet.

  2. Dans le menu de navigation du tableau de bord d’accueil, sélectionnez IAM & Admin > Rôles.

  3. Sélectionnez Créer un rôle.

  4. Pour Titre, saisissez un titre pour le rôle personnalisé.

  5. Facultatif : pour Description, saisissez une description pour le rôle personnalisé.

  6. Sélectionnez Ajouter des autorisations.

  7. Dans Filtre, sélectionnez Service, puis stockage.

  8. Filtrez la liste des autorisations et ajoutez les éléments suivants dans la liste :

    • storage.buckets.get

    • storage.objects.create

    • storage.objects.delete

    • storage.objects.get

    • storage.objects.list

  9. Sélectionnez Ajouter.

  10. Sélectionnez Créer.

Affectation du rôle personnalisé au compte de service Google Cloud

Restez dans la console Google Cloud pour cette procédure.

  1. Dans le menu de navigation du tableau de bord d’accueil, sélectionnez Cloud Storage > Compartiments.

  2. Filtrez la liste des compartiments et sélectionnez le compartiment que vous avez spécifié dans votre configuration de stockage Open Catalog.

  3. Sélectionnez Autorisations> Afficher par principaux, puis sélectionnez Accorder l’accès.

  4. Sous Ajouter des principaux, collez l’ID du compte de service que vous avez copié plus tôt.

  5. Sous Attribuer des rôles, sélectionnez le rôle IAM personnalisé que vous avez créé précédemment, puis sélectionnez Enregistrer.

Création d’un catalogue à l’aide d’Azure Storage

Cette section explique comment accorder à Open Catalog un accès restreint à votre propre conteneur Microsoft Azure à l’aide d’une configuration de stockage. Open Catalog prend en charge les services de stockage Cloud Azure suivants pour les configurations de stockage :

  • Stockage d’objets blob

  • Data Lake Storage Gen2

  • Usage général v1

  • Usage général v2

Un administrateur de votre organisation accorde des autorisations à l’utilisateur IAM dans votre compte Azure.

Remarque

  • Pour terminer les instructions de cette rubrique, des autorisations sont nécessaires dans Azure pour créer et gérer des politiques et des rôles IAM. Si vous n’êtes pas un administrateur Azure, demandez à votre administrateur Azure d’effectuer ces tâches.

  • Pour les fonctionnalités de récupération de données, consultez votre fournisseur de stockage.

Étape 1 : créer un catalogue

  1. Connectez-vous à Open Catalog.

  2. Sur la page d’accueil d’Open Catalog, dans la zone Catalogues, sélectionnez + Créer.

  3. Dans la boîte de dialogue Créer un catalogue, complétez les champs :

    1. Pour Nom, saisissez un nom pour le catalogue.

      Les noms de catalogue sont sensibles à la casse.

    2. Facultatif : pour créer un catalogue externe, définissez le bouton bascule Externe sur Activé.

      Pour plus d’informations sur les catalogues externes, voir Types de catalogue.

    3. Pour Fournisseur de stockage, sélectionnez AZURE.

    4. Pour Emplacement de base par défaut, saisissez l’emplacement de base par défaut de votre compartiment de stockage Azure en appliquant à partir de cette liste le format applicable au chemin d’accès au point de terminaison principal de votre conteneur :

      Type de point de terminaison

      Format

      Exemple d’emplacement de base par défaut

      Objet blob

      abfss://<container_name>@<storage_account_name>.blob.core.windows.net/<directory_name>/

      abfss://my_container1@my_storageaccount1.blob.core.windows.net/my_directory1/

      Azure Data Lake Storage (ADLS)

      abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<directory_name>/

      abfss://my_container2@my_storageaccount2.dfs.core.windows.net/my_directory2/

      Remarque

      • Vous avez copié ce chemin et le nom de votre conteneur lorsque vous avez créé un conteneur Microsoft Azure.

      • Dans le chemin d’accès au point de terminaison principal de votre conteneur, le nom de votre compte de stockage est le texte entre https:// et le premier point du chemin.

      • Utilisez le préfixe abfss://, et non https://.

    5. Facultatif : si le catalogue contient des objets stockés à plusieurs emplacements, pour Emplacements supplémentaires (facultatif), répertoriez chaque emplacement de stockage supplémentaire, séparé par une virgule.

    6. Pour ID client, saisissez l’ID du client Azure.

    7. Sélectionnez Créer.

Étape 2 : copier les valeurs de l’emplacement de stockage

  1. Sur la page d’accueil d’Open Catalog, dans la zone Catalogues, sélectionnez le catalogue que vous avez créé.

  2. Sous Détails de stockage, copiez les valeurs suivantes :

    Propriété

    Description

    AZURE_CONSENT_URL

    URL vers la page de demande d’autorisations de Microsoft.

    AZURE_MULTI_TENANT_APP_NAME

    Nom de l’application client Snowflake créée pour votre compte. Ultérieurement dans cette section, vous accorderez à cette application l’autorisation nécessaire pour obtenir un jeton d’accès sur votre emplacement de stockage autorisé.

    Vous utiliserez ces valeurs dans les étapes suivantes.

Étape 3. Accorder au principal du service Azure des autorisations pour un jeton d’accès

  1. Dans un navigateur web, accédez à la page de demande d’autorisations Microsoft (l’URL de consentement Azure).

  2. Sélectionnez Accepter.

    Cette action permet au principal du service Azure créé pour votre compte Open Catalog d’obtenir un jeton d’accès sur les ressources spécifiées à l’intérieur de votre client. L’obtention d’un jeton d’accès ne réussit que si vous accordez au principal du service les autorisations appropriées sur le conteneur. La page de demande d’autorisations Microsoft redirige vers le site d’entreprise de Snowflake (snowflake.com).

  3. Connectez-vous au portail Microsoft Azure.

  4. Ouvrez Services Azure > Comptes de stockage.

  5. Sélectionnez le nom du compte de stockage auquel le principal de service Open Catalog doit accéder.

  6. Sélectionnez Contrôle d’accès (IAM)> Ajouter une affectation de rôle.

  7. Sélectionnez le rôle souhaité à accorder au principal du service Open Catalog, tel que le rôle de contributeur de données de stockage Blob.

    Le rôle de contributeur de données de stockage Blob accorde un accès en lecture et en écriture au principal du service Open Catalog et accorde un accès en écriture à l’emplacement de stockage.

    Remarque

    Open Catalog émet un jeton de signature d’accès partagé de délégation utilisateur (SAS). Le jeton SAS permettant d’accéder au stockage Blob est limité au niveau du conteneur plutôt qu’au niveau du blob ou du répertoire. Le rôle que vous sélectionnez doit disposer de l’autorisation de créer la clé de délégation utilisateur. Pour obtenir une liste de ces rôles, voir Attribuer des autorisations avec RBAC.

  8. Sélectionnez Suivant.

  9. Sélectionnez + Sélectionner les membres.

  10. Au bout d’une heure, recherchez et sélectionnez le principal du service Open Catalog, qui est la propriété du nom de l’application multi-clients Azure. Recherchez la chaîne avant le trait de soulignement dans la valeur de la propriété.

    Important

    • Azure peut prendre une heure ou plus pour créer le principal de service Open Catalog demandé via la page de demande Microsoft dans cette section. Si le principal du service n’est pas disponible immédiatement, attendez une heure ou deux, puis relancez la recherche.

    • Si vous supprimez le principal de service, le catalogue cessera de fonctionner en raison d’un échec d’authentification.

  11. Sélectionnez Sélectionner.

  12. Sélectionnez Examiner + attribuer.

Remarque

Lors de l’attribution d’un rôle, il faut compter jusqu’à 10 minutes pour que les modifications soient prises en compte. Pour plus d’informations, voir Symptôme - Les changements d’attribution de rôle ne sont pas détectés dans la documentation Microsoft Azure.