Я хотел бы установить отдельные разрешения для разных приложений, работающих в GCP AppEngine.
Я думаю, что способ сделать это — использовать специализированные сервисные учетные записи для каждого приложения.
Насколько я понимаю, все приложения запускаются с учетной записью службы AppEngine по умолчанию project@appspot.gserviceaccount.com
Есть ли способ явно установить учетную запись службы для приложения, работающего на AppEngine в GCP? Тогда я смогу создавать отдельные сервисные аккаунты с тонкими ограничениями доступа.
Я предполагаю, что вы имеете в виду стандарт App Engine. У вас есть только один стандарт App Engine Standard для каждого проекта.
У вас может быть несколько сервисов в App Engine.
Вам нужно будет создать учетную запись службы, а затем загрузить учетную запись службы внутри вашего кода. Затем вы можете изменить учетную запись службы по умолчанию, чтобы иметь минимальные разрешения, необходимые для работы. Убедитесь, что вы изучаете то, что вы делаете, прежде чем менять разрешения. Вы можете сломать App Engine, наложив слишком много ограничений.
Однако это вызывает проблемы безопасности в том, как вы управляете и распространяете ключи учетной записи службы.
Если вы имеете в виду гибкий механизм App Engine. Google даже не показывает гибкую учетную запись службы в консоли, поскольку Google не хочет, чтобы вы ее изменяли.
@jon_wu - Почему вы разместили этот комментарий к моему ответу? В вашей ссылке есть хорошая информация, но она не относится к моему ответу и не улучшает его. Ваш комментарий, вероятно, следует перенести на вопрос, который был задан.
Ваш ответ звучит так, будто учетная запись службы по умолчанию не применяется к гибкому App Engine и вместо этого использует другую скрытую учетную запись. Было бы полезно уточнить ответ, чтобы описать обе учетные записи службы в соответствии с моим комментарием выше.
@jon_wu - Пожалуйста, создайте новый вопрос.
тлдр; ты можешь сделать gcloud beta app deploy --service-account=<your_service_account> app.yaml
Идентификация приложения AppEngine больше не ограничивается учетной записью службы AppEngine по умолчанию. Теперь вы можете выполнить развертывание с настраиваемой учетной записью службы для каждого приложения AppEngine, следуя https://cloud.google.com/appengine/docs/standard/python/user-managed-service-accounts#app.yaml.
Это работает как для AppEngine Standard, так и для Flexible.
Просто обратите внимание, что вам, возможно, придется сначала обновить версии gcloud. См. документы по установке. Для меня это потребовало gcloud components update
, а затем использование флага бета: gcloud beta app deploy [app.yaml]
. Либо переключатель --service-acount
, либо параметр service_account
в yaml работали с бета.
Гибкий App Engine также использует ту же учетную запись службы по умолчанию для приложения. Другая скрытая учетная запись службы, которую использует также, используется за кулисами для оркестровки. См. cloud.google.com/appengine/docs/flexible/java/….