Étape 4 : Configurez les composants

Cette page décrit la quatrième étape du déploiement de la Data Foundation de Cortex Framework, qui constitue le cœur de Cortex Framework. Au cours de cette étape, vous allez configurer les servicesGoogle Cloud requis pour le déploiement.

Activer les services Google Cloud

Dans cette section, vous allez activer les services Google Cloud suivants dans votre projetGoogle Cloud :

  • Instance et ensembles de données BigQuery
  • API Cloud Build
  • Buckets Cloud Storage
  • Compte de service
  • API Cloud Resource Manager
  • API Data Catalog (si vous déployez Datamesh)
  • Exécutions de workflow (si vous déployez Cortex pour Meridian)
  • Plate-forme d'IA (si vous déployez Cortex pour Meridian)

Activez ces services Google Cloud à l'aide de Cloud Shell :

  1. Copiez et collez la commande suivante :

    gcloud config set project SOURCE_PROJECT
    
    gcloud services enable bigquery.googleapis.com \
                          cloudbuild.googleapis.com \
                          composer.googleapis.com \
                          storage-component.googleapis.com \
                          cloudresourcemanager.googleapis.com \
                          dataflow.googleapis.com \
                          datacatalog.googleapis.com \
                          workflowexecutions.googleapis.com \
                          workflows.googleapis.com \
                          aiplatform.googleapis.com
    

    Remplacez SOURCE_PROJECT par l'ID de votre projet source.

  2. Vérifiez que les services Google Cloud sont activés si vous recevez un message de confirmation.

Facultatif. Vous pouvez activer les services Google Cloud suivants dans votre projetGoogle Cloud  :

  • Cloud Composer pour le traitement de la capture des données modifiées (CDC), l'aplatissement de la hiérarchie (SAP uniquement) et la réplication des données (non-SAP uniquement) via des graphes orientés acycliques (DAG). Pour configurer une instance, consultez la documentation Cloud Composer.
  • Looker pour vous connecter aux modèles de rapports.
  • Les ensembles de données associés BigQuery Sharing (anciennement Analytics Hub) sont utilisés pour certaines sources externes, comme le DAG météo. Pour les scénarios avancés, vous pouvez choisir de remplir cette structure avec n'importe quelle autre source disponible de votre choix.
  • Dataflow : outil d'intégration pour de nombreux ensembles de données marketing, comme Google Ads.
  • Dataplex Universal Catalog : utilisé pour créer un maillage de données. Pour en savoir plus, consultez le guide de l'utilisateur Data Mesh.
  • Pour Cortex Framework avec Meridian :
    • Colab Enterprise : exécutez le notebook Colab Enterprise pendant l'exécution et accédez aux éléments suivants :
    • Notebook et fichier de configuration sur Cloud Storage.
    • Interrogez les vues et les tables BigQuery pertinentes.
    • Réécrivez les résultats dans Cloud Storage.
    • Workflows : exécution du workflow et de Cloud Build pour déclencher l'exécution des notebooks Colab Enterprise.

Accorder des autorisations à l'utilisateur exécutant la requête

Accordez les autorisations suivantes à l'utilisateur exécutant le déploiement, soit à l'aide de la consoleGoogle Cloud , soit à l'aide de Google Cloud CLI, pour exécuter le déploiement dans le projet où Cloud Build est déclenché :

  • Consommateur Service Usage (roles/serviceusage.serviceUsageConsumer)
  • Lecteur des objets de l'espace de stockage (roles/storage.objectViewer)
  • Administrateur de l'espace de stockage (roles/storage.admin)
  • Éditeur Cloud Build (roles/cloudbuild.builds.editor)
  • Lecteur de projet (roles/reader)
  • BigQuery Job user (roles/bigquery.jobUser)
  • Éditeur de données BigQuery (roles/bigquery.dataEditor)

Console

  1. Ouvrez la page IAM dans la console Google Cloud  :

    Ouvrir la page IAM

  2. Sélectionnez votre projet, puis cliquez sur Continuer.

  3. Cliquez sur Accorder l'accès.

  4. Saisissez l'adresse e-mail de l'utilisateur qui exécute la commande.

  5. Sélectionnez les rôles suivants dans le menu déroulant :

    • Consommateur Service Usage (roles/serviceusage.serviceUsageConsumer)
    • Lecteur des objets de l'espace de stockage (roles/storage.objectViewer)
    • Administrateur de l'espace de stockage (roles/storage.admin)
    • Éditeur Cloud Build (roles/cloudbuild.builds.editor)
    • Lecteur de projet (roles/reader)
    • BigQuery Job user (roles/bigquery.jobUser)
    • Éditeur de données BigQuery (roles/bigquery.dataEditor)
  6. Cliquez sur Enregistrer.

