Skip to content

Instantly share code, notes, and snippets.

@jbcurtin
Created March 17, 2022 16:16
Show Gist options
  • Save jbcurtin/0ef9eeb837b4a031242d79c70c277538 to your computer and use it in GitHub Desktop.
Save jbcurtin/0ef9eeb837b4a031242d79c70c277538 to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/secretsmanager"
)
func main() {
secret_name := "SecretDatabasePassword2"
err := create_secret(secret_name, "value", "My test database secret created with the CLI")
if err != nil {
switch err.Code() {
case secretsmanager.ErrCodeResourceExistsException:
}
}
secret_value, err := get_secret_value(secret_name)
if err != nil {
fmt.Println("Issue with obtaining Secret")
fmt.Println(err)
return
}
fmt.Print("Secret Value: ")
fmt.Println(secret_value)
}
func create_secret(name string, value string, description string) awserr.Error {
sess, err := session.NewSession()
if err != nil {
return err.(awserr.Error)
}
svc := secretsmanager.New(sess)
input := &secretsmanager.CreateSecretInput{
Description: aws.String(description),
Name: aws.String(name),
SecretString: aws.String(value),
}
_, err = svc.CreateSecret(input)
if err != nil {
return err.(awserr.Error)
}
return nil
}
func get_secret_value(name string) (string, awserr.Error) {
sess, err := session.NewSession()
if err != nil {
return "", err.(awserr.Error)
}
svc := secretsmanager.New(sess)
input := &secretsmanager.GetSecretValueInput{
SecretId: aws.String(name),
}
result, err := svc.GetSecretValue(input)
if err != nil {
return "", err.(awserr.Error)
}
return *result.SecretString, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment