为团队设置项目

本页面提供了一些示例,说明如何为使用 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 对其进行隔离,从而减少向这类容器和模型授予的访问权限的影响。

后续步骤