이 페이지에서는 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 서비스 제어를 사용하여 이를 격리하고 이러한 컨테이너와 모델에 부여된 액세스의 영향을 줄입니다.
다음 단계
엔드포인트 액세스 제어에 대한 자세한 내용은 Vertex AI 엔드포인트에 대한 액세스 제어를 참고하세요.
커스텀 서비스 계정을 사용하여 특정 리소스에 대한 액세스를 제어하는 방법에 관한 자세한 내용은 커스텀 서비스 계정 사용을 참고하세요.