繁体   English   中英

将 GitHub Secrets 作为参数传递给 python 代码是否安全?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM