gpt4 book ai didi

amazon-web-services - 使用 AWS 网络 ACL 与 SG 进行访问控制?

转载 作者:行者123 更新时间:2023-12-01 21:15:27 26 4
gpt4 key购买 nike

我有一个在 AWS 上运行的 Ubuntu EC2 实例。我一直使用网络 ACL 来控制对端口 22 的访问,而不是使用安全组。

问题 1:对于单个 EC2 实例的用例,使用 NACL 与 SG 进行访问控制有何优缺点? (除了有状态与无状态以及 AWS VPC 安全文档中的其他差异。)

问题 2:大型环境如何处理这个问题?有最佳实践吗? (我知道一家大公司的 NACL 完全开放,并通过 SG 控制一切。)

我尝试找到答案的第一件事就是阅读 AWS 的 VPC 安全文档:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html

我在我的用例中看到了几种访问控制方法:

选项 1:将 NACL 入口限制为端口 80、443,并将临时端口限制为 0.0.0.0/0。为每个 IP 地址添加端口 22 访问。拒绝所有其他流量。 (这是我一直在做的事情。)如果我想要一个私有(private)子网实例,我会通过 SG 将私有(private)子网限制为公共(public)子网的内部 CIDR。

选项2:向全世界开放NACL,并使用SG对EC2实例进行访问控制。

选项 3:冗余并同时使用。

当我转到新位置(咖啡店)并想要通过 SSH 连接到我的实例时,我登录到 AWS 控制台并添加新的 NACL 规则以允许 IP 地址端口 22 访问。向 NACL 和 SG 添加规则似乎只需单击鼠标并键入相同的次数。

关于实际环境创建,我使用terraform。使用任一选项设置资源都非常容易,因此我不认为这是优点还是缺点。

NACL 资源:

  ingress {
protocol = 6
rule_no = 300
action = "allow"
cidr_block = "0.0.0.0/0"
from_port = 80
to_port = 80
}

新加坡资源:

ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}

我认为 NACL 的唯一大优势是,如果有多个公共(public) SG,则通过控制台手动处理,可以更轻松地将 NACL 中的 IP 地址列入黑名单。

最佳答案

访问控制和保护 VPC 是一个大主题,AWS 建议您针对不同场景使用许多最佳实践(例如 Bastion Hosts )

对于从咖啡店计算机访问公共(public)子网中的单个 EC2 的简单情况,您需要更改安全组以允许从咖啡店 IP 进行 SSH。

使用控制台,一般步骤是:

  1. 在 VPC 仪表板 -> 安全 -> 安全组 -> 蓝色按钮下:创建安全组。将其命名为 Coffee SG,对其进行描述并选择适当的 VPC 将其关联,然后单击“创建”。
  2. 创建 SG 后,单击底部的入站规则选项卡,然后单击“编辑规则”按钮
  3. 对于类型,选择 SSH
  4. 如果您使用的是咖啡店计算机,请选择“我的 IP”作为来源。浏览器会自动将电脑IP填入表格。要允许任何 IP,您可以使用 0.0.0.0/0(不推荐)来允许一个范围,使用 CIDR。
  5. 点击“保存规则”。
  6. 启动 ec2 实例时,为您的安全组选择 Coffee SG

如果您的 EC2 已在运行,请转到安全组并从上面的步骤 2 开始。有关更多详细信息,请参阅 AWS 指南:

This guide提供您需要针对 Linux 实例采取的步骤。 This guide提供您需要针对 Windows 实例采取的步骤。

关于amazon-web-services - 使用 AWS 网络 ACL 与 SG 进行访问控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56264000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com