Definir permisos para funciones de IA generativa que llamen a LLMs de Vertex AI

En este documento se explica cómo configurar los permisos para ejecutar consultas de IA generativa. Las consultas de IA generativa contienen funciones AI.* que llaman a modelos fundacionales en Vertex AI, como AI.GENERATE.

Hay dos formas de configurar los permisos para ejecutar consultas que usen funciones AI.*:

  • Ejecuta la consulta con tus credenciales de usuario final
  • Crear una conexión de BigQuery ML para ejecutar la consulta con una cuenta de servicio

En la mayoría de los casos, puede usar las credenciales del usuario final y dejar el argumento CONNECTION en blanco. Si prevés que tu trabajo de consulta se ejecutará durante 48 horas o más, debes usar una conexión de BigQuery e incluirla en el argumento CONNECTION.

Ejecutar consultas de IA generativa con credenciales de usuario final

Para ejecutar consultas de IA generativa con las credenciales de los usuarios finales, configura los permisos necesarios mediante la Google Cloud consola. Si eres el propietario del proyecto, ya tienes todos los permisos necesarios, por lo que no tienes que hacer nada.

Roles obligatorios

Para obtener los permisos que necesitas para ejecutar un trabajo de consulta que llama a un modelo de Vertex AI, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Asigna los roles necesarios al usuario o al grupo.

Puedes usar la consola para asignar los roles necesarios a un principal. Google Cloud La entidad de seguridad es el usuario o grupo que ejecuta la consulta que usa funciones AI.* para llamar a un modelo fundacional de Vertex AI.

  1. En la consola de Google Cloud , ve a la página Gestión de identidades y accesos.

    Ir a IAM

  2. Selecciona el proyecto.

  3. Para asignar roles a una cuenta principal, sigue estos pasos:

    1. Ve a la página IAM y administración.

      Ir a IAM y administración

    2. Haz clic en Conceder acceso.

      Se abrirá el cuadro de diálogo Añadir principales.

    3. En el campo New principals (Nuevos principales), introduce el identificador del principal. Por ejemplo, my-user@example.com o //iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com.

    4. En la sección Asignar roles, en Seleccionar un rol, haz clic en la flecha hacia abajo.

    5. Busca el rol Usuario de Vertex AI y selecciónalo.

    6. Haz clic en Añadir otro rol.

    7. En la sección Asignar roles, en Seleccionar un rol, haz clic en la flecha hacia abajo.

    8. Busca o selecciona el rol Usuario de tareas de BigQuery.

    9. Haz clic en Guardar.

      Haz clic en Guardar para asignar los roles a la cuenta principal.

Para modificar los roles de una entidad que ya tiene roles en el proyecto, consulta Asignar roles adicionales a la misma entidad.

Para obtener información sobre otros métodos para conceder roles a nivel de proyecto a una entidad, consulta Conceder o revocar varios roles de gestión de identidades y accesos de forma programática.

Ejecutar consultas de IA generativa con una conexión de BigQuery

Para ejecutar consultas de IA generativa mediante una conexión, crea la conexión y, a continuación, concede acceso a la cuenta de servicio creada por la conexión.

Crear una conexión

Puedes configurar una conexión de recursos de Cloud para ejecutar todas las consultas de IA generativa que contengan funciones AI.*. Cuando creas una conexión, concedes permisos para ejecutar consultas a una cuenta de servicio.

Selecciona una de las opciones siguientes:

Consola

  1. Ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel de la izquierda, haga clic en Explorador:

    Botón destacado del panel Explorador.

    Si no ves el panel de la izquierda, haz clic en Ampliar panel de la izquierda para abrirlo.

  3. En el panel Explorador, despliega el nombre de tu proyecto y haz clic en Conexiones.

  4. En la página Conexiones, haz clic en Crear conexión.

  5. En Tipo de conexión, elija Modelos remotos de Vertex AI, funciones remotas, BigLake y Spanner (recurso de Cloud).

  6. En el campo ID de conexión, introduce un nombre para la conexión.

  7. En Tipo de ubicación, selecciona una ubicación para tu conexión. La conexión debe estar ubicada en el mismo lugar que tus otros recursos, como los conjuntos de datos.

  8. Haga clic en Crear conexión.

  9. Haz clic en Ir a la conexión.

  10. En el panel Información sobre la conexión, copia el ID de la cuenta de servicio para usarlo en un paso posterior.

