1

我在aws中有一些手动创建的secerts。有没有办法列出它们data "aws_secretsmanager_secret"

我的目标是获取 ARN 的列表/索引,然后在 daymnic 块中使用它。我想尽量避免编写多个数据源块。

所有的 sercert 都有一个相似的命名前缀:

db-credentials/${var.env-name}/<db-user>

当然,从用户到用户的<db-user>变化。因此,我想我希望使用数据源对所有属于此命名模式的秘密进行迭代,并获取其 ARN 列表。之后使用每个 ARN 独立一个 daymnic 块

daynic 块将resource "aws_db_proxy"在 auth 块内部使用

4

1 回答 1

1

如果有人会发现这很有用,我可以这样做:

locals {
       secrets_list = [
       "db-credentials/${var.env-name}/user1",
       "db-credentials/${var.env-name}/user2",
       "db-credentials/${var.env-name}/user3"
  ]
}

data "aws_secretsmanager_secret" "rds_secrets" {
  for_each = toset(local.secrets_list)
  name = each.key
}

resource "aws_db_proxy" "rds_db_proxy" {
  name = "${var.env-name}-rds-proxy"
  engine_family = "MYSQL"
  idle_client_timeout = 900
  require_tls = true
   .
   .
   .
   .

  dynamic "auth" {
    for_each = local.secrets_list
    content {
      secret_arn  =  data.aws_secretsmanager_secret.rds_secrets[auth.value].arn
      auth_scheme = "SECRETS"
      iam_auth    = "REQUIRED"
    }
  }
}
于 2021-07-07T10:25:14.983 回答