如果我们使用默认 VPC 和安全组将公开访问设置为“否”,为啥 EC2 实例无法访问 RDS 实例?

Posted

技术标签:

【中文标题】如果我们使用默认 VPC 和安全组将公开访问设置为“否”,为啥 EC2 实例无法访问 RDS 实例?【英文标题】:Why the EC2 instance is not able to access the RDS instance, if we set publicly access to 'No' with default VPC and Security group?如果我们使用默认 VPC 和安全组将公开访问设置为“否”,为什么 EC2 实例无法访问 RDS 实例? 【发布时间】:2015-05-03 07:04:47 【问题描述】:

如果我们将公开访问设置为“否”,则无法从 EC2 实例访问 RDS 实例。据我了解,EC2 实例应该可以在网络内访问,并且应该在网络外被阻止。

【问题讨论】:

【参考方案1】:

将您的数据库实例设置为“公共”只是允许它可能可以从外部访问。将其设置为 no 并不意味着您的 VPC 中的所有内容都可以访问它。

您仍然需要允许从您的 EC2/Beanstalk 实例访问此数据库实例。编辑数据库的安全组时,打开正确的端口(mysql 为 3306,postgres 为 5432 等)并授予对您的 EC2/beanstalk 实例所在的安全组的访问权限。

换句话说,您不需要(或不想)通过 IP 地址打开对数据库的访问。请改用安全组。

【讨论】:

以上是关于如果我们使用默认 VPC 和安全组将公开访问设置为“否”,为啥 EC2 实例无法访问 RDS 实例?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Lambda 无法访问同一 VPC 中的 EC2 端口

aws 创建基于vpc的elasticsearch service

限制通过VPC网络访问Google Cloud Firestore。

如何从私有 AWS ALB 公开 API 端点

youtube为啥查看不了别人头像

我已经在弹性 beantalk 上部署了一个 API,并且可以在其 VPC 中访问它,我如何使它可以公开访问?