#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 может быть единственным способом. но рад, что его исправили…