簡體   English   中英

使用 GOOGLE_APPLICATION_CREDENTIALS env var 和 GitHub Actions secret

[英]Use GOOGLE_APPLICATION_CREDENTIALS env var with GitHub Actions secret

我的問題很簡單:我想運行依賴於從 GitHub Actions 秘密正確設置的GOOGLE_APPLICATION_CREDENTIALS的代碼。

問題是GOOGLE_APPLICATION_CREDENTIALS應該包含服務帳戶文件的路徑,而秘密是否包含實際的服務帳戶文件內容。

最好的做法是什么?


編輯

本質上,我運行一個 NodeJS 腳本,該腳本使用客戶端庫(PubSub、BigQuery 等)連接到多個 GCP 資源。 據我了解,如果正確定義了GOOGLE_APPLICATION_CREDENTIALS env var,它們可以最輕松地工作。

您可以使用GitHub 操作登錄。您幾乎必須使用服務帳戶的內容創建一個密碼並將其指定為輸入:

    - id: 'auth'
      name: 'Authenticate to Google Cloud'
      uses: 'google-github-actions/auth@v0'
      with:
        credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}'

問題是 GOOGLE_APPLICATION_CREDENTIALS 應該包含服務帳戶文件的路徑,而秘密是否包含實際的服務帳戶文件內容。

沒有一個。 環境變量必須指向一個文件,該文件是服務帳戶 JSON 密鑰所在的位置。 您可以將內容寫入工件,但那很危險。 還有其他方法,但您的問題沒有提供有關您的 GitHub 操作執行的操作或其運行的命令的詳細信息。 但是,我仍然不會使用那些方法。

正確的解決方案是使用 Google Cloud Workload Identity Federation。 這既是解決方案,也是最佳實踐解決方案。

GitHub 提供一個 OAuth 身份提供者。 Google 支持將憑證從一個 OAuth 提供商聯合到另一個提供商。

從 GitHub 操作啟用無密鑰身份驗證

谷歌-github-actions/auth

暫無
暫無

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

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