Snowflake Data Clean Room : données externes provenant d’un compartiment Amazon S3

Les données analysées dans une Snowflake Data Clean Room peuvent être natives à Snowflake, résider en externe dans le stockage d’un fournisseur de cloud ou les deux. Un connecteur permet aux collaborateurs d’accéder aux données externes d’un fournisseur de cloud depuis la salle blanche.

Le connecteur de données externe utilise des tables externes Snowflake pour rendre les données disponibles. Soyez conscient qu’il existe un risque de sécurité accru associé à la liaison de tables externes dans une salle blanche. Par conséquent, le fournisseur doit autoriser explicitement l’utilisation de tables externes dans la salle blanche avant que les consommateurs puissent utiliser un connecteur pour inclure des données externes. Si le fournisseur utilise le connecteur de données externe, le consommateur est averti que des tables externes sont utilisées afin qu’il puisse décider d’installer ou non la salle blanche.

Cette rubrique décrit comment utiliser un connecteur pour que les analystes de salles blanches puissent accéder à des données externes à partir d’un compartiment Amazon S3.

Important

Les connecteurs tiers ne sont pas proposés par Snowflake et peuvent être soumis à des arguments supplémentaires. Ces intégrations sont mises à votre disposition pour votre commodité, mais vous êtes responsable de tout contenu envoyé ou reçu à partir des intégrations.

Les clients sont responsables de l’obtention de toutes les autorisations nécessaires à l’utilisation de Snowflake Data Clean Rooms. Veuillez vous assurer que vous respectez les lois et réglementations en vigueur lorsque vous utilisez Snowflake Data Clean Rooms, y compris en relation avec des connecteurs tiers à des fins d’activation.

Conditions préalables

Pour utiliser le connecteur pour les données externes :

Connexion à un compartiment S3

Le processus permettant aux collaborateurs de la salle blanche d’accéder aux données stockées sur Amazon S3 comprend les étapes suivantes :

  1. Dans AWS, réalisez ces procédures :

    1. Créez une IAM politique avec des autorisations spécifiques.

    2. Créez un rôle IAM qui fait référence à la nouvelle politique IAM.

    3. Copiez les identificateurs du compartiment S3 et le rôle IAM.

  2. Dans l’environnement de la salle blanche, créez le connecteur.

  3. Dans AWS, mettez à jour le rôle IAM avec les identificateurs de compte de service provenant de l’environnement de la salle blanche.

  4. Dans l’environnement de la salle blanche, authentifiez le connecteur avec AWS.

Créer une politique IAM dans AWS

Snowflake suggère de créer une politique IAM dédiée au connecteur qui inclut les autorisations nécessaires pour accéder au compartiment S3. Dans une étape ultérieure, vous ajoutez cette politique à un rôle IAM qui représente l’identité du connecteur.

Pour terminer cette procédure, vous devez connaître la région du compte associé à l’environnement de salle blanche.

Pour créer une politique IAM qui contient des autorisations sur le compartiment S3 :

  1. Connectez-vous à l”AWS Management Console.

  2. Dans le tableau de bord Console Home sélectionnez Identity and Access Management (IAM).

  3. Dans la navigation de gauche, sélectionnez Account settings.

  4. Dans la section Security Token Service (STS), trouvez la région du compte associée à l’environnement de la salle blanche et définissez Active.

  5. Dans la navigation de gauche, sélectionnez Policies.

  6. Sélectionnez Create policy.

  7. Dans la section Policy editor, sélectionnez JSON.

  8. Copiez et collez le corps de la politique suivante dans l’éditeur de politiques, puis modifiez JSON pour inclure le nom de votre compartiment (<compartiment>) et le préfixe du chemin du dossier (<préfixe>).

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

    Veillez à conserver le format :::. Par exemple, si votre URI de compartiment S3 est s3://sales/customers/, la valeur du champ Resource JSON est arn:aws:s3:::sales/customers/*.

  9. Sélectionnez Next.

  10. Saisissez un nom de politique (par exemple, snowflake_cleanroom_access) et sélectionnez Create policy.

Créer un rôle IAM dans AWS

Le rôle IAM AWS représente l’identité du connecteur. Au cours du processus de création, vous associez le rôle à la nouvelle politique IAM qui accorde les autorisations dont le connecteur a besoin pour accéder au compartiment S3.

Pour créer un nouveau rôle IAM :

  1. Depuis le tableau de bord Console Home dans AWS, sélectionnez Identity and Access Management (IAM).

  2. Dans la navigation de gauche, sélectionnez Roles.

  3. Sélectionnez Create role.

  4. Dans la section Trusted entity type, sélectionnez AWS account.

  5. Dans la section An AWS account, sélectionnez Another AWS account.

  6. Dans le champ Account ID saisissez une valeur d’espace réservé temporaire contenant 12 chiffres (par exemple, l’identificateur du compte actuel AWS). Vous remplacerez cette valeur plus tard.

  7. Sélectionnez Require external id, puis saisissez une valeur d’espace réservé temporaire telle que 0000. Vous remplacerez cette valeur plus tard.

  8. Sélectionnez Next.

  9. Dans la section Permissions policies, recherchez la politique que vous avez créée dans la procédure précédente et cochez sa case.

  10. Sélectionnez Next.

  11. Saisissez un nom de rôle (par exemple, snowflake_cleanroom_connector) et sélectionnez Create role.

Copier les identificateurs de rôle IAM et des compartiments S3

Lors de la création du connecteur dans l’environnement de la salle blanche, vous avez besoin des identificateurs du compartiment S3 et du rôle IAM. Avant de créer le connecteur, suivez les étapes suivantes pour copier et enregistrer ces identificateurs :

