相关疑难解决方法(0)

sed中的环境变量替换

如果我从脚本运行这些命令:

#my.sh
PWD=bla
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
xxx
bla
Run Code Online (Sandbox Code Playgroud)

没事.

但是,如果我跑:

#my.sh
sed 's/xxx/'$PWD'/'
...
$ ./my.sh
$ sed: -e expression #1, char 8: Unknown option to `s' 
Run Code Online (Sandbox Code Playgroud)

我在教程中读到要替换你需要停止的shell中的环境变量,并且"引用"该$varname部分以便它不直接替换,这就是我所做的,并且只有在之前定义变量时才有效.

我怎样才能将sed识别$var为在shell中定义的环境变量?

unix linux shell sed

170
推荐指数
8
解决办法
22万
查看次数

GAE:存储密钥的最佳实践?

是否存在为Google App Engine存储密钥的非常糟糕的方法?或者,至少,比检查它们进入源代码管理更不可怕?

security google-app-engine

34
推荐指数
3
解决办法
1万
查看次数

通过使用gsutil构建器在构建期间获取app.yaml来保护GAE env变量?

我有与此处提到的问题相同的问题:使用app.yaml在GAE中安全地存储环境变量 - 即:

"我需要在app.yaml中存储API密钥和其他敏感信息作为环境变量,以便在GAE上进行部署.问题在于,如果我将app.yaml推送到GitHub,这些信息就会公开(不好)."

另外我想查看以下方框:

  • 防止供应商锁定(尽可能多)以及将dockerfile带到别处的能力.
  • 使用GitHub轻松部署.我希望推动一个触发构建的主人.
  • 独立开发人员或小团队的最小设置或适当的工作量和工作流程.

我的研究得出以下结论:

使用app.yaml在GAE中安全地存储环境变量

如何在Google App Engine中设置环境变量/应用程序机密

GAE:如何部署各种秘密环境?

appengine和OS环境变量

如何使用云构建将环境变量传递给app.yaml

来自GAE的很多好消息:如何部署各种秘密环境? 作者列出了三种解决方法及其不使用的原因:

  • 使用Google KMS - 允许我们将加密的秘密直接放入项目中,但它要求我们在我们的应用程序中放置自定义代码来解密它们.它在本地,登台和生产之间创建了不同的环境管理.由于复杂性,它增加了错误的风险.
  • 在Google Datastore中存储机密 - 我试过了,我创建了一个帮助程序,在proccess.ENV中搜索env变量,然后在缓存中搜索,最后在Datastore中搜索.但是像KMS一样,它会增加复杂性.
  • 将秘密存储在JSON文件中并放入Google云端存储:再次,它需要通过检查env变量的帮助程序加载env变量,然后加载文件等...

然而,对我来说最好的解决方案来自如何使用云构建将环境变量传递给app.yaml

它允许我使用GAE灵活环境为nodejs提供以下部署流程:

  1. 合并到我的Github主分支会触发云构建
  2. 我的cloudbuild.yaml中的第一步使用gsutil构建器来源我的app.yaml文件,因为app.yaml不在源代码管理中
  3. 我的app.yaml指向我的运行时的dockerfile并且有我的env变量

这会检查我的所有盒子并且是一个相当简单的解决方案但是,这绝对不是一个流行的解决方案,所以我在这里遗漏了什么?

最重要的是有任何安全问题吗?

google-app-engine gsutil

11
推荐指数
1
解决办法
522
查看次数

标签 统计

google-app-engine ×2

gsutil ×1

linux ×1

security ×1

sed ×1

shell ×1

unix ×1