![](/img/trans.png)
[英]How to pass secrets from GitHub Actions to python environ variables?
[英]Is it safe to pass GitHub Secrets as an argument to a python code?
我将 Telegram API 密钥存储在 GitHub secrets 中,并将它们传递给我的工作流程中的代码,例如
python3 main.py ${{ secrets.API_KEY }
并在我的代码中使用它
import sys
KEY = sys.argv[1]
在运行时,它确实过滤掉了 (***) 秘密,但这真的安全还是我应该寻找另一种方式来传递我的密钥,如果作为 arg 传递,是否有人可以看到 API?
GitHub 使用libsodium 密封盒来帮助确保机密在到达 GitHub 之前已加密,并在您在工作流程中使用它们之前保持加密状态。
这就是他们在工作流运行中返回* * *
的原因。 它是安全的。 但是,正如您在上面chepner 共享的链接中看到的那样,有以下建议:
尽可能避免从命令行在进程之间传递机密。 命令行进程可能对其他用户可见(使用 ps 命令)或被安全审计事件捕获。 为了帮助保护机密,请考虑使用环境变量、STDIN 或目标进程支持的其他机制。
因此,在您的情况下,您应该将其作为环境env variable
添加到步骤中,而不是直接在命令行上发送这样的变量:
steps:
- run: python3 main.py
env:
API_KEY: ${{ secrets.API_KEY }
然后在 python 脚本中使用KEY = os.environ.get("API_KEY")
提取变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.