0

我使用 terraform 创建了一个带有 redis 的弹性缓存实例。这是我使用的代码:

resource "aws_security_group" "main" {
  name        = "redis-security-group"
  description = "Controls access to the redis instance"
  vpc_id      = var.vpc_id

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

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

resource "aws_elasticache_subnet_group" "main" {
  name       = "db-subnet-group"
  subnet_ids = var.public_subnets_ids
}

resource "aws_elasticache_cluster" "main" {
  cluster_id               = "redis-cluster"
  subnet_group_name        = aws_elasticache_subnet_group.main.name
  security_group_ids       = [aws_security_group.main.id]
  engine                   = "redis"
  node_type                = "cache.t3.small"
  num_cache_nodes          = 1
  parameter_group_name     = "default.redis6.x"
  snapshot_retention_limit = 0
  engine_version           = "6.x"
  port                     = 6379
}

如您所见,我没有定义任何类型的密码(我没有在文档中看到该选项)。如果我尝试从正确配置的 EC2 实例进行连接(您无法从外部 aws 访问 redis 弹性缓存),我可以在不指定用户/密码的情况下完美连接。

当我的网络服务器尝试连接到它时,问题就出现了,因为我没有指定密码。我收到以下错误:

redis.exceptions.ResponseError: AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct?

没有密码的连接字符串适用于redis-cli,但不适用于 python 中的 redis。所以,我想知道以下几点:

  • 有没有办法通过 terraform/bash 脚本在我的 redis 实例中设置密码?这样我就可以从我的 python web 服务器正常使用它。
  • 有没有办法将 python redis 设置为不需要密码?
4

0 回答 0