gcloud

Pour attribuer un rôle à un utilisateur, exécutez la commande add-iam-policy-binding :

  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/serviceusage.serviceUsageConsumer"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/storage.objectViewer"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/storage.admin"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/cloudbuild.builds.editor"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/reader"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/bigquery.jobUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/bigquery.dataEditor"

Remplacez les éléments suivants :

  • SOURCE_PROJECT par l'ID du projet source.
  • USER_EMAIL par l'adresse e-mail de l'utilisateur qui exécute la requête. Par exemple, "user:my-user@example.com". Pour obtenir la liste complète des types de compte principal ou member, consultez la documentation de référence sur les liaisons de stratégie.

Créer et configurer le compte de service Cloud Build

Cloud Build utilise un compte de service pour exécuter des compilations en votre nom. Cette section vous explique comment créer un compte de service dédié aux déploiements Cortex Framework et comment accorder les autorisations nécessaires au compte de service Cloud Build.

Créer un compte de service

Créez un compte de service dédié pour déployer Cortex Framework afin d'améliorer la sécurité et le contrôle. Après avoir créé le compte de service, vous pouvez le spécifier lors du déploiement à l'aide du paramètre de substitution _BUILD_ACCOUNT.

Avant de commencer, vous devez activer l'API IAM, configurer l'authentification et comprendre les comptes de service et les rôles IAM. Pour en savoir plus, consultez la section Créer des comptes de service.

Créez ce compte de service à l'aide de la console Google Cloud ou de Google Cloud CLI.

Console

  1. Accédez à la page Comptes de service.

    Comptes de service

    Les étapes restantes s'affichent dans la console Google Cloud .

  2. Sélectionnez un projet Google Cloud .

  3. Saisissez un compte de service et un nom à afficher, avec une description et dans la console Google Cloud . La console Google Cloud génère un ID de compte de service basé sur ce nom. Modifiez l'ID si nécessaire. Vous ne pourrez pas le modifier par la suite. Utilisez les valeurs par défaut suivantes pour le compte de service :

    • Name (Nom) : "cortex-deployer".
    • Description : "Compte de service Cortex Deployer".
    • Nom à afficher : "Cortex Deployer".
  4. Accordez aux utilisateurs l'accès à ce compte de service.

    1. Ajoutez l'ID de tous les utilisateurs (y compris le vôtre) qui peuvent exécuter le déploiement via le compte de service.
    2. Attribuez le rôle Créateur de jetons du compte de service. Pour en savoir plus sur ce rôle, consultez Rôles des comptes de service.
  5. Cliquez sur OK pour terminer la création du compte de service.

Si vous disposez déjà d'un compte de service, procédez comme suit :

  1. Accédez à Comptes de service.
  2. Sélectionnez le compte de service.
  3. Cliquez sur l'onglet Autorisations.
  4. Cliquez sur Accorder l'accès.
    1. Ajoutez l'ID de tous les utilisateurs (y compris le vôtre) qui peuvent exécuter le déploiement via le compte de service.
    2. Attribuez le rôle Créateur de jetons du compte de service.

gcloud

  1. Créez un compte de service via une stratégie IAM avec la commande suivante :

    gcloud iam service-accounts create cortex-deployer \
    --description="Cortex Deployer Service Account" \
    --display-name="Cortex Deployer"
    
  2. Ajoutez la stratégie IAM à votre projet Google Cloud avec la commande suivante :

    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role="roles/cloudbuild.builds.editor"
    
  3. Ajoutez l'ID de tous les utilisateurs (y compris le vôtre) qui peuvent exécuter le déploiement via le compte de service, et attribuez-leur le rôle Créateur de jetons du compte de service à l'aide de la commande suivante :

    gcloud iam service-accounts add-iam-policy-binding cortex-deployer\
    --member="user:USER_EMAIL" \
    --role="roles/iam.serviceAccountTokenCreator"
    

    Remplacez les éléments suivants :

    • SOURCE_PROJECT avec le projet source pour le déploiement de la base de données Cortex Framework.
    • USER_EMAIL par l'adresse e-mail de l'utilisateur qui exécute l'action.

Pour en savoir plus sur la création d'un compte de service, consultez Créer un compte de service.

Octroyer des autorisations

Le compte de service Cloud Build a besoin d'autorisations spécifiques dans votre projet source (et dans le projet cible si vous déployez dans un projet distinct). Attribuez les rôles suivants à l'aide de la console Google Cloud ou de Google Cloud CLI :

  • Compte de service Cloud Build (roles/cloudbuild.builds.builder)
  • Utilisateur du compte de service (roles/iam.serviceAccountUser)
  • Éditeur de données BigQuery (roles/bigquery.dataEditor)
  • BigQuery Job user (roles/bigquery.jobUser)
  • Rédacteur de journaux (roles/logging.logWriter)
  • Administrateur Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin – si vous déployez Cortex pour Meridian)
  • Utilisateur d'objets Storage (roles/storage.objectUser, si vous déployez Cortex pour Meridian)
  • Éditeur de workflows (roles/workflows.editor, si vous déployez Cortex pour Meridian)

