问题是如何设置应用程序机密,使其在应用程序中可用。yml
?
在heroku上,我只是简单地为dyno设置了环境变量,并将其访问为:
server:
port: ${PORT}
security:
user:
password: ${USERPASSWORD}
eureka:
client:
register-with-eureka: false
fetch-registry: false
instance:
hostname: localhost
securePortEnabled: true
password: ${EUREKAPASSWORD}
不幸的是,我不知道如何将这些值注入我的*. yml文件。
编辑:
还有一件更重要的事情需要补充。我正在使用maven appengine
plugin通过CI管道部署我的应用程序,所以我不可能推送app。yaml
文件到应用程序引擎
最好和安全的方法是使用GCP KMS或一些第三方机密管理器产品,如vault。
GCP KMS
数据存储
是的。我们可以将凭据/机密环境变量存储到数据存储中,并在应用程序代码中的运行时获取它们。
赞成的意见:
欺骗:
GCE元数据
我曾经使用GCE元数据服务器来存储我的秘密环境变量。
赞成的意见:
>
它支持GAE、GCE、GKE。
非常简单。我们只需要发送HTTP请求到http://metadata.google.internal/computeMetadata/v1/
endpoint来获取我们的自定义元数据(秘密环境变量)。
欺骗:
>
去年,GCE元数据不支持云功能。(运行时:nodejs10)。我无法从云函数中的GCE元数据获取我的自定义环境变量。但是可以获取内置的元数据,比如projectId
。
安全性不如KMS好。
configmap和secrets(仅适用于GKE)
可以进行简单的base64加密。使用难度中等。安全性不如KMS。
另一种黑客方式
我还在这里为这个问题创建了一个帖子:如何将系统环境变量传递给app.yaml?
是的,Linux脚本方式可以做任何事情。但我不喜欢这种黑客方式。
谷歌也有一个关于如何存储加密机密的教程。https://cloud.google.com/kms/docs/store-secrets
TLDR:一个单独的存储桶来存储加密的秘密,实例在需要时下载它,使用Google KMS(https://cloud.google.com/kms/)解密并在之后删除。
如果你想存储应用程序在运行时可用的秘密,将它们保存在数据存储中不是个坏主意。我知道很多应用程序都能做到这一点。
这是Khan Academy使用的一个应用程序,它是在数据存储中存储秘密凭据的一个很好的例子。它是Python格式的,但您可以了解大致情况。请注意,在第一次管理员登录时,它会提示存储机密。
问题内容: 我需要在python脚本中设置一些环境变量,并且我希望从python调用的所有其他脚本(shell脚本)(将是子进程)来查看设置的环境变量。该值为数字。 如果这样做,它会抱怨说1必须是字符串。我也想知道一旦设置它,如何在python(在脚本的后半部分)中读取环境变量。 问题答案: 你可能需要考虑其他方面的代码健壮性; 当你将整数值的变量存储为环境变量时,请尝试 然后为了进行检索,请考虑
问题内容: 如何从内部设置一些环境变量以与类似命令一起使用? 这是我目前所拥有的: 我想在启动脚本中设置环境变量(例如),同时仍然能够仅通过一个命令来启动应用程序。 问题答案: 在脚本命令中设置环境变量: 然后在您的应用中使用。 注意:确保它可以跨平台工作。如果只关心Mac / Linux,则可以忽略它。
问题内容: 我已经开始在Django项目中工作,我想设置一些环境变量,而不必手动设置它们或将bash文件作为源。 我想设置以下变量: 我已经读过这篇文章,但这并不能解决我想要的问题。另外,我尝试在Preferences- > Build,Execution,Deployment- > Console- > Python Console / Django Console中设置环境变量,但是它设置了解
问题内容: 我有一个问题,Jupyter在bashrc文件中看不到env变量,有没有办法在jupyter中加载这些变量或向其中添加自定义变量? 问题答案: 要在jupyter笔记本中设置env变量,只需使用魔术命令或,例如或。(单独使用以打印当前的环境变量。) 请参阅:http : //ipython.readthedocs.io/en/stable/interactive/magics.html
问题内容: 我想在Glassfish 2.1版中部署当前已在Tomcat中部署的应用程序。 在Tomcat server.xml中,我在应用程序使用的server.xml中定义了一个env变量 如何在Glassfish 2.1中设置此变量。我知道版本3中有一个 asenv.conf 文件,但是在2.1中找不到类似的东西。 问题答案: 启动服务器,登录管理控制台,导航到JVM选项,并添加-D参数,然
我在使用appium运行java mobile automation测试用例时遇到了这个错误 处理命令时发生未知的服务器端错误。原始错误:packageAndLaunchActivityFromManifest失败。原始错误:找不到aapt请用Android SDK根目录路径设置ANDROID_HOME环境变量。(警告:服务器未提供任何stacktrace信息) 配置: IntelliJ IDE-