我有一个RDS实例,它是mysql(VPC中的默认实例,并分配了公共IP地址)。 RDS的公共地址用于我的lambda函数,也可以通过mysql工作台直接访问。
我知道在通过mysql工作台直接访问时,使用安全组来阻止我的自定义IP地址并将其列入白名单。但是,由于IP地址有限,这不允许我的lambda访问RDS。
我之前尝试过将lambda放在一个安全组中,并允许RDS安全组的入站用于lambda安全组。这适用于允许RDS用于lambda功能和直接访问。问题是我的lambda函数由于使用aws-sdk调用其他人的aws资源而失去了Internet连接。也许需要使用NAT网关?
关于以下方面的任何建议: 如何通过仅允许自定义IP地址和lambda函数来保护我的RDS资源?我的lambda函数允许通过API调用其他人的aws资源。
谢谢。
答案 0 :(得分:1)
AWS最近为RDS connect引入了IAM策略。这可以用来授予Lambda的访问权限。
注意:您需要enable IAM authentication来访问数据库。
答案 1 :(得分:1)
您的最佳配置将是:
Lambda-SG
)上的安全组Lambda-SG
的入站连接(按名称,而不是IP地址)仅当未配置为使用VPC或VPC具有可将请求转发到Internet的NAT网关时,Lambda函数才能访问Internet。
为了获得最佳安全性,通常建议您将数据库放在专用子网中。如果希望从Internet连接到它,则可以通过公共子网中的堡垒服务器使用SSH端口转发。但是,我怀疑您很高兴将RDS实例保留在公共子网中。