Console

  1. Dans la console Google Cloud , accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez votre projet source.

  3. Cliquez sur Accorder l'accès.

  4. Ajoutez le compte de service Cloud Build par défaut de l'étape précédente en tant que compte principal.

  5. Dans le menu déroulant Sélectionner un rôle, recherchez Compte de service Cloud Build, puis cliquez sur Compte de service Cloud Build.

  6. Répétez l'étape précédente pour ajouter les autres rôles :

    • Utilisateur du compte de service
    • Éditeur de données BigQuery
    • Utilisateur de job BigQuery
    • Rédacteur de journaux
    • Administrateur Colab Enterprise (si vous déployez Cortex pour Meridian)
    • Utilisateur d'objets Storage (si vous déployez Cortex pour Meridian)
    • Éditeur de workflows (si vous déployez Cortex pour Meridian)
  7. Cliquez sur Enregistrer.

  8. Vérifiez que le compte de service et les rôles correspondants sont listés sur la page IAM. Vous avez attribué un rôle IAM.

gcloud

Exécutez la commande suivante pour attribuer les rôles au compte de service Cloud Build :

  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:CLOUD_BUILD_SA" \
      --role="roles/cloudbuild.builds.builder"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:CLOUD_BUILD_SA" \
      --role="roles/iam.serviceAccountUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:CLOUD_BUILD_SA" \
      --role="roles/bigquery.dataEditor"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:CLOUD_BUILD_SA" \
      --role="roles/bigquery.jobUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:CLOUD_BUILD_SA" \
      --role="roles/logging.logWriter"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:CLOUD_BUILD_SA" \
      --role="roles/aiplatform.colabEnterpriseAdmin"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:CLOUD_BUILD_SA" \
      --role="roles/storage.objectUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:CLOUD_BUILD_SA" \
      --role="roles/workflows.editor"

Remplacez les éléments suivants :

  • SOURCE_PROJECT par l'ID du projet source.
  • CLOUD_BUILD_SA avec le compte de service Cloud Build, au format CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com.

Pour en savoir plus, consultez Attribuer un rôle au compte de service Cloud Build à l'aide de la page IAM et Définir et gérer des stratégies IAM sur des buckets.

Créer un compte de service supplémentaire pour Cortex pour Meridian

Un compte de service distinct est nécessaire pour Meridian lors du déploiement de Cortex Framework. Si vous ne déployez pas pour Meridian, vous pouvez ignorer cette étape. Un compte de service distinct est requis pour les éléments suivants :

  • Exécuter le workflow et Cloud Build pour déclencher l'exécution des notebooks Colab Enterprise.
  • Exécutez le notebook Colab Enterprise avec accès à :
    • Notebook et fichier de configuration sur Cloud Storage.
    • Interrogez les vues et les tables BigQuery pertinentes.
    • Réécrivez les résultats dans Cloud Storage.

Exécutez la commande suivante pour créer un compte de service pour Cortex pour Meridian :


 gcloud iam service-accounts create cortex-meridian-colab-runner --project= PROJECT_ID \
        --description="Cortex for Meridian Colab Runner Service Account" \
        --display-name="Cortex Meridian Runner"

Remplacez les éléments suivants :

  • PROJECT_ID par l'ID du projet dans lequel Cortex pour Meridian est déployé.
  • cortex-meridian-colab-runner : Vous pouvez également utiliser un autre ID de compte de service. Notez que cortex-meridian-colab-runner est la valeur par défaut et que sa modification peut nécessiter des ajustements pour d'autres commandes.

Voici les rôles minimaux requis pour un compte de service dédié à Cortex pour Meridian :

  • Lecteur de données BigQuery (roles/bigquery.dataViewer)
  • BigQuery Job user (roles/bigquery.jobUser)
  • Utilisateur de sessions de lecture BigQuery (roles/bigquery.readSessionUser)
  • Éditeur Cloud Build (roles/cloudbuild.builds.editor)
  • Administrateur Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin)
  • Rédacteur de journaux (roles/logging.logWriter)
  • Administrateur de l'environnement d'exécution de notebook (aiplatform.notebookRuntimeAdmin)
  • Administrateur de l'espace de stockage (roles/storage.admin)
  • Utilisateur des objets de l'espace de stockage (roles/storage.objectUser)
  • Agent de service Vertex AI Colab (roles/aiplatform.colabServiceAgent)

