簡體   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