Search code examples
amazon-web-servicesterraformterraform-provider-awsaws-secrets-manager

terraform aws_secretsmanager_secret_version set base64encode(file("./src/secret.json")) as the value


I am trying to setup a key value secret in AWS Secrets Manager with terraform. Now I would like to replace the string "AzureDiamond" with a base64 encoded json object. Can you help me how I could replace the mentioned string with the value returned by this base64encode(file("./src/secret.json"))

resource "aws_secretsmanager_secret_version" "testtools" {
    secret_id     = aws_secretsmanager_secret.testtools.id
    secret_string = "{\"config\":\"AzureDiamond\"}"
}

Solution

  • I think the easiest way is to use filebase64 with jsonencode:

    resource "aws_secretsmanager_secret_version" "testtools" {
        secret_id     = aws_secretsmanager_secret.testtools.id
        secret_string = jsonencode({config = filebase64("./src/secret.json")})
    }