Проблема при внедрении ротации ключей сервисного аккаунта - PullRequest
0 голосов
/ 07 августа 2020

У кого-нибудь есть предложения о том, как реализовать автоматическую ротацию ключей для учетных данных сервисных учетных записей, используемых в облачной функции AppEngine, GKE. GCP добавил это как одну из рекомендуемых политик безопасности для облачных сервисов. Мы можем найти API / клиентские библиотеки для создания нового закрытого ключа для существующей учетной записи службы. Но мы действительно не понимаем, как обновить вновь созданный ключ в приложении, развернутом в AppEngine, облачной функции во время выполнения.

1 Ответ

3 голосов
/ 10 августа 2020

Когда вы используете компоненты Google Cloud, вам не нужно использовать ключевые файлы служебных учетных записей. Это плохая практика (даже если она представлена ​​как «стандартная» в слишком большом количестве руководств, даже в руководствах по Google Cloud!).

Управление файлом ключа учетной записи службы - это кошмар. Это файл. Вы можете скопировать его, вы можете отправить по электронной почте, вы даже можете зафиксировать его в исходном репозитории (возможно, publi c repo !!). Кроме того, вам необходимо обеспечить безопасность и регулярно менять его ...

Лучший способ упростить это - не использовать их и полагаться на идентификационные данные компонентов Google Cloud. Конечно, для всех внешних компонентов, таких как CI / CD, локальное приложение (или у другого облачного провайдера), файл ключа учетной записи службы является лучшим способом аутентификации в Google Cloud

  • Для облачных функций вы можете использовать Идентификатор облачных функций
  • Для GKE вы можете использовать Идентификатор рабочей нагрузки
  • Для приложения Engine, вы можете полагаться на учетную запись службы по умолчанию App Engine
  • Для локальной разработки выполните gcloud auth application-default login, чтобы создать учетные данные по умолчанию с вашей собственной учетной записью

В каждом случае вы можете восстановить учетные данные по умолчанию в своем коде. ( здесь пример простых учетных данных, без клиентской библиотеки, только библиотека Google OAuth2)

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

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