amazon-web-services - 如何防止 terraform 询问在 AWS Secrets Manager 上设置的变量的值?

标签 amazon-web-services terraform terraform-provider-aws aws-secrets-manager

我有以下 HCL 代码,它从 terraform plan 上的终端询问并读取 secret_api_key 变量,并将其保存在 secret 管理器中。

variable "secret_api_key" {
  type        = string
  sensitive   = true
}

resource "aws_secretsmanager_secret" "secret_api_key" {
  name = "secret_api_key"
}

resource "aws_secretsmanager_secret_version" "secret_api_key" {
  secret_id     = aws_secretsmanager_secret.secret_api_key.id
  secret_string = var.secret_api_key
}

在另一种配置中, secret 的读取方式如下:

data "aws_secretsmanager_secret" "secret_api_key" {
  name       = "secret_api_key"
  depends_on = [aws_secretsmanager_secret.secret_api_key]
}

data "aws_secretsmanager_secret_version" "secret_api_key" {
  secret_id = data.aws_secretsmanager_secret.secret_api_key.id
}

resource "aws_lambda_function" "s3_to_service" {
  ...
  environment {
    variables = {
      SECRET_ARN = data.aws_secretsmanager_secret_version.secret_api_key.arn
    }
  }
}

如何强制 terraform 在每次计划时询问我 API key ?它需要在我第一次这样做时询问我,将其存储在 secret 管理器中。但在那之后,那就是多余的了。我怎样才能避免这种情况?

最佳答案

不完全是。

要么每次都手动提供一个值,要么不提供,但每次您想要评估 Terraform 配置时,Terraform 变量都需要以某种形状、方式或形式指定的值,无论是由您还是默认情况下指定的值。

如果您计划/应用 aws_secretsmanager_secret,则无法手动提供值,除非您硬编码值或指定默认值。

Terraform 的工作原理是计算状态差异 - 它需要知道您的预期状态(以及您的变量值),然后将其与实际状态进行比较。

我建议您在想要创建/更新 secret 时计划/应用 secret 的 Terraform 配置,并将 secret 的创建与 secret 的使用分开。

然后,您可以使用 data.aws_secretsmanager_secret.secret_api_key 来访问它。

关于amazon-web-services - 如何防止 terraform 询问在 AWS Secrets Manager 上设置的变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69795024/

相关文章:

amazon-web-services - 是否有一种简单的方法可以为 ALB 重命名 AWS 目标组?

azure - 使用 Terraform 在 Azure 上为 ServiceBus 创建 azurerm_monitor_metric_alert 时出错

amazon-web-services - 无法生成 id 和 arn

amazon-web-services - 如何使用 terraform 将来自不同区域 (us-east1) 的 ACM 证书附加到另一个区域中的应用程序负载均衡器

amazon-web-services - 具有自定义授权和 Rest API 的 AWS 无服务器模板配置

amazon-web-services - Hadoop对云延迟的影响

将 http 重定向到 https AWS ELB 而无需在网络服务器上托管 ssl 证书

digital-ocean - 是否可以为不同的资源重用 Terraform 模板,为变量提供不同的值?

kubernetes - 从 terraform 运行 kubernetes build

amazon-web-services - 有条件地创建 aws_security_group_rule 并在 terraform 中添加计数