遍历数据源以获取秘密列表 arn
iterate over data source for a list of secrets arn
我在 aws 中有一些手动创建的 secert。有没有办法用 data "aws_secretsmanager_secret"
?
列出它们
我的目标是获得 list/index 个 ARN,然后在 daymnic 块中使用它。我想尝试避免写入多个数据源块。
所有 sercerts 都有相似的命名前缀:
db-credentials/${var.env-name}/<db-user>
<db-user>
当然会因用户而异。
所以我想我正在寻找对属于这种命名模式的所有秘密的数据源进行迭代,并获得他们的 ARN 列表。之后使用每个 ARN 独立一个 daymnic 块
daynic 块将在 auth 块resource "aws_db_proxy"
中使用
如果有人觉得这有用,我设法做到了:
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"
}
}
}
我在 aws 中有一些手动创建的 secert。有没有办法用 data "aws_secretsmanager_secret"
?
我的目标是获得 list/index 个 ARN,然后在 daymnic 块中使用它。我想尝试避免写入多个数据源块。
所有 sercerts 都有相似的命名前缀:
db-credentials/${var.env-name}/<db-user>
<db-user>
当然会因用户而异。
所以我想我正在寻找对属于这种命名模式的所有秘密的数据源进行迭代,并获得他们的 ARN 列表。之后使用每个 ARN 独立一个 daymnic 块
daynic 块将在 auth 块resource "aws_db_proxy"
中使用
如果有人觉得这有用,我设法做到了:
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"
}
}
}