ECS Fargate 服务发现

ECS Fargate service discovery

我正在使用 AWS ECS Fargate,我目前正在使用服务发现来允许我的任务相互通信。我有一个问题,我的任务只有在我将这个安全组放在它们上面时才能通信

resource "aws_security_group" "ecs_config_service" {
  name        = "staging-ecs-config-service"
  description = "We need this so our services can communicate"
  vpc_id      = module.vpc.vpc_id

  ingress {
    from_port = 0
    to_port   = 0
    protocol  = "-1"
    cidr_blocks = [
      "0.0.0.0/0"
    ]
  }
}

如果我删除此安全组并仅允许来自我的负载均衡器的流量,则容器将无法通信。这感觉有点安全风险,允许来自任何地方的流量,但我不确定我还能如何让我的任务进行通信。

我的 ECS 集群位于我的 VPC 的私有子网中。

我的设置是否遗漏了什么?

您应该尝试将安全组列入白名单,而不是将 IP 地址列入白名单。例如,如果您在 ECS 中有两个单独的服务 运行,您可以将安全组 A 分配给第一个服务,将安全组 B 分配给第二个服务,并在安全组 A 中创建一个允许从安全组进入的规则B.


或者,您至少可以将 IP 范围限制为您的 VPC 的 CIDR 块,这样 VPC 之外的任何人都无法访问您的服务。