Ошибка доступа к хранилищу конвейеров Kubeflow внутри одного проекта GCP?

После установки Kubeflow 0.7 на новый кластер GKE (через https://deploy.kubeflow.cloud/) я настроил OAuth и удостоверение рабочей нагрузки на основе соответствующих руководств.

В моем конвейере мне нужно получить доступ к корзине GCS из того же проекта, и мне кажется, что у меня нет доступа для этой операции.

Однако у кластера есть доступ к GCR, а права на хранилище загружают и монтируют образы Docker и запускают код. Не удается загрузить из других сегментов по запросу из кода, даже если сегменты находятся в одном проекте.

Код использует метод аутентификации по умолчанию:

storage_client = storage.Client(project_id)
bucket = storage_client.get_bucket(bucket)

Есть ли у кого-нибудь идеи, как решить и предотвратить это с помощью доступа к BigQuery (который будет доступен после загрузки этих файлов)

google.api_core.exceptions.Forbidden: 403 GET https://storage.googleapis.com/storage/v1/b/$BUCKET?projection=noAcl Primary: /namespaces/$PROJECT_ID.svc.id.goog with additional claims does not have storage.buckets.get access to $BUCKET.

1 ответ

Решение

Хорошо, так что для тех, у кого похожие проблемы. Я забыл добавить в код следующий фрагментstep.apply(gcp.use_gcp_secret('user-gcp-sa'))

Это работает даже с kfp.components.load_component_from_file()

Это выяснилось благодаря замечательным людям из канала kubeflow slack!

Другие вопросы по тегам