【问题标题】:iterate over data source for a list of secrets arn遍历数据源以获取机密列表 arn
【发布时间】:2021-09-17 20:50:49
【问题描述】:

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

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

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

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

&lt;db-user&gt; 当然会因用户而异。 因此,我想我希望使用数据源对所有属于此命名模式的秘密进行迭代,并获取其 ARN 列表。之后使用每个 ARN 独立一个 daymnic 块

daynic 块将在 auth 块中的 resource "aws_db_proxy" 内使用

【问题讨论】:

    标签: amazon-web-services terraform datasource aws-secrets-manager amazon-rds-proxy


    【解决方案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"
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-02-10
      • 2022-01-04
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      相关资源
      最近更新 更多