我正在尝试编写Lambda函数,该函数将依赖于存储在某些AWS数据存储区(DynamoDB / Redshift / RDS)中的数据。我曾希望IAM可以处理此授权 - 即如果我在授权读取数据存储的角色下运行Lambda函数,我就不需要提供访问的凭据详细信息。
但是,this code(这是“Configuring a Lambda Function to Access Resources in an Amazon VPC”上的示例的一部分)仍然需要用户名和密码。
是否可以使用IAM角色授权Lambda查询AWS数据存储区?
答案 0 :(得分:1)
这完全取决于您决定使用哪个数据存储区。 DynamoDB访问由IAM控制,因为它是专有的亚马逊服务。 RDS数据库和ElastiCache都使用您在创建RDS服务器或ElastiCache群集时选择的数据库引擎的授权方案,我相信在所有情况下都是某种形式的用户名/密码。此外,Aurora使用登录名和密码,就像MySQL一样,因为它与MySQL兼容,Redshift使用登录/密码就像PostgreSQL一样,因为它与PostgreSQL兼容。
我强烈建议您根据实际数据存储要求选择数据存储。如果需要关系OLTP数据库,则选择RDS;如果需要OLAP数据库,则选择Redshift;如果需要Redis或Memcached缓存,则选择ElastiCache,使用mLab / MongoDB等第三方或自我管理的NoSQL数据库,或者如果使用NoSQL数据库则使用DynamoDB将起作用,DynamoDB可满足您的需求。