На основе ваших предпочтений, которые вы выделили (Cloud Build, KMS).Ссылка на секреты Google, о которой вы упомянули, включает в себя хранение конфиденциальных данных во время сборки или выполнения с использованием Cloud KMS : KeyRing и CryptoKey.Тем не менее, Google предлагает и другие решения для секретного управления, использующие Cloud KMS.
Вот несколько других опций, которые вы можете использовать при хранении секретов :
1 : Вы можете хранить секреты в коде , которые зашифрованы ключом от Cloud KMS. (Обычно используется для шифрования вашего секрета на прикладном уровне.)
Преимущество: Обеспечивает уровень защиты от внутренних угроз, поскольку ограничивает доступ к коду с соответствующим ключом .
[Дополнительную информацию об этих параметрах можно найти в документации Google здесь .]
Опция 2: Вы можете хранить секреты в Google Storage Bucket , где ваши данные находятся в остальном шифровании. (По аналогии сВариант 1 позволяет ограничить доступ к секретам небольшой группе разработчиков.)
Преимущество: Хранение ваших секретов в отдельном месте гарантирует, что , если нарушение вашего репозитория кода произошло , ваши секреты все еще может быть защищено .)
[Примечание: Google рекомендует использовать два проекта для правильного разделения обязанностей .Один проект будет использовать Cloud KMS для управления ключами, а другой проект будет использовать Cloud Storage для хранения секретов.]
Если перечисленные выше варианты по-прежнему не соответствуют вашим потребностям, я обнаружил Вопрос StackOverflow , который преследует ту же цель, что и ваш проект.(т.е.: хранение переменных среды в GAE без хранилища данных)
Решение, предоставленное для этой ссылки , иллюстрирует использование хранения ключей в файле client_secrets.json, который исключаетсяпри загрузке в git, перечислив его в .gitignore.Вы можете найти Google примеров (Python) использования здесь .