连接不同 AWS 账户中的 AWS Lambda 和 RDS

cpt*_*rkh 5 amazon-web-services amazon-rds aws-lambda

我们为各个部门拥有多个 AWS 账户。我想授予一个账户中的 Lambda 函数访问另一个账户中的 RDS 实例的权限。

如果 Lambda 函数分配给 VPC 并且 RDS 可以公开访问,是否有办法将对 RDS 的访问限制为仅限 Lambda 函数?

如果 RDS 实例是私有的并且 Lambda 函数未分配给 VPC,是否有办法执行此操作?

小智 5

作为最佳实践,您应该始终将数据库保留在私有子网中,没有公共 IP 和访问权限。然后,在您的情况下,假设您的所有 AWS 账户都在一个组织中,您可以通过https://aws.amazon.com/premiumsupport/knowledge-center/vpc-将账户 A 中的 RDS 所在的子网共享给账户 B与另一个帐户共享子网/

然后在账户 B 中,您将 Lambda 配置为位于 A 的共享子网中,并设置 Lambda 函数的安全组,在 RDS 实例安全组中,您只允许来自 Lambda 安全组的连接,然后全部设置。

我可以知道为什么你不想把Lambda放到VPC中吗?如果您担心 VPC 中的 Lambda 冷启动性能问题,请注意 AWS 已在 2019 年末解决了该问题:https://aws.amazon.com/blogs/compute/announcing-improved-vpc-networking-for-aws-lambda -功能/


Joh*_*ein 4

公共 Amazon RDS 数据库

如果 Lambda 函数未分配给 VPC,则它会连接到 Internet。然后它可以连接到公开可用的 RDS 数据库。但是,无法预测 Lambda 函数将使用的 IP 地址。

私有 Amazon RDS 数据库

如果 RDS 数据库仅在 VPC 内可用,则 Lambda 函数需要以某种方式连接到 VPC。由于 Lambda 函数位于不同的 AWS 账户中,您也许可以尝试:

  • VPC 对等互连,使一个账户中的 RDS 数据库可供另一账户中的 Lambda 函数访问
  • 共享 VPC:“在共享 VPC 中,每个参与者为其应用程序资源付费,包括 Amazon EC2 实例、Amazon Relational Database Service 数据库、Amazon Redshift 集群和 AWS Lambda 函数。”

共享VPC看起来对您来说可能是一个不错的选择,因为(看起来)账户 A 中的 AWS Lambda 函数可以放置到与账户 B 中的 Amazon RDS 数据库相同的 VPC 中。

另请参阅:VPC 共享:多帐户和 VPC 管理的新方法 | 网络和内容交付

让我们知道它是否对您有用!