为调用 Vertex AI LLM 的生成式 AI 函数设置权限
本文档介绍了如何设置运行生成式 AI 查询的权限。生成式 AI 查询包含调用 Vertex AI 中基础模型的 AI.* 函数,例如 AI.GENERATE。
您可以通过以下两种方式设置权限,以运行使用 AI.* 函数的查询:
- 使用最终用户凭证运行查询
- 创建 BigQuery ML 连接以使用服务账号运行查询
在大多数情况下,您可以使用最终用户凭证,并将 CONNECTION 参数留空。如果您的查询作业预计运行时间为 48 小时或更长,您应使用 BigQuery 连接并将其包含在 CONNECTION 参数中。
使用最终用户凭证运行生成式 AI 查询
如需使用最终用户凭证运行生成式 AI 查询,请使用 Google Cloud 控制台配置必要的权限。请注意,如果您是项目所有者,那么您已经拥有所有必需的权限,因此无需执行任何操作。
所需的角色
如需获得运行调用 Vertex AI 模型的查询作业所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
运行查询作业:BigQuery Job User (
roles/bigquery.jobUser) -
在 Vertex AI 中访问基础模型:
Vertex AI User (
roles/aiplatform.user)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
向用户或群组授予所需的角色
您可以使用 Google Cloud 控制台向主账号授予所需的角色。主账号是指运行使用 AI.* 函数调用 Vertex AI 基础模型的查询的用户或群组。
在 Google Cloud 控制台中,前往 IAM 页面。
选择您的项目。
如需向主账号授予角色,请执行以下操作:
前往 IAM 和管理页面。
点击 授予访问权限。
系统随即会打开添加主账号对话框。
在新的主账号字段中,输入主账号标识符,例如
my-user@example.com或//iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com。在分配角色部分,点击选择角色旁边的下拉箭头。
搜索 Vertex AI User 角色并将其选中。
点击添加其他角色。
在分配角色部分,点击选择角色旁边的下拉箭头。
搜索或浏览到 BigQuery Job User 角色并将其选中。
点击保存。
如需修改已拥有项目角色的主账号的角色,请参阅向同一主账号授予额外的角色。
如需了解向主账号授予项目级层角色的其他方法,请参阅以程序化方式授予或撤销多个 IAM 角色。
使用 BigQuery 连接运行生成式 AI 查询
如需使用连接运行生成式 AI 查询,请创建连接,然后向连接创建的服务账号授予访问权限。
创建连接
您可以设置 Cloud 资源连接,以运行包含 AI.* 函数的所有生成式 AI 查询。创建连接时,您需要向服务账号授予运行查询的权限。
从下列选项中选择一项:
控制台
前往 BigQuery 页面。
在探索器窗格中,点击 添加数据:
系统随即会打开添加数据对话框。
在过滤条件窗格中的数据源类型部分,选择企业应用。
或者,在搜索数据源字段中,您可以输入
Vertex AI。在精选数据源部分中,点击 Vertex AI。
点击 Vertex AI 模型:BigQuery 联合解决方案卡片。
在连接类型列表中,选择 Vertex AI 远程模型、远程函数、BigLake 和 Spanner(Cloud 资源)。
在连接 ID 字段中,输入连接的名称。
点击创建连接。
点击转到连接。
在连接信息窗格中,复制服务账号 ID 以在后续步骤中使用。
bq
在命令行环境中,创建连接:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
--project_id参数会替换默认项目。请替换以下内容:
REGION:您的连接区域PROJECT_ID:您的 Google Cloud 项目 IDCONNECTION_ID:您的连接的 ID
当您创建连接资源时,BigQuery 会创建一个唯一的系统服务账号,并将其与该连接相关联。
问题排查:如果您收到以下连接错误,请更新 Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
检索并复制服务账号 ID 以在后续步骤中使用:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
输出类似于以下内容:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
使用 google_bigquery_connection 资源。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为客户端库设置身份验证。
以下示例在 US 区域中创建一个名为 my_cloud_resource_connection 的 Cloud 资源连接:
如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。
准备 Cloud Shell
- 启动 Cloud Shell。
-
设置要应用 Terraform 配置的默认 Google Cloud 项目。
您只需为每个项目运行一次以下命令,即可在任何目录中运行它。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。
准备目录
每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。
-
在 Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须具有
.tf扩展名,例如main.tf。在本教程中,该文件称为main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。
将示例代码复制到新创建的
main.tf中。(可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。
- 查看和修改要应用到您的环境的示例参数。
- 保存更改。
-
初始化 Terraform。您只需为每个目录执行一次此操作。
terraform init
(可选)如需使用最新的 Google 提供程序版本,请添加
-upgrade选项:terraform init -upgrade
应用更改
-
查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:
terraform plan
根据需要更正配置。
-
通过运行以下命令并在提示符处输入
yes来应用 Terraform 配置:terraform apply
等待 Terraform 显示“应用完成!”消息。
- 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。
如需了解详情,请参阅创建和设置 Cloud 资源连接。
向服务账号授予访问权限
如需运行使用调用 Vertex AI 模型的生成式 AI.* 函数的查询,您必须向创建连接时创建的服务账号授予适当的权限。如需运行调用 Vertex AI 基础模型的函数,必须拥有 Vertex AI User 角色 (roles/aiplatform.user)。
从下列选项中选择一项:
控制台
前往 IAM 和管理页面。
点击 授予访问权限。
系统随即会打开添加主账号对话框。
在新的主账号字段中,输入您之前复制的服务账号 ID。
在分配角色部分,点击添加角色。
搜索 Vertex AI User 角色,选择该角色,然后点击应用。
点击保存。
gcloud
使用 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_NAME | jq -r .cloudResource.serviceAccountId)" --role=roles/aiplatform.user
替换以下内容:
PROJECT_ID:您的项目的名称。REGION:在其中创建连接的位置。CONNECTION_NAME:您创建的连接的名称。
Terraform
使用 google_bigquery_connection 资源。
如需向 BigQuery 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为客户端库设置身份验证。
以下示例向 Cloud 资源连接的服务账号授予 IAM 角色访问权限:
如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。
准备 Cloud Shell
- 启动 Cloud Shell。
-
设置要应用 Terraform 配置的默认 Google Cloud 项目。
您只需为每个项目运行一次以下命令,即可在任何目录中运行它。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。
准备目录
每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。
-
在 Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须具有
.tf扩展名,例如main.tf。在本教程中,该文件称为main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。
将示例代码复制到新创建的
main.tf中。(可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。
- 查看和修改要应用到您的环境的示例参数。
- 保存更改。
-
初始化 Terraform。您只需为每个目录执行一次此操作。
terraform init
(可选)如需使用最新的 Google 提供程序版本,请添加
-upgrade选项:terraform init -upgrade
应用更改
-
查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:
terraform plan
根据需要更正配置。
-
通过运行以下命令并在提示符处输入
yes来应用 Terraform 配置:terraform apply
等待 Terraform 显示“应用完成!”消息。
- 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。