bq

  1. En un entorno de línea de comandos, crea una conexión:

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

    El parámetro --project_id anula el proyecto predeterminado.

    Haz los cambios siguientes:

    • REGION: tu región de conexión
    • PROJECT_ID: tu ID de proyecto Google Cloud
    • CONNECTION_ID: un ID para tu conexión

    Cuando creas un recurso de conexión, BigQuery crea una cuenta de servicio del sistema única y la asocia a la conexión.

    Solución de problemas: si aparece el siguiente error de conexión, actualiza el SDK de Google Cloud:

    Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
    
  2. Obtén y copia el ID de la cuenta de servicio para usarlo en un paso posterior:

    bq show --connection PROJECT_ID.REGION.CONNECTION_ID

    El resultado debería ser similar al siguiente:

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

Terraform

Usa el recurso google_bigquery_connection.

.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar la autenticación para bibliotecas de cliente.

En el siguiente ejemplo se crea una conexión de recursos de Cloud llamada my_cloud_resource_connection en la región 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 {}
}

Para aplicar la configuración de Terraform en un Google Cloud proyecto, sigue los pasos que se indican en las siguientes secciones.

Preparar Cloud Shell

  1. Abre Cloud Shell.
  2. Define el Google Cloud proyecto predeterminado en el que quieras aplicar tus configuraciones de Terraform.

    Solo tienes que ejecutar este comando una vez por proyecto y puedes hacerlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión .tf. Por ejemplo, main.tf. En este tutorial, nos referiremos al archivo como main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.

    Copia el código de ejemplo en el archivo main.tf que acabas de crear.

    También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

  3. Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
    terraform init

    Si quieres usar la versión más reciente del proveedor de Google, incluye la opción -upgrade:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
    terraform plan

    Haz las correcciones necesarias en la configuración.

  2. Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply

    Espera hasta que Terraform muestre el mensaje "Apply complete!".

  3. Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para comprobar que Terraform los ha creado o actualizado.

Para obtener más información, consulta Crear y configurar una conexión de recursos de Cloud.

Conceder acceso a la cuenta de servicio

Para ejecutar consultas que usen funciones generativas de AI.* que llamen a modelos de Vertex AI, debes conceder los permisos adecuados a la cuenta de servicio que se creó al crear la conexión. Para ejecutar funciones que llamen a un modelo fundacional de Vertex AI, se necesita el rol Usuario de Vertex AI (roles/aiplatform.user).

Selecciona una de las opciones siguientes:

Consola

  1. Ve a la página IAM y administración.

    Ir a IAM y administración

  2. Haz clic en Conceder acceso.

    Se abrirá el cuadro de diálogo Añadir principales.

  3. En el campo Nuevos principales, introduce el ID de la cuenta de servicio que has copiado anteriormente.

  4. En la sección Asignar roles, haz clic en Añadir roles.

  5. Busca el rol Usuario de Vertex AI, selecciónalo y haz clic en Aplicar.

  6. Haz clic en Guardar.

gcloud

Usa el comando 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

Haz los cambios siguientes:

  • PROJECT_ID: el nombre de tu proyecto.
  • REGION: la ubicación en la que se creó la conexión.
  • CONNECTION_ID: el nombre de la conexión que has creado.

Terraform

Usa el recurso google_bigquery_connection.

.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar la autenticación para bibliotecas de cliente.

En el siguiente ejemplo se concede acceso al rol de IAM a la cuenta de servicio de la conexión de recursos de 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}"
}

Para aplicar la configuración de Terraform en un Google Cloud proyecto, sigue los pasos que se indican en las siguientes secciones.

Preparar Cloud Shell

  1. Abre Cloud Shell.
  2. Define el Google Cloud proyecto predeterminado en el que quieras aplicar tus configuraciones de Terraform.

    Solo tienes que ejecutar este comando una vez por proyecto y puedes hacerlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.

Preparar el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión .tf. Por ejemplo, main.tf. En este tutorial, nos referiremos al archivo como main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.

    Copia el código de ejemplo en el archivo main.tf que acabas de crear.

    También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.

  3. Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
    terraform init

    Si quieres usar la versión más reciente del proveedor de Google, incluye la opción -upgrade:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
    terraform plan

    Haz las correcciones necesarias en la configuración.

  2. Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo yes en la petición:
    terraform apply

    Espera hasta que Terraform muestre el mensaje "Apply complete!".

  3. Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para comprobar que Terraform los ha creado o actualizado.