如何管理环境变量和机密?

问题描述 投票:0回答:1

男孩,我已经厌倦了这个话题。我有gitlab CI,本地环境,钥匙串,keepass,gcp,aws和一大堆其他地方,其中存储了我的一些env变量。此外,例如,Expo应用程序无法提取.env文件,因此我必须编写bash脚本才能创建js文件。这伤了我的大脑。

我希望有一个舒适的地方,可以在每个项目的每个环境中安全地存储所有变量和秘密。我想与我的团队,CI服务器等共享它。我只想指定一个密钥:environemnt标题。并且所有变量都应该从某个地方提取。在github或Internet上的任何地方都有这样的工具吗?

不确定这个问题是否适合stackoverflow,请把我直接带到正确的stackexchange论坛。

security environment-variables
1个回答
0
投票

逐个文件加密文件和部署脚本,将它们推送回购。每当您需要切换环境时,只需使用名称中的环境关键字解密文件即可:

Encrypt.sh

# sh encrypt.sh ./config.production.js passwordhere
echo "encrypting $1"
openssl enc -aes-128-cbc -a -salt -pass pass:$2 -in $1 -out $1.enc
rm $1
mv $1.enc $1
echo "done"

decrypt.sh:

# sh decrypt.sh production passwordhere
echo "decrypting $1 environment"

for file in $(find . -not -path "*/node_modules/*" -name "*.$1*")
do
    echo "decrypting $file to ${file//.$1}"
    openssl enc -aes-128-cbc -a -d -salt -pass pass:$2 -in $file -out "${file//.$1}"
done
© www.soinside.com 2019 - 2024. All rights reserved.