팀 프로젝트 설정

이 페이지에서는 Vertex AI 작업 팀을 위한 프로젝트 설정 방법에 대한 예시를 제공합니다. 이 페이지에서는 IAM을 통한 Vertex AI 액세스 제어액세스 관리 관련 개념에 설명된 대로 정책, 역할, 권한, 주 구성원 등 Identity and Access Management(IAM) 개념에 이미 익숙하다고 가정합니다.

이러한 예시는 일반 용도로 사용됩니다. 팀의 특정 요구에 따라 필요한 프로젝트 설정 방법을 조정하세요.

개요

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 리소스를 만들 때 리소스 ID로 사용할 서비스 계정을 지정하고 이 서비스 계정을 사용해서 액세스 제어를 관리하세요. 이렇게 하면 특정 리소스에 데이터에 대한 액세스를 부여하고 시간이 지나도 권한을 관리하기 쉽습니다.

예를 들어 다음과 비슷한 정책을 사용해서 서비스 계정에 BigQuery에 대한 액세스를 부여할 수 있습니다.

{
  "version": 1,
  "etag": "BwWKmjvelug=",
  "bindings": [
    {
      "role": "roles/bigquery.user",
      "members": [
        "user:SERVICE_ACCOUNT_NAME@PROJECT_NUMBER.iam.gserviceaccount.com"
      ]
    }
  ]
}

서비스 계정의 액세스 제어를 설정하려면 서비스 계정 액세스 관리를 참조하세요.

Vertex AI 리소스가 있는 프로젝트에서 관리자는 지정된 서비스 계정에 대해 서비스 계정 사용자 역할(roles/iam.serviceAccountUser)을 부여하여 사용자에게 데이터에 대한 액세스를 부여할 수 있습니다.

추가적인 별개의 프로젝트에서 신뢰도가 낮은 코드 격리

모델, 예측, 컨테이너, 학습 컨테이너는 코드입니다. 민감한 모델 및 데이터에서 신뢰도가 낮은 코드를 격리하는 것이 중요합니다. 엔드포인트 및 학습 단계를 자체 프로젝트에 배포하고, 권한이 매우 제한적인 전용 서비스 계정을 사용하고, VPC 서비스 제어를 사용해서 이를 격리하고, 이러한 컨테이너 및 모델에 부여되는 액세스 권한의 영향을 줄여야 합니다.

다음 단계