Pour copier l’identificateur de rôle IAM :

  1. Depuis le tableau de bord Console Home dans AWS, sélectionnez Identity and Access Management (IAM).

  2. Dans la navigation de gauche, sélectionnez Roles.

  3. Recherchez le rôle que vous avez créé dans la procédure précédente et sélectionnez-le pour l’ouvrir.

  4. Dans la section Summary , recherchez l” ARN et sélectionnez l’icône de copie. Enregistrez cet identificateur de rôle pour une étape ultérieure.

Pour copier l’identificateur du compartiment S3 :

  1. Depuis le tableau de bord Console Home dans AWS, sélectionnez S3.

  2. Trouvez le nom de votre compartiment S3 et sélectionnez-le pour l’ouvrir. Le compartiment doit contenir les données que vous souhaitez inclure dans la salle blanche.

  3. Naviguez dans le préfixe du compartiment, puis sélectionnez Copy S3 URI. Enregistrez cet identificateur de compartiment pour une étape ultérieure.

    N’essayez pas de sélectionner le bouton dans la section Objects.

Créer un connecteur et copier les détails du compte de service

Vous êtes maintenant prêt à créer le connecteur dans l’environnement de la salle blanche. Une fois le connecteur créé, copiez les détails de son compte de service afin de l’associer au rôle IAM dans AWS.

Pour créer le connecteur dans votre environnement de salle blanche :

  1. Accédez à la page de connexion Snowflake Data Clean Rooms.

  2. Saisissez votre adresse e-mail et sélectionnez Continue.

  3. Entrez votre mot de passe.

  4. Si vous êtes associé à plusieurs environnements de salles blanches, sélectionnez le compte Snowflake que vous souhaitez utiliser.

  5. Dans la navigation de gauche, sélectionnez Connectors, puis développez la section Amazon Web Services.

  6. Dans le champ AWS Role ARN, saisissez l’identificateur du rôle IAM que vous avez copié depuis AWS, tel que arn:aws:iam::772412615275:role/mub00002_vhb71832_role.

  7. Dans le champ S3 Bucket URI, saisissez l’identificateur du compartiment S3 que vous avez copié depuis AWS, tel que s3://sales/customer_data/.

  8. Sélectionnez Create.

    La salle blanche génère un compte de service qu’elle utilise pour accéder à AWS.

  9. Utilisez l’icône de copie pour copier les identificateurs Principal et External ID du compte de service du connecteur et enregistrez-les pour la procédure suivante.

Mettre à jour le rôle IAM avec les détails du compte de service

Vous êtes maintenant prêt à mettre à jour le rôle IAM avec les identificateurs associés au compte de service du connecteur. Pour mettre à jour le rôle IAM :

  1. Connectez-vous à l”AWS Management Console.

  2. Dans le tableau de bord Console Home sélectionnez Identity and Access Management (IAM).

  3. Dans la navigation de gauche, sélectionnez Roles.

  4. Recherchez le rôle que vous avez créé plus tôt et sélectionnez-le pour l’ouvrir.

  5. Sélectionnez l’onglet Trust relationships.

  6. Sélectionnez Edit trust policy.

  7. Modifiez le JSON de la politique de confiance pour y inclure les identificateurs du compte de service du connecteur. Vous avez copié ces identificateurs plus tôt. Apporter les modifications suivantes au JSON :

    • Remplacez la valeur du champ AWS JSON par la valeur Principal que vous avez copiée dans l’environnement de la salle blanche.

      Dans l’exemple suivant, la valeur de Principal dans l’environnement de la salle blanche est arn:aws:iam::115136555074:user/x4gy-s-p2345g38.

    • Remplacez la valeur du champ sts:ExternalId JSON par la valeur External ID que vous avez copiée dans l’environnement de la salle blanche.

      Dans l’exemple suivant, la valeur de External ID dans l’environnement de la salle blanche est UCA56729_SFCRole=4447_uht2344sdf3mrWLNRM0y3bE=.

      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Principal": {
              "AWS": "arn:aws:iam::115136555074:user/x4gy-s-p2345g38"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
              "StringEquals": {
                "sts:ExternalId": "UCA56729_SFCRole=4447_uht2344sdf3mrWLNRM0y3bE="
              }
            }
          }
        ]
      }
      
      Copy
  8. Sélectionnez Update policy.

Authentifier le connecteur

Vous êtes maintenant prêt à authentifier le connecteur pour vous assurer qu’il peut accéder au compartiment S3. Pour authentifier le connecteur :

  1. Si vous êtes autorisé à quitter la salle blanche, consultez Connectez-vous à l’application Web..

  2. Dans l’environnement de la salle blanche, sélectionnez Connectors et développez la section Amazon Web Services.

  3. Sélectionnez le compartiment S3 auquel vous vous connectez, puis sélectionnez Authenticate.

Supprimer l’accès aux données externes sur AWS

Pour supprimer l’accès à un compartiment S3 dans un environnement de salle blanche :

  1. Accédez à la page de connexion Snowflake Data Clean Rooms.

  2. Saisissez votre adresse e-mail et sélectionnez Continue.

  3. Entrez votre mot de passe.

  4. Si vous êtes associé à plusieurs environnements de salles blanches, sélectionnez le compte Snowflake que vous souhaitez utiliser.

  5. Dans la navigation de gauche, sélectionnez Connectors et développez la section Amazon Web Services.

  6. Recherchez le compartiment S3 actuellement connecté, puis sélectionnez l’icône de la corbeille.