Как назначить несколько учетных данных службы для облачных функций Google? - PullRequest
1 голос
/ 26 марта 2019

У меня есть три учетные записи службы

  1. Сервисная учетная запись по умолчанию для ядра приложения
  2. Сервисная учетная запись хранилища данных
  3. Сервисная учетная запись API Alert Center

Мои облачные функции используют Firestore в режиме хранилища данных для учета и запускают Alert Center API.

При развертывании облачных функций можно назначить только одну учетную запись службы.

Есть ли способ, аналогичный AWS, где можно создать несколько встроенных политик и назначить их учетной записи службы по умолчанию.

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

1 Ответ

1 голос
/ 26 марта 2019

Вы смотрите на служебные аккаунты немного задом наперед.

Конечно, я вижу, как наименование может привести вас в этом направлении. «Служба» в данном случае относится не к предлагаемой услуге, а скорее к не относящимся к человеку объектам (то есть приложениям, машинам и т. Д., В данном случае называемым службами), пытающимся получить доступ к этой предлагаемой услуге. От Общие сведения об учетных записях служб :

Сервисный аккаунт - это особый тип аккаунта Google, который принадлежит ваше приложение или виртуальная машина (ВМ), а не к индивидуальный конечный пользователь. Ваша заявка предполагает идентичность сервисную учетную запись для вызова API Google , чтобы пользователи не непосредственно участвует.

Таким образом, вам не следует смотреть на учетные записи служб с точки зрения предлагаемой службы - т.е. API хранилища данных или Alert Center, а скорее с точки зрения их «пользователей» - в этом случае ваш CF.

Эта единственная учетная запись службы, назначенная определенному CF, просто идентифицирует этот CF (в отличие от некоторого другого CF, приложения, компьютера, пользователя и т. Д.) При доступе к определенной услуге.

Если вы хотите, чтобы CF имел доступ к определенной службе Google, вам необходимо предоставить учетной записи службы CF соответствующую роль (и) и / или разрешения для этого.

Чтобы получить доступ к хранилищу данных, вы должны посмотреть на эти Разрешения и роли . Если хранилище данных, к которому ваши CF должны иметь доступ, находится в том же проекте GCP , то учетная запись службы CF по умолчанию , которая совпадает с учетной записью приложения GAE из этого проекта, уже имеет доступ к хранилищу данных (конечно, если вы в порядке с использованием учетной записи службы по умолчанию).

Я не использовал API Alert Center, но, по-видимому, использует OAuth 2.0 , поэтому вам, вероятно, следует пройти через Сервисные учетные записи .

...