3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
你的問題沒有簡(jiǎn)單的答案。
第 1 部分 - 您的主機(jī)不在 Google Cloud 上
你的主機(jī)安全嗎?如果是,則可以將服務(wù)帳戶 JSON 密鑰放在無法從面向公眾的應(yīng)用程序訪問的目錄中。這里我的意思是不要將文件放在與您的網(wǎng)絡(luò)服務(wù)器相同的目錄中。使用一個(gè)位置/config
,然后加強(qiáng)該目錄的安全性,以便只有授權(quán)用戶和您的應(yīng)用程序才能讀取該文件。
確定憑據(jù)文件的安全文件位置后,請(qǐng)直接在代碼中指定該服務(wù)帳戶。不要使用環(huán)境變量或命令行開關(guān)。不要使用GOOGLE_APPLICATION_CREDENTIALS
. 有些評(píng)論是使用KMS。使用 KMS 是一個(gè)好主意,但您面臨著先有雞還是先有蛋的情況。您需要憑據(jù)才能使用 KMS 解密。如果不法分子可以訪問您的加密憑據(jù),他們還可以訪問您的源代碼,或?qū)?yīng)用程序進(jìn)行逆向工程,以查看解密方法和用于解密的服務(wù)帳戶。
注意:為憑證文件指定靜態(tài)位置不是 DevOps 的最佳實(shí)踐。您的問題是關(guān)于安全性而不是 CI/CD。您正在使用共享服務(wù)器,這可能意味著很多事情,并且 DevOps 可能沒有集成到您的部署或系統(tǒng)設(shè)計(jì)中。
如果您的主機(jī)不安全,那么您就沒有可行的選擇。您無能為力,無法阻止“熟練”工程師逆轉(zhuǎn)您的“遮蔽”方法。
第 2 部分 - 您的主機(jī)在 Google Cloud 上(Compute Engine、Cloud Run、App Engine 等)
注意:以下技術(shù)處于測(cè)試階段。這是谷歌云授權(quán)的未來,它是身份基礎(chǔ)訪問控制,以補(bǔ)充基于角色的訪問控制,并在某些情況下取代它。
您可以為主機(jī)分配一個(gè)具有零權(quán)限的服務(wù)帳戶。注意“分配”而不是“創(chuàng)建”這個(gè)詞。不涉及任何文件。然后您可以使用基于身份的訪問控制(服務(wù)賬戶的 IAM 成員賬戶 ID)來訪問資源。

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
一種解決方案是將您的憑證 JSON(base64 編碼)的內(nèi)容放入服務(wù)器配置界面上的 ENV 變量中,然后我們從 ENV 變量啟動(dòng)服務(wù)器清單文件。
例如:echo $CREDENTIALS | base64 -d > /path/to/cred.json
,那么 export GOOGLE_APPLICATION_CREDENTIALS="*file_json_path"

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以從終端使用“gcloud auth application-default login”來使用最終用戶憑據(jù)進(jìn)行身份驗(yàn)證。
通過身份驗(yàn)證后,您可以使用任何 GCP 資源的默認(rèn)服務(wù)對(duì)象。
- 3 回答
- 0 關(guān)注
- 795 瀏覽
添加回答
舉報(bào)