aws 秘密管理器访问索引

时间:2021-04-02 11:52:50

标签: amazon-web-services azure-devops terraform

我正在尝试从 aws 秘密管理器键值对中检索并将它们传递给我的 azure SQL Server。关于 aws 秘密管理器,我正在使用此模块。

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"
}

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

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

1 个答案:

答案 0 :(得分:4)

1- 通过 aws secrets manager data resource

检索有关 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"]