本页面提供了一些示例,说明如何为使用 Vertex AI 的团队设置项目。本页面假定您已熟悉 Identity and Access Management (IAM) 概念,例如政策、角色、权限和主账号,如使用 IAM 进行 Vertex AI 访问权限控制以及与访问管理相关的概念中所述。
这些示例旨在用于常规情景。请考虑团队的具体需求,并相应地调整项目设置方式。
概览
Vertex AI 使用 IAM 来管理对资源的访问。在规划资源的访问权限控制时,请考虑以下事项:
您可以在项目级层或资源级层管理访问权限。 项目级访问权限适用于该项目中的所有资源。对特定资源的访问权限仅适用于该资源。
您可以通过向主账号分配 IAM 角色来授予访问权限。预定义角色可让您更轻松地设置访问权限,但我们建议使用自定义角色,因为您可以创建这些角色,以便将其访问权限限制为仅包含所需的权限。
如需详细了解访问权限控制,请参阅使用 IAM 进行 Vertex AI 访问权限控制。
对数据和 Vertex AI 资源拥有共享访问权限的单个项目
在此示例中,一个团队共享包含其数据和 Vertex AI 资源的单个项目。
如果团队的数据、容器和其他 Vertex AI 资源可以在项目的所有用户之间共享,您可以通过这种方式设置项目。
项目的 IAM 允许政策可能类似于以下内容:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/aiplatform.user", "members": [ "user:USER1_EMAIL_ADDRESS", "user:USER2_EMAIL_ADDRESS" ] }, { "role": "roles/storage.admin", "members": [ "user:USER1_EMAIL_ADDRESS", "user:USER2_EMAIL_ADDRESS" ] }, { "role": "roles/aiplatform.serviceAgent", "members": [ "user:service-PROJECT_NUMBER@gcp-sa-aiplatform-cc.iam.gserviceaccount.com" ] } ] }
通过这种方式设置项目,团队可以更轻松地协作训练模型、调试代码、部署模型和观察端点。所有用户都会看到相同的资源,并且可以使用相同的数据进行训练。Vertex AI 资源在单个项目中运行,因此您无需授予对项目外部资源的访问权限。配额在团队中共享。
如需为团队的项目设置访问权限控制,请参阅管理对项目、文件夹和组织的访问权限。
分隔数据和 Vertex AI 资源
在此示例中,团队的数据位于与 Vertex AI 资源分隔的项目中。
在以下情况下,您可以通过这种方式设置项目:
团队的数据很难移动到与 Vertex AI 资源相同的项目中。
团队的数据需要对可以访问它的用户进行特定控制。
在这些情况下,我们建议您为数据创建一个项目,并为 Vertex AI 资源创建另一个项目。团队的开发者共享包含 Vertex AI 资源的项目。他们使用 Vertex AI 资源来访问和处理存储在另一个项目中的数据。数据管理员通过服务代理或自定义服务账号授予 Vertex AI 资源访问权限。
例如,您可以通过类似于以下内容的允许政策向默认 Vertex AI 服务代理授予对 Cloud Storage 存储桶的访问权限:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/storage.objectViewer", "members": [ "user:service-PROJECT_NUMBER@gcp-sa-aiplatform-cc.iam.gserviceaccount.com", "user:service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com" ] } ] }
在创建 Vertex AI 资源时,请尽可能指定一个服务账号作为资源身份,并使用该服务账号管理访问权限控制。这样便可以更轻松地授予特定资源对数据的访问权限,并随时间推移管理权限。
例如,您可以使用类似于以下内容的政策向服务账号授予对 BigQuery 的访问权限:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/bigquery.user", "members": [ "user:SERVICE_ACCOUNT_NAME@PROJECT_NUMBER.iam.gserviceaccount.com" ] } ] }
如需为服务账号设置访问权限控制,请参阅管理对服务账号的访问权限。
在包含 Vertex AI 资源的项目中,管理员可以通过对指定服务账号授予 Service Account User 角色 (roles/iam.serviceAccountUser
) 来向用户授予对数据的访问权限。
将不太可信的代码隔离到其他单独的项目中
模型、预测容器和训练容器都是代码。请务必将不太可信的代码与敏感模型和数据隔离开来。在各自的项目中部署端点和训练阶段,使用权限非常有限的专用服务账号,并使用 VPC Service Controls 对其进行隔离,从而减少向这类容器和模型授予的访问权限的影响。
后续步骤
如需详细了解端点访问权限控制,请参阅控制对 Vertex AI 端点的访问权限。
如需详细了解如何使用自定义服务账号控制对特定资源的访问权限,请参阅使用自定义服务账号。