Аутентификация запросов от GCE к BigQuery через IAP

#google-cloud-platform #google-bigquery #google-oauth #google-iam #identity-aware-proxy

#google-облачная платформа #google-bigquery #google-oauth #google-iam #с учетом идентификации -прокси

Вопрос:

Я использую экземпляр GCE с одним из изображений ноутбуков python / jupyter, предоставленных GCP, для анализа некоторых данных. Данные хранятся в BigQuery. Экземпляр может использовать учетную запись службы для доступа к BiqQuery по умолчанию, но по соображениям защиты данных я должен использовать личные учетные записи пользователей, запрашивающие данные.

Я знаю, что можно использовать программный поток oauth в python для запроса учетных данных для аутентификации в BigQuery с личной учетной записью, но этот поток должен запускаться в интерактивном режиме каждый раз, когда вы перезапускаете ядро ipython, и включает открытие этого URL-адреса авторизации в браузере, а затем вставку секрета, что раздражает.

Поскольку я использую IAP для входа в экземпляр GCE со своей учетной записью, есть ли способ получить личные учетные данные от IAP для автоматической аутентификации в BigQuery?

Ответ №1:

Насколько я понимаю, IAP — это как экран входа в систему между пользователем и приложением (в вашем случае, сервером jupyter, работающим на GCE) с целью аутентификации пользователя в приложении, например, на сервере jupyter.

IAP добавляет id_token (JWT) в качестве подписанных заголовков к вашим http-запросам после аутентификации, JWT специально создан для экземпляра IAP, если вы декодируете jwt на base64, вы увидите, что для утверждения audience установлен идентификатор client_id экземпляра IAP, и его нельзя использовать для других целей.

Также для bigquery требуется access_token вместо id_token. Я думаю, что выполнение потока oauth может быть единственным способом. но рад, что его исправили…