Définir les autorisations pour les fonctions d'IA générative qui appellent les LLM Vertex AI

Ce document explique comment configurer les autorisations pour exécuter des requêtes d'IA générative. Les requêtes d'IA générative contiennent des fonctions AI.* qui appellent des modèles de fondation dans Vertex AI, par exemple AI.GENERATE.

Il existe deux façons de configurer les autorisations pour exécuter des requêtes qui utilisent des fonctions AI.* :

  • Exécuter la requête à l'aide de vos identifiants utilisateur final
  • Créer une connexion BigQuery ML pour exécuter la requête à l'aide d'un compte de service

Dans la plupart des cas, vous pouvez utiliser les identifiants de l'utilisateur final et laisser l'argument CONNECTION vide. Si votre job de requête doit s'exécuter pendant 48 heures ou plus, vous devez utiliser une connexion BigQuery et l'inclure dans l'argument CONNECTION.

Exécuter des requêtes d'IA générative avec les identifiants de l'utilisateur final

Pour exécuter des requêtes d'IA générative à l'aide des identifiants de l'utilisateur final, configurez les autorisations nécessaires à l'aide de la console Google Cloud . Notez que si vous êtes le propriétaire du projet, vous disposez déjà de toutes les autorisations requises. Vous n'avez donc rien à faire.

Rôles requis

Pour obtenir les autorisations nécessaires pour exécuter un job de requête qui appelle un modèle Vertex AI, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Attribuez les rôles requis à l'utilisateur ou au groupe.

Vous pouvez utiliser la console Google Cloud pour attribuer les rôles requis à un compte principal. Le compte principal est l'utilisateur ou le groupe qui exécute la requête utilisant des fonctions AI.* pour appeler un modèle de fondation Vertex AI.

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

    Accéder à IAM

  2. Sélectionnez votre projet.

  3. Pour accorder des rôles à un compte principal :

    1. Accédez à la page IAM et administration.

      Accéder à IAM et administration

    2. Cliquez sur Accorder l'accès.

      La boîte de dialogue Ajouter des comptes principaux s'ouvre.

    3. Dans le champ Nouveaux comptes principaux, saisissez l'identifiant du compte principal (par exemple, my-user@example.com ou //iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com).

    4. Dans la section Attribuer des rôles, cliquez sur la flèche du menu déroulant Sélectionner un rôle.

    5. Recherchez le rôle Utilisateur Vertex AI et sélectionnez-le.

    6. Cliquez sur Ajouter un autre rôle.

    7. Dans la section Attribuer des rôles, cliquez sur la flèche du menu déroulant Sélectionner un rôle.

    8. Recherchez ou parcourez le rôle Utilisateur de tâche BigQuery, puis sélectionnez-le.

    9. Cliquez sur Enregistrer.

      Cliquez sur "Enregistrer" pour accorder les rôles au compte principal.

Pour modifier les rôles d'un compte principal disposant déjà de rôles sur le projet, consultez Attribuer des rôles supplémentaires au même compte principal.

Pour en savoir plus sur les autres méthodes d'attribution de rôles au niveau du projet à un compte principal, consultez Attribuer ou révoquer plusieurs rôles IAM de manière programmatique.

Exécuter des requêtes d'IA générative avec une connexion BigQuery

Pour exécuter des requêtes d'IA générative à l'aide d'une connexion, créez la connexion, puis accordez l'accès au compte de service créé par la connexion.

Créer une connexion

Vous pouvez configurer une connexion à une ressource cloud pour exécuter toutes les requêtes d'IA générative contenant des fonctions AI.*. Lorsque vous créez une connexion, vous accordez à un compte de service l'autorisation d'exécuter des requêtes.

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans le panneau de gauche, cliquez sur Explorer :

    Bouton du volet "Explorateur" mis en évidence.

    Si le panneau de gauche n'apparaît pas, cliquez sur Développer le panneau de gauche pour l'ouvrir.

  3. Dans le volet Explorateur, développez le nom de votre projet, puis cliquez sur Connexions.

  4. Sur la page Connexions, cliquez sur Créer une connexion.

  5. Pour Type de connexion, sélectionnez Modèles distants Vertex AI, fonctions à distance, BigLake et Spanner (ressource Cloud).

  6. Dans le champ ID de connexion, saisissez un nom pour votre connexion.

  7. Pour Type d'emplacement, sélectionnez un emplacement pour votre connexion. La connexion doit être colocalisée avec vos autres ressources, telles que les ensembles de données.

  8. Cliquez sur Créer une connexion.

  9. Cliquez sur Accéder à la connexion.

  10. Dans le volet Informations de connexion, copiez l'ID du compte de service à utiliser à l'étape suivante.