Exécutez la commande suivante pour attribuer les rôles au compte de service dédié à Cortex pour Meridian :

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/bigquery.dataViewer'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/bigquery.jobUser'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/bigquery.readSessionUser'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/cloudbuild.builds.editor'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/aiplatform.colabEnterpriseAdmin'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/logging.logWriter'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/aiplatform.notebookRuntimeAdmin'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/storage.admin'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/storage.objectUser'

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \
    --role='roles/aiplatform.colabServiceAgent'

Remplacez les éléments suivants :

  • PROJECT_ID par l'ID du projet dans lequel Cortex pour Meridian est déployé.
  • SERVICE_ACCOUNT_EMAIL par votre compte de service pour Cortex pour Meridian.

Étapes facultatives

Pour mieux personnaliser votre déploiement, vous pouvez suivre ces étapes facultatives :

Un bucket de stockage est nécessaire pour stocker les scripts DAG de traitement et les autres fichiers temporaires générés lors du déploiement. Ces scripts doivent être déplacés manuellement dans une instance Cloud Composer ou Apache Airflow après le déploiement.

Vous pouvez créer le bucket de stockage à partir de la console Google Cloud CLI ou Google Cloud en procédant comme suit.

Console

  1. Accédez à Cloud Storage.

    Cloud Storage

  2. Créez un bucket dans la même région que vos ensembles de données BigQuery.

  3. Sélectionnez le bucket créé.

  4. Accédez à l'onglet Permissions.

  5. Accordez l'autorisation Storage Object Creator à l'ID utilisateur qui exécute la commande Build ou au compte de service que vous avez créé. Pour en savoir plus, consultez Définir une nouvelle condition dans un bucket : console.

gcloud

  1. Créez un bucket à partir de Cloud Shell à l'aide de la commande suivante :

    gcloud storage buckets create gs://DAG_BUCKET_NAME -l REGION/MULTI_REGION
    

    Remplacez les éléments suivants :

    • DAG_BUCKET_NAME par le nom du nouveau bucket.
    • REGION/MULTI_REGION avec la même région que vos ensembles de données BigQuery.
  2. Exécutez la commande suivante pour attribuer l'autorisation Storage Object Creator au compte de service :

    gcloud storage buckets add-iam-policy-binding gs://DAG_BUCKET_NAME --member=serviceAccount:CLOUD_BUILD_SA --role=roles/storage.objectCreator
    

    Remplacez les éléments suivants :

    • CLOUD_BUILD_SA avec le compte de service Cloud Build par défaut.
    • DAG_BUCKET_NAME par le nom du nouveau bucket.

Créer un bucket Storage pour les journaux

Vous pouvez créer un bucket spécifique pour le processus Cloud Build afin de stocker les journaux. Cela peut être utile si vous souhaitez limiter les données pouvant être stockées dans les journaux à une région spécifique. Vous pouvez créer le bucket de stockage pour les journaux à partir de la console Google Cloud CLI ou Google Cloud .

Console

Pour créer un bucket spécifique pour les journaux, procédez comme suit :

  1. Accédez à Cloud Storage.

    Cloud Storage

  2. Créez un bucket dans la même région que celle où le déploiement s'exécutera.

  3. Sélectionnez le bucket créé.

  4. Accédez à l'onglet Permissions.

  5. Accordez l'autorisation Storage Object Admin à l'ID utilisateur qui exécute la commande Build ou au compte de service que vous avez créé. Pour en savoir plus, consultez Définir une nouvelle condition dans un bucket : console.

gcloud

Pour créer un bucket spécifique pour les journaux, utilisez les commandes suivantes.

  1. Créez un bucket à partir de Cloud Shell à l'aide de la commande suivante :

    gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION
    

    Remplacez les éléments suivants :

    • REGION/MULTI_REGION avec la région choisie pour créer le bucket.
    • LOGS_BUCKET_NAME par le nom du nouveau bucket.
  2. Exécutez la commande suivante pour attribuer l'autorisation Storage Object Admin au compte de service :

    gcloud storage buckets add-iam-policy-binding gs://LOGS_BUCKET_NAME --member=serviceAccount:CLOUD_BUILD_SA --role=roles/storage.objectAdmin
    

    Remplacez les éléments suivants :

    • CLOUD_BUILD_SA avec le compte de service Cloud Build par défaut.
    • LOGS_BUCKET_NAME par le nom du nouveau bucket.

Étapes suivantes

Une fois cette étape terminée, passez aux étapes de déploiement suivantes :

  1. Établissez des charges de travail.
  2. Clonez le dépôt.
  3. Déterminez le mécanisme d'intégration.
  4. Configurer les composants (cette page)
  5. Configurez le déploiement.
  6. Exécutez le déploiement.