如何向Java AWS Lambda函數提供數據庫憑證等配置參數?如何在Amazon Lambda中提供配置參數(如數據庫憑證)?
我應該簡單地將它們存儲在屬性文件中並從jar中加載它們嗎?如果是這樣,我如何區分開發和運行時配置?
如何向Java AWS Lambda函數提供數據庫憑證等配置參數?如何在Amazon Lambda中提供配置參數(如數據庫憑證)?
我應該簡單地將它們存儲在屬性文件中並從jar中加載它們嗎?如果是這樣,我如何區分開發和運行時配置?
根據您嘗試訪問的系統以及您需要保留憑據的安全性,有幾個選項可用。
要做的最重要的事情是,如果您在Lambda函數中需要AWS憑據,那麼您應該使用AWS角色。這意味着您不需要對憑證進行硬編碼,只需使用AWS客戶端庫進行調用即可使用。
如果您需要提取其他機密或配置,可以將它們存儲在DynamoDB或S3中。您將使用AWS角色授予訪問權限以讀取此信息。如果安全性非常重要,您可以使用KMS加密這些信息,以增加安全性。如果您正在讀取來自S3或DynamoDB的數據,我會建議您將其緩存一段適當的時間(Lambda函數的生命週期是一個不錯的選擇,因爲實例的壽命通常不會超過15分鐘),以避免不必要的請求到DynamoDB或S3。
說到區分它所處環境的代碼,我假設您正在討論單獨的Lambda函數。爲此,您可以將環境分配烘焙到您構建的工件中,或者您可以讓代碼查看Lambda函數的名稱以確定它所處的環境。