簡體   English   中英

有沒有辦法強制 Github 操作在來自分支的拉取請求觸發器中使用主分支工作流文件?

[英]Is there a way to force Github actions use main branch workflow files in a pull request trigger from a fork?

我有一個使用 github 動作和叉子 model 的問題。

我使用 fork model,其中分叉的存儲庫需要通過 CI 工作流在從 fork 返回到基本存儲庫的拉取請求中進行檢查 CI 工作流需要來自基本存儲庫的一些秘密。

當前設置:

  1. Base Repository/main branch/.github/workflows/正確的工作流文件。

  2. 分叉存儲庫/主分支/.github/workflows/惡意修改文件以泄露秘密。

  3. 基本存儲庫中的操作設置:

    • 從分叉拉取請求運行工作流程 [是]
    • 從分叉拉取請求將寫入令牌發送到工作流 [否]
    • 從分叉拉取請求中向工作流發送機密 [是]

觀察到的行為/Q:

  1. 我可以從分叉的主分支創建拉取請求 -> 基礎主分支
  2. 請求觸發工作流運行,使用來自 FORKED 存儲庫的文件。 這是一個問題,因為有人可以分叉分支並添加工作流來揭示秘密。
  3. 工作流中的aws-actions/configure-aws-credentials可以使用 AWS 登錄。 這是一個問題,因為此操作需要permissions: id-token: write 據我了解,來自分叉的拉取請求不應授予工作流任何寫入權限。 我也擔心這里的安全。

希望的行為:

我想要實現的是,仍然允許來自分叉存儲庫的拉取請求來觸發 CI 工作流,但使用來自基本存儲庫的文件而不是分叉存儲庫。 無論如何這可能嗎? 如果沒有,有什么補救措施嗎?

還想檢查我對授予分叉拉取請求的所謂只讀權限的理解。 為什么id-token:write權限似乎有效? 工作流文件中的顯式權限聲明是否可以覆蓋分叉拉取請求限制?

如果我誤解了重要概念,第一次使用工作流用戶,請道歉。

參考: 防止PWN攻擊

我無法提供保護通用憑證的解決方案,但是我可以針對 AWS 特定憑證提出解決方法。

OpenID Connect

您可以創建一個啟用 OpenID 的 IAM 角色,並trust github 操作承擔它。 這是通過我們的各種 github 操作完成的。

您可以在 github 的文檔中找到更多詳細信息。

https://docs.github.com/cn/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM