Аутентификация в облачных функциях Google для других API GCP - PullRequest
0 голосов
/ 09 июля 2019

Я хочу написать облачную функцию Google, которая может взаимодействовать со службой GCP Dataproc для программного запуска кластеров Dataproc.У нас уже есть закаленная в боях инфраструктура Dataproc, мы просто ищем способы их запуска.

Наши кластеры Dataproc могут быть запущены только с использованием соответствующей учетной записи службы IAM, которая уже является членомсоответствующие роли IAM, следовательно, облачной функции необходимо будет проходить проверку подлинности в службе Dataproc с использованием этой учетной записи службы.Какой способ облачной функции является наиболее подходящим для аутентификации других сервисов / API GCP с использованием учетной записи сервиса?

Опции, которые я подозреваю, включают:
* запуск функции от имени этой учетной записи службы
* предоставление файла ключа JSON и настройка переменной среды GOOGLE_APPLICATION_CREDENTIALS

Существует ли признанный способ достижения этой цели?

Я просматривал:
* https://cloud.google.com/docs/authentication/
* https://cloud.google.com/docs/authentication/getting-started
, но они не относятся к облачным функциям.

Я такжепосмотрел на
* https://cloud.google.com/functions/docs/writing/http
, но это, кажется, больше касается того, как вызывающая функция может аутентифицировать.

1 Ответ

1 голос
/ 21 июля 2019

Я думаю, это то, что вы ищете: https://cloud.google.com/functions/docs/concepts/iam

Во время выполнения Cloud Functions по умолчанию использует учетную запись службы App Engine по умолчанию (PROJECT_ID@appspot.gserviceaccount.com), которая играет роль редактора в проекте. Вы можете изменить роли этой учетной записи службы, чтобы ограничить или расширить разрешения для выполняемых вами функций. Вы также можете изменить используемую учетную запись службы, указав учетную запись службы не по умолчанию для каждой функции.

тл; др gcloud functions deploy FUNCTION_NAME --service-account SERVICE_ACCOUNT_EMAIL

Кстати, если вам когда-нибудь понадобится более сложная логика планирования, рассмотрите возможность использования Cloud Composer (управляемого Apache Airflow): https://cloud.google.com/composer/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...