【问题标题】:AWS - Are security groups enough or is there a need for private and public subnets?AWS - 安全组是否足够,或者是否需要私有和公共子网?
【发布时间】:2021-08-24 13:39:09
【问题描述】:

假设我有一个 Web 服务器,它是一个 EC2 实例和一个 RDS。

EC2 实例与 RDS 通信。

为了安全,我可以在应用程序负载均衡器后面进行此设置,并使用安全组仅允许通过 ALB 的入站流量。 ALB 将仅通过 HTTPS 与 Internet 通信。

在内部,我可以设置一个仅接受来自 ALB 安全组的传入流量的安全组。我会将此安全组附加到 EC2 实例。然后我可以有另一个安全组,它只允许来自 EC2 实例的传入流量。此安全组将附加到 RDS。

EC2 实例的安全组将允许出于更新、下载包等目的通过 HTTPS 进行出站流量。

根据我对该设置如何工作的(有限)理解,与 RDS 的通信必须严格从 EC2 实例进行,到 EC2 实例的入站通信必须严格从配置为仅接受的 ALB 进行通过 SSL 请求。

在安全性方面,这种设置安全吗?

运行这样的设置有什么风险?

配置私有和公共子集有什么好处(如果有的话),如here 所示?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-security-group aws-application-load-balancer


    【解决方案1】:

    这完全取决于您的风险偏好

    额外的安全层使事情变得更安全,但它们也使事情变得更难使用 - 只需查看机场安全、申请新护照或使用 NAT 网关获取 Internet 访问权限。

    通过将资源放置在私有子网中,有一个额外的安全层。知道私有子网中的资源不会因安全组的错误配置而意外公开(但可以因子网的错误配置而公开!)。

    网络安全人员通过使用公共/私有子网熟悉传统安全方法,并且没有在传统网络中拥有安全组的奢侈。因此,他们使用旧式安全方法现代安全组更“舒适”。

    因此,如果您愿意将资源放在 公共子网 中并使用安全组来限制它们,那么这取决于您。如果您不向私有资源提供公共 IP 地址,则可以进一步保护资源,这将进一步保护它们不被访问。

    至少,将您的数据库设置为Publicly Accessible = No

    【讨论】:

      【解决方案2】:

      以下是我能想到的一些最佳实践 -

      1. 拥有 3 层企业架构,其中 1 个公共子网、1 个私有子网和 1 个用于数据库。只有公有子网有直接互联网连接,其余有 NAT 网关
      2. 不要将您的 RDS (DB) 保留在公共子网中。公开暴露你的数据库是不好的(即使你有 SG)
      3. 实施 ACL 以及 SG 以用于允许和拒绝语句。 ACL 在子网级别运行

      对于企业级,您肯定需要更高的安全性,具体取决于架构

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        • 2019-02-12
        • 2019-06-24
        相关资源
        最近更新 更多