用于集群间通信的 AWS Elasticache 安全组

用于集群间通信的 AWS Elasticache 安全组

我实际上没有设置来测试这个,但是如果我创建一个有超过 1 个节点的 elasticache redis 集群,安全组究竟应该是什么样子才能非常安全但又不会破坏集群本身?

假设我创建了一个安全组,允许从其自身和端口 6379 上的 kubernetes 节点进入,并允许所有从其自身和 kubernetes 出去。

例如这样:

resource "aws_security_group" "tools_elasticache_default" {
  name        = "tools-elasticache-default"
  description = "Allow traffic from tools cluster to elasticache instance"
  vpc_id      = module.tools_cluster.vpc_id

  ingress {
    description = "Incomming redis traffic"
    from_port   = 6379
    to_port     = 6379
    protocol    = "tcp"
    self        = "true"
    security_groups = [for x in module.tools_cluster.node_security_groups : x.id ]
  }

  egress {
    description = "Outgoing redis traffic"
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    self        = "true"
    security_groups = [for x in module.tools_cluster.node_security_groups : x.id ]
  }

  tags = merge(var.tags, {
    "shared" = "true"
  })
}

这会破坏我的 elasticache 集群吗?因为它是 ec2,安全组是基于每个实例的。由于我没有明确指定 redis 集群通信端口,如所述这里

据我了解,集群应该被破坏,因为一个 redis 节点可以通过端口 3333 传出到另一个节点,但他的请求会因为另一个集群参与者缺少的入口规则而被丢弃。

或者 AWS 是否隐式管理这些规则并确保始终允许集群间通信的端口?

任何帮助都将不胜感激。谢谢!

答案1

或者 AWS 是否隐式管理这些规则并确保始终允许集群内通信的端口?

是的。

相关内容