У меня есть доступ к таблице BigQuery, и я могу использовать его из консоли BigQuery или командной строки gcloud. Но я не могу написать основные запросы против него в Datalab и получить отказ в доступе к доступу.Каковы учетные данные, используемые Datalab для доступа к данным?
ответ
Datalab предназначен для использования в командных условиях. Ноутбуки могут содержать результаты выполнения кода (например, запрос SQL запроса BigQuery) и доступны для членов проекта. Следовательно, Datalab использует учетную запись службы App Engine в вашем проекте для доступа к данным. Это обеспечивает единый доступ для просмотра и выполнения ноутбуков и минимизирует риск случайного раскрытия данных. Если вы не контролируете доступ к данным, вам может потребоваться предоставить доступ к учетной записи службы. Вы можете найти учетную запись службы в Developers Console, нажав Разрешения в левой панели навигации и найти учетную запись службы App Engine. В настоящее время Datalab не использует учетные данные пользователя.
Был ли это тот же проект, с которым вы работали в BigQuery Console и Datalab? Если да, вы должны быть разрешением владельца проекта/редактора.
Также обратите внимание, что в Google Datalab ноутбук использует учетную запись службы, чтобы получить доступ к данным вместо вашей собственной учетной записи. Таким образом, вы можете проверить, есть ли какие-либо различия в разрешении между этими двумя учетными записями. Например, если в запросе, вы имели в виду набор данных в другом проекте BigQuery, вы можете сделать эти шаги:
запустить следующую команду в вашем DATALAB ноутбук, чтобы проверить, какой сервис счета используется:
%% Баш локон --silent -H «Metadata-Flavor: Google» \ http://metadata/computeMetadata/v1/instance/service-accounts/default/email
добавить учетную запись службы, показанную в результате шага 1 в списке разрешений других проектов, которые запрошено
Есть ли вероятность, что в ближайшем будущем Datalab сможет использовать учетные данные отдельного пользователя для доступа к данным в Cloud Storage? – SheRey