我正在嘗試編寫一個Lambda函數,它將取決於某些AWS數據存儲(DynamoDB/Redshift/RDS)中存儲的數據。我曾希望這種授權可以由IAM來處理,也就是說,如果我在授權讀取數據存儲的角色下運行Lambda函數,我不需要提供訪問的憑證詳細信息。使用AWS角色授權Lambda查詢AWS數據存儲
但是,this code(它是「Configuring a Lambda Function to Access Resources in an Amazon VPC」示例的一部分)仍然需要用戶名和密碼。
是否可以使用IAM角色授權Lambda查詢AWS數據存儲?
確定 - 這聽起來像任何非Dynamo系統都需要在代碼本身中包含用戶名/密碼(或一些配置文件以及代碼)。有趣的 - 這不是一個安全問題嗎? 理想情況下,我們會使用Elasticache,因爲有問題的數據變化緩慢,並且立即一致性不是一個大問題。也就是說,我(有趣地)聽說Elasticache非常昂貴,這也是一個問題。 – scubbo
這樣看,如果你給你的EC2服務器一個允許訪問數據庫的IAM角色,那麼任何訪問EC2服務器的人都可以訪問你的數據庫。如何比在服務器上存儲數據庫用戶名/密碼憑證更安全?並且請注意,我不建議將這些憑據存儲在您的代碼中,因爲這確實是一個安全問題。如果您真的關心此問題,請考慮使用AWS KMS服務來存儲您的憑證。 –
另外,我會跳過軼事的信息,並直接去源。 https://aws.amazon.com/elasticache/pricing/ ElastiCache可能比手動在EC2服務器上運行Redis更貴一些,但它可爲您處理大量管理任務。而且它肯定比在RDS上運行RDBMS要便宜。如果價格是一個問題,您也可能想要查看RedisLabs,但ElastiCache通常會更安全,因爲它完全在您的VPC中運行。 –