Аутентификация задачи http-вызова Google Composer с приложением, защищенным IAP - PullRequest
0 голосов
/ 10 июля 2019

У меня есть установка, в которой у меня есть приложение REST для движка приложения и группа DAG Google composer / airflow, в которой есть задача, которая должна получать данные с одной из конечных точек приложения. Приложение защищено IAP. Я добавил служебную учетную запись, под которой запускается Airflow, в список «Пользователь Web-приложения, защищенного IAP», однако каждый раз, когда выполняется шаг, ответ на вызов http отображается на странице входа в Google. Любая идея, если какой-либо дополнительный шаг необходим?

Код для моего шага DAG:

def get_data():
    r = requests.get(url="url-to-my-app-endpoint>")
    print('stuff:')
    print(r.status_code)
    print(r.content)
    return 1

# ...

python_fetch_data = PythonOperator(
    task_id='python_fetch_data',
    python_callable=get_data,
    dag=dag,
    depends_on_past=True,
    priority_weight=2
)

1 Ответ

0 голосов
/ 11 июля 2019

https://cloud.google.com/iap/docs/authentication-howto#authenticating_from_a_service_account объясняет, как расширить код DAG, чтобы он отправлял учетные данные в бэкэнд API, защищенный IAP.

Немного предыстории: поскольку Composer построен на основе GCP, ваше развертывание Composer имеет уникальную учетную запись службы , от имени которой он работает. Вы можете добавить эту учетную запись службы в список доступа IAP для своей конечной точки.

Я не знаю, позволяет ли пользовательский интерфейс Composer легко видеть адрес электронной почты для вашей учетной записи службы, но если вы добавите приведенный выше код и расшифруете токен , который он генерирует, это покажет это.

...