首页 > 解决方案 > aws secret manager 访问索引

问题描述

我正在尝试从 aws secret manager 键值对中检索并将它们传递给我的 azure SQL Server。关于 aws secret manager 我正在使用这个模块。

module "secrets-manager" {
  source  = "lgallard/secrets-manager/aws"
  version = "0.4.1"
  secrets = [
    {
      name = "secretKeyValue"
      description = "Secret Key value pair"
      secret_key_value = {
        username = "username"
        password = "password"
      }
    }
  ]
}

然后我创建了一个 azurerm SQL Server 并想传递用户名和密码。我尝试的是以下代码。

resource "azurerm_sql_server" "sql-server-testing" {
  administrator_login = module.secrets-manager.secret_ids[0]
  administrator_login_password = module.secrets-manager.secret_ids[0]
  location = "westeurope"
  name = "sql-name"
  resource_group_name = azurerm_resource_group.azure-secrets.name
  version = "12.0"
}

我能够访问秘密管理器,但它只访问了亚马逊 arn 资源,我找不到如何将秘密用户名和密码传递给我的 SQL Server 的方法。

非常感谢您提供的任何帮助

标签: amazon-web-servicesazure-devopsterraform

解决方案


1- 通过aws secrets manager 数据资源检索有关 Secrets Manager 密钥的元数据信息

data "aws_secretsmanager_secret" "secrets" {
  arn = module.secrets-manager.secret_ids[0]
}

data "aws_secretsmanager_secret_version" "current" {
  secret_id = data.aws_secretsmanager_secret.secrets.id
}

2-检索该秘密中的特定值(在 sql 代码部分中)

administrator_login = jsondecode(data.aws_secretsmanager_secret_version.current.secret_string)["username"]
administrator_login_password = jsondecode(data.aws_secretsmanager_secret_version.current.secret_string)["password"]

推荐阅读