2014-03-06 40 views
2

我們使用Google Compute Engine實例將轉換數據存儲區表生成爲大型可下載的csv文件。我們希望這種情況下,通過調用來登錄錯誤的應用程序引擎前端實例:我如何檢查一個來自Google Compute Engine實例的appengine實例的api調用?

/api/log

但我們要確保這個調用從具有寫入權限的谷歌Compute Engine執行個體來登錄。我們如何檢查api調用是否來自Google Compute Engine實例?

+0

我知道計劃任務的工作方式是向前端實例發送HTTP請求,這與您想要執行的操作類似。在計劃任務的上下文中,Google App Engine會添加特定的HTTP標頭以允許前端實例識別它來自計劃任務(請參閱https://developers.google.com/appengine/docs/python/配置/ cron的#Python_app_yaml_Securing_URLs_for_cron)。有一點研究,也許你可以設計一個類似的系統?但是,如果您的日誌API不應該公開,爲什麼它可以在前端實例上訪問? – Romain

+0

謝謝羅曼,我會研究它。爲了說明日誌應該可以被登錄用戶訪問,而不是打開的網頁。 –

+0

那麼也許你可以嘗試在'app.yaml'文件中使用'login:admin'來限制對管理員的訪問?請參閱此處:https://developers.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Requiring_login_or_administrator_status。 – Romain

回答

1

這一切都取決於你想要它有多安全。最簡單的解決方案是在你的POST請求中包含一個只有你的後端和前端實例才能識別的參數 - 任何隨機的字符序列都可以實現。下一個級別是使用密鑰來加密請求的內容 - 根據您使用的語言,有很多實現。

如果您決定將後端從App Engine移動到計算引擎,則此方法也更加靈活。

+0

我們正在使用密鑰方法,我只是希望有另一種解決方案易於實現,但更安全。我懷疑谷歌已經有內置的機制,以便實例可以彼此識別自己。 –

+1

Google內部解決方案的問題在於,他們可以隨時更改它 - 更改標題,路由,IP地址等 - 而不會發出警告。 –

+0

公平的警告,但我很沉迷於App Engine的做事方式,迄今爲止他們一直保持穩定,我不打算嘗試遷移。 –

相關問題