亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

安全地設置 GOOGLE_APPLICATION_CREDENTIALS

安全地設置 GOOGLE_APPLICATION_CREDENTIALS

PHP
達令說 2021-10-22 14:43:37
我正在嘗試以安全的方式使用 Google 云服務。我目前正在通過 putenv('GOOGLE_APPLICATION_CREDENTIALS= path to JSON file ');提供我的憑據;請參閱 https://cloud.google.com/docs/authentication/production我想通過將我的代碼放在共享主機/虛擬 Linux 服務器上來公開測試。但是,如果我將 JSON 文件的權限設置為安全,則無法訪問它們。如果我公開,我需要包含的 JSON 文件有一個純文本的私鑰。我已經進行了一個小時的搜索,但找不到我應該如何安全地提供憑據。我應該將文件放在我的服務器上的安全位置嗎?生產網站是否有替代方法來將公共 URL 傳遞給 putenv?
查看完整描述

3 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

你的問題沒有簡單的答案。

第 1 部分 - 您的主機不在 Google Cloud 上

你的主機安全嗎?如果是,則可以將服務帳戶 JSON 密鑰放在無法從面向公眾的應用程序訪問的目錄中。這里我的意思是不要將文件放在與您的網絡服務器相同的目錄中。使用一個位置/config,然后加強該目錄的安全性,以便只有授權用戶和您的應用程序才能讀取該文件。

確定憑據文件的安全文件位置后,請直接在代碼中指定該服務帳戶。不要使用環境變量或命令行開關。不要使用GOOGLE_APPLICATION_CREDENTIALS. 有些評論是使用KMS。使用 KMS 是一個好主意,但您面臨著先有雞還是先有蛋的情況。您需要憑據才能使用 KMS 解密。如果不法分子可以訪問您的加密憑據,他們還可以訪問您的源代碼,或對應用程序進行逆向工程,以查看解密方法和用于解密的服務帳戶。

注意:為憑證文件指定靜態位置不是 DevOps 的最佳實踐。您的問題是關于安全性而不是 CI/CD。您正在使用共享服務器,這可能意味著很多事情,并且 DevOps 可能沒有集成到您的部署或系統設計中。

如果您的主機不安全,那么您就沒有可行的選擇。您無能為力,無法阻止“熟練”工程師逆轉您的“遮蔽”方法。

第 2 部分 - 您的主機在 Google Cloud 上(Compute Engine、Cloud Run、App Engine 等)

注意:以下技術處于測試階段。這是谷歌云授權的未來,它是身份基礎訪問控制,以補充基于角色的訪問控制,并在某些情況下取代它。

您可以為主機分配一個具有零權限的服務帳戶。注意“分配”而不是“創建”這個詞。不涉及任何文件。然后您可以使用基于身份的訪問控制(服務賬戶的 IAM 成員賬戶 ID)來訪問資源。


查看完整回答
反對 回復 2021-10-22
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

一種解決方案是將您的憑證 JSON(base64 編碼)的內容放入服務器配置界面上的 ENV 變量中,然后我們從 ENV 變量啟動服務器清單文件。

例如:echo $CREDENTIALS | base64 -d > /path/to/cred.json,那么 export GOOGLE_APPLICATION_CREDENTIALS="*file_json_path"


查看完整回答
反對 回復 2021-10-22
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

您可以從終端使用“gcloud auth application-default login”來使用最終用戶憑據進行身份驗證。

通過身份驗證后,您可以使用任何 GCP 資源的默認服務對象。


查看完整回答
反對 回復 2021-10-22
  • 3 回答
  • 0 關注
  • 815 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號