GCP - Vertex AI Model - Ошибка доступа к GCS
У нас есть модель Vertex AI, созданная с использованием пользовательского изображения. Мы пытаемся получить доступ к корзине при запуске, но получаем следующую ошибку:
google.api_core.exceptions.Forbidden: 403 GET https://storage.googleapis.com/storage/v1/b/...?projection=noAcl&prettyPrint=false: {service account name} does not have storage.buckets.get access to the Google Cloud Storage bucket.
Проблема в том, что я не могу найти учетную запись службы, упомянутую в ошибке, чтобы предоставить ей необходимые права доступа.
2 ответа
Я занимаюсь тем же общим вопросом. Vertex AI не может получить доступ к моей корзине Cloud Storage из пользовательского контейнера прогнозов.
Покопавшись в сложном дереве документов GCP Vertex, я нашел это:https://cloud.google.com/vertex-ai/docs/general/custom-service-account#setup .
И
https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#artifacts
ОБНОВЛЕНИЕ Проработав это, я смог получить доступ к GCS для работы.
- Создайте новую учетную запись службы и назначьте ей соответствующие роли/разрешения. Вам нужен ваш
PROJECT_ID
иPROJECT_NUMBER
.
NEW_SA_EMAIL=new-service-account@$PROJECT_ID.iam.gserviceaccount.com
AI_PLATFORM_SERVICE_AGENT=service-$PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
gcloud iam service-accounts create $NEW_SA_NAME \
--display-name="New Vertex AI Service Account" \
--quiet
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$NEW_SA_EMAIL" \
--role="roles/storage.admin" \
--quiet
gcloud iam service-accounts add-iam-policy-binding \
--role=roles/iam.serviceAccountAdmin \
--member=serviceAccount:$AI_PLATFORM_SERVICE_AGENT \
--quiet \
$NEW_SA_EMAIL
Загрузите свою модель и создайте конечную точку, используя
gcloud
команды вершины ai...Свяжите новый SA с конечной точкой Vertex AI при развертывании модели. Вам понадобится
GCP_REGION
,ENDPOINT_ID
,MODEL_ID
,DEPLOYED_MODEL_NAME
, иNEW_SA_EMAIL
с первого шага.
gcloud ai endpoints deploy-model $ENDPOINT_ID \
--region=$GCP_REGION \
--model=$MODEL_ID \
--display-name=$DEPLOYED_MODEL_NAME \
--machine-type=n1-standard-4 \
--service-account=$NEW_SA_EMAIL
Решил это, предоставив конечной точке правильную учетную запись службы