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

时间:2020-01-10 08:49:54

标签: security environment-variables

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

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

不确定此问题是否适合stackoverflow,请引导我进入正确的stackexchange论坛。

1 个答案:

答案 0 :(得分: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