Я создаю конвейер CI / CD в Cloud Build очень простого приложения Node.js с развертыванием в стандартном приложении GCP.
Не секретные переменные среды хранятся в файле app.yaml
. Но, конечно, я не хочу раскрывать там свои секреты. На самом деле я не хочу помещать их в какие-либо файлы (зашифрованные или нет), поскольку этот файл окажется в экземпляре AppEngine и может быть «просмотрен» «плохим администратором». Существует множество примеров, которые предлагают зашифровать / расшифровать полные файлы (а иногда даже код), но я не хочу идти по этому пути.
Я ищу способ установки секретных переменных среды "в памяти" как часть конвейера CI / CD. Кто-нибудь? * * 1006
Я не добавил никаких секретов в файл app.yaml
(env_variables) - отлично работает
Добавлены зашифрованные секреты в мой cloudbuild.yaml
файл (секреты) - без ошибок
Добавлен secretEnv: в шаги сборки, но значение не заканчивается как process.env. [KEY] в движке приложения
cloudbuild.yaml
steps:
- name: 'gcr.io/cloud-builders/npm'
args: ['install']
dir: "appengine/hello-world/standard"
- name: "gcr.io/cloud-builders/gcloud"
args: ["app", "deploy", "test-app.yaml"]
dir: "appengine/hello-world/standard"
secretEnv: ['API_KEY', 'API_URL']
secrets:
- kmsKeyName: projects/XXXXXXXX/locations/global/keyRings/customintegrations-secrets/cryptoKeys/integration-secrets
secretEnv:
API_KEY: XXQAoHgKKoHBKOURrUU2RqU+ki8XyqmTjz+ns+MEWp5Kx3hQBpgSQgATFQ5yRdW4m1TLNqNRIdHIqVJi8tn8jFrtlHIEouOzNDe/ASlOT0ZQBfl9Rf7xlvOHAa667poBq2hEoMNvOclxUQ==
API_URL: YYQAoHgKKklo08ZsQF+/8M2bmi9nhWEtb6klyY4rNthUhSIhQ8oSQQATFQ5ywKOxaM/TLwGDmvMtCpl/1stXOOK0kgy42yipYbw/J/QZL68bMat1u4H3Hvp/GMbUVIKEb9jwUtN2xvbL
Я надеялся, что secretEnv: ['API_KEY', 'API_URL']
сделает расшифрованные значения доступными в коде (process.env.API_KEY
) в обработчике приложения.