2017-06-12 184 views
2

我正在使用帶有Pubsub觸發器的Google Cloud Function(GCF),該觸發器向第三方API發送HTTP請求。Google Cloud功能:支持Google Cloud KMS

GCF接收來自Pubsub主題的通知,該主題由不應該意識到第三方API的服務使用。

第三方API需要使用基本HTTP身份驗證進行身份驗證。

爲了不必在源代碼中對密碼進行硬編碼,我每次部署函數時都使用Google KMS生成新的加密密鑰。每次實例化函數時,我都使用Google Cloud KMS來解密祕密。

對於使用KMS進行解密,我必須爲NodeJS Google API提供服務帳戶的私鑰。

我今天的主要問題是,如果我希望GCF正常工作,我必須將我的私鑰推送到GCloud Bucket。

可以通過使用Runtime Configurator或Deployment Manager來配置Google Cloud Function的機密嗎?

謝謝你。

+0

我試圖解決同樣的問題。我使用KMS來加密可部署包中的祕密,然後我嘗試在運行時解密祕密,但後來意識到需要從雲功能中明確進行身份驗證 - 據我所知,這意味着您需要擁有至少某些形式的可部署包中未加密的祕密。 –

回答

2

可以通過使用Runtime Configurator或Deployment Manager來配置Google Cloud Function的機密嗎?

目前沒有內置服務可讓您配置Google雲端函數直接訪問的祕密,因此您目前使用的方法是處理雲端函數祕密的正確方法。暫且。隨着產品仍處於測試階段,這可能會發生變化。

如果您希望您可以使用相應的issue tracker向Cloud Function團隊發出功能請求。

1

其他解決這個僅在過去的幾個月裏走了出來,是使用谷歌雲運行時配置與火力地堡的功能: https://firebase.google.com/docs/functions/config-env

火力地堡的功能似乎提供了一些功能是無法訪問但通過其他方式可用。

運行時配置不收費用,但實施下列API限制和配額:

  • 1200查詢每分鐘(QPM)進行刪除,創建和更新請求
  • 600 QPM爲觀看請求。
  • 6000 QPM用於獲取和列出請求。
  • 每個用戶4MB數據,其中包含寫入Runtime配置器服務的所有數據以及隨附的元數據。

https://cloud.google.com/deployment-manager/pricing-and-quotas#runtime_configurator


順便說一句,我發現在火力地堡滑稽這種衝突的功能:

的火力地堡SDK雲功能提供了內置的環境配置使您可以輕鬆地爲您的項目存儲和檢索此類數據,而無需重新部署您的功能。

再晚一會兒:

運行functions:config:set後,必須重新部署功能,使新的配置提供。


的KMS解決方案是一個可行的選擇,但它似乎昂貴的功能。 KMS按每個活動密鑰每月0.06美元計算,以及每萬次操作0.03美元。

然後,這會將您的雲端功能的成本從每百萬次調用0.40美元變爲每百萬次調用3.40美元。這是相當的跳躍。

+0

現在有一個官方庫,用於從運行時API中提取配置。 https://www.npmjs.com/package/@google-cloud/rcloadenv – jqualls