bq

  1. Dans un environnement de ligne de commande, créez une connexion :

    bq mk --connection --location=REGION --project_id=PROJECT_ID \
        --connection_type=CLOUD_RESOURCE CONNECTION_ID

    Le paramètre --project_id remplace le projet par défaut.

    Remplacez les éléments suivants :

    • REGION : votre région de connexion
    • PROJECT_ID : ID de votre projet Google Cloud
    • CONNECTION_ID : ID de votre connexion

    Lorsque vous créez une ressource de connexion, BigQuery crée un compte de service système unique et l'associe à la connexion.

    Dépannage : Si vous obtenez l'erreur de connexion suivante, mettez à jour le Google Cloud SDK :

    Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
    
  2. Récupérez et copiez l'ID du compte de service pour l'utiliser lors d'une prochaine étape :

    bq show --connection PROJECT_ID.REGION.CONNECTION_ID

    Le résultat ressemble à ce qui suit :

    name                          properties
    1234.REGION.CONNECTION_ID     {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
    

Terraform

Utilisez la ressource google_bigquery_connection.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

L'exemple suivant crée une connexion de ressources cloud nommée my_cloud_resource_connection dans la région US :


# This queries the provider for project information.
data "google_project" "default" {}

# This creates a cloud resource connection in the US region named my_cloud_resource_connection.
# Note: The cloud resource nested object has only one output field - serviceAccountId.
resource "google_bigquery_connection" "default" {
  connection_id = "my_cloud_resource_connection"
  project       = data.google_project.default.project_id
  location      = "US"
  cloud_resource {}
}

Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.

Préparer Cloud Shell

  1. Lancez Cloud Shell.
  2. Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.

    Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.

Préparer le répertoire

Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).

  1. Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension .tf, par exemple main.tf. Dans ce tutoriel, le fichier est appelé main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.

    Copiez l'exemple de code dans le fichier main.tf que vous venez de créer.

    Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.

  3. Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
  4. Enregistrez les modifications.
  5. Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
    terraform init

    Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option -upgrade :

    terraform init -upgrade

Appliquer les modifications

  1. Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
    terraform plan

    Corrigez les modifications de la configuration si nécessaire.

  2. Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply

    Attendez que Terraform affiche le message "Apply completed!" (Application terminée).

  3. Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.

Pour en savoir plus, consultez Créer et configurer une connexion à une ressource Cloud.

Accorder l'accès au compte de service

Pour exécuter des requêtes qui utilisent des fonctions AI.* génératives appelant des modèles Vertex AI, vous devez accorder les autorisations appropriées au compte de service créé lors de la création de votre connexion. Pour exécuter des fonctions qui appellent un modèle de fondation Vertex AI, le rôle Utilisateur Vertex AI (roles/aiplatform.user) est requis.

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page IAM et administration.

    Accéder à IAM et administration

  2. Cliquez sur Accorder l'accès.

    La boîte de dialogue Ajouter des comptes principaux s'ouvre.

  3. Dans le champ Nouveaux comptes principaux, saisissez l'ID du compte de service que vous avez copié précédemment.

  4. Dans la section Attribuer des rôles, cliquez sur Ajouter des rôles.

  5. Recherchez le rôle Utilisateur Vertex AI, sélectionnez-le, puis cliquez sur Appliquer.

  6. Cliquez sur Enregistrer.

gcloud

Exécutez la commande gcloud projects add-iam-policy-binding :

gcloud projects add-iam-policy-binding gs://PROJECT_ID \
--member="serviceAccount:$(bq show --format=prettyjson --connection $PROJECT_ID.$REGION.$CONNECTION_ID | jq -r .cloudResource.serviceAccountId)"
--role=roles/aiplatform.user

Remplacez les éléments suivants :

  • PROJECT_ID : nom de votre projet.
  • REGION : emplacement où la connexion a été créée.
  • CONNECTION_ID : nom de la connexion que vous avez créée.

Terraform

Utilisez la ressource google_bigquery_connection.

Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.

L'exemple suivant accorde l'accès au rôle IAM au compte de service de la connexion à la ressource Cloud :


# This queries the provider for project information.
data "google_project" "default" {}

# This creates a cloud resource connection in the US region named my_cloud_resource_connection.
# Note: The cloud resource nested object has only one output field - serviceAccountId.
resource "google_bigquery_connection" "default" {
  connection_id = "my_cloud_resource_connection"
  project       = data.google_project.default.project_id
  location      = "US"
  cloud_resource {}
}

## This grants IAM role access to the service account of the connection created in the previous step.
resource "google_project_iam_member" "connectionPermissionGrant" {
  project = data.google_project.default.project_id
  role    = "roles/storage.objectViewer"
  member  = "serviceAccount:${google_bigquery_connection.default.cloud_resource[0].service_account_id}"
}

Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.

Préparer Cloud Shell

  1. Lancez Cloud Shell.
  2. Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.

    Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.

Préparer le répertoire

Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).

  1. Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension .tf, par exemple main.tf. Dans ce tutoriel, le fichier est appelé main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.

    Copiez l'exemple de code dans le fichier main.tf que vous venez de créer.

    Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.

  3. Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
  4. Enregistrez les modifications.
  5. Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
    terraform init

    Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option -upgrade :

    terraform init -upgrade

Appliquer les modifications

  1. Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
    terraform plan

    Corrigez les modifications de la configuration si nécessaire.

  2. Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply

    Attendez que Terraform affiche le message "Apply completed!" (Application terminée).

  3. Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.