在 Google Cloud 的 Vertex AI 中,通常情况下我们不使用传统的 “API Key” 来访问服务,而是使用服务账号 (Service Account) 结合 IAM (Identity and Access Management) 权限来提供安全且细粒度的访问控制。
传统的 API Key(例如你在使用 Google Maps API 时可能遇到的那种)通常用于不需要身份验证或仅用于限额控制的公共 API。而 Vertex AI 涉及敏感数据、模型和计算资源,需要更强大的身份验证和授权机制。
以下是为 Vertex AI 创建和使用服务账号的详细步骤:
核心概念:服务账号 (Service Account)
服务账号是 Google Cloud 的一种特殊类型的账号,代表一个非人类用户,例如你的应用程序、虚拟机或服务器。当你需要以编程方式访问 Google Cloud 服务(如 Vertex AI)时,服务账号是推荐的方式。
步骤 1:创建服务账号
-
登录 Google Cloud 控制台:
访问 console.cloud.google.com。 -
选择你的项目:
确保你选择了计划使用 Vertex AI 的正确 Google Cloud 项目。 -
导航到 IAM & Admin -> Service Accounts:
在左侧导航菜单中,找到 “IAM & Admin” (IAM 和管理),然后点击 “Service Accounts” (服务账号)。 -
创建服务账号:
- 点击页面顶部的 “+ CREATE SERVICE ACCOUNT” (+ 创建服务账号) 按钮。
- Service account name (服务账号名称):输入一个易于识别的名称,例如
vertex-ai-api-access
。 - Service account ID (服务账号 ID):会自动生成,你也可以修改。
- Service account description (服务账号描述):填写一个简短的描述,说明该服务账号的用途。
- 点击 “CREATE AND CONTINUE” (创建并继续)。
步骤 2:授予服务账号访问 Vertex AI 的权限 (IAM 角色)
这一步至关重要,决定了你的服务账号能够对 Vertex AI 执行哪些操作。遵循最小权限原则,只授予必要的权限。
-
授予此服务账号访问项目的权限:
- 在 “Grant this service account access to project” (授予此服务账号访问项目的权限) 页面中,在 “Select a role” (选择角色) 下拉菜单中,搜索并添加以下最常见的 Vertex AI 相关角色:
- a. Vertex AI User (Vertex AI 用户):允许服务账号访问和执行 Vertex AI 中的大部分操作,例如创建和管理数据集、模型、端点、作业等。
- b. Storage Object Viewer (存储对象查看者) / Storage Object Creator (存储对象创建者) / Storage Object Admin (存储对象管理员):如果你的 Vertex AI 工作流程需要与 Cloud Storage 上的数据(如训练数据、模型工件)进行交互,你可能需要授予相应的 Cloud Storage 权限。
- c. 其他特定角色:根据你的具体需求,可能还需要其他角色,例如:
- Vertex AI Administrator (Vertex AI 管理员) - 授予完全控制权。
- BigQuery Data Viewer / BigQuery Data Editor - 如果数据存储在 BigQuery 中。
- Service Usage Consumer - 允许使用项目中的服务。
- 选择完所需角色后,点击 “DONE” (完成)。
- 在 “Grant this service account access to project” (授予此服务账号访问项目的权限) 页面中,在 “Select a role” (选择角色) 下拉菜单中,搜索并添加以下最常见的 Vertex AI 相关角色:
-
继续 (可选):
- 你可以在第三步 “Grant users access to this service account” (授予用户访问此服务账号的权限) 中跳过。这通常用于允许人类用户模拟此服务账号。
- 点击 “DONE” (完成) 完成服务账号的创建。
步骤 3:为服务账号创建和下载 JSON 密钥
这是你实际用于应用程序进行身份验证的“密钥文件”。请安全地存储此文件!
-
返回服务账号列表:
在 “IAM & Admin -> Service Accounts” 页面,你会看到刚刚创建的服务账号。 -
管理密钥:
- 点击你刚刚创建的服务账号的名称。
- 点击顶部的 “KEYS” (密钥) 选项卡。
-
添加密钥:
- 点击 “ADD KEY” (添加密钥) 下拉菜单,然后选择 “Create new key” (创建新密钥)。
- 选择 “JSON” 作为密钥类型。这是最常用的格式。
- 点击 “CREATE” (创建)。
-
下载密钥文件:
你的浏览器会自动下载一个.json
后缀的文件 (例如:your-project-id-xxxxxxxxxxxx.json
)。此文件包含敏感凭据,请妥善保管,不要上传到公共代码仓库!