Skip to content

Instantly share code, notes, and snippets.

@tkellen
Created April 30, 2024 12:35
Show Gist options
  • Save tkellen/6926db90dfa1365cf90aa3e7f5d7e76a to your computer and use it in GitHub Desktop.
Save tkellen/6926db90dfa1365cf90aa3e7f5d7e76a to your computer and use it in GitHub Desktop.
fetch secret from oci vault
package main
import (
"context"
"encoding/base64"
"log"
"os"
"github.com/oracle/oci-go-sdk/v65/common"
"github.com/oracle/oci-go-sdk/v65/secrets"
)
func main() {
vaultId := os.Getenv("OCI_VAULT_ID")
if vaultId == "" {
log.Fatal("env OCI_VAULT_ID must be specified.")
}
secretName := os.Getenv("OCI_SECRET_NAME")
if secretName == "" {
log.Fatal("env OCI_SECRET_NAME must be specified.")
}
client, err := secrets.NewSecretsClientWithConfigurationProvider(
common.DefaultConfigProvider(),
)
if err != nil {
log.Fatalf("Unable to auth to OCI: %v", err)
}
resp, err := client.GetSecretBundleByName(context.Background(), secrets.GetSecretBundleByNameRequest{
SecretName: common.String(secretName),
VaultId: common.String(vaultId),
})
if err != nil {
log.Fatalf("Failed to get secret: %v", err)
}
secret, ok := resp.SecretBundleContent.(secrets.Base64SecretBundleContentDetails)
if !ok {
log.Fatalf("Failed to unpack secret: %v", err)
}
value, err := base64.StdEncoding.DecodeString(*secret.Content)
if err != nil {
log.Fatal("error:", err)
}
log.Printf("%s=%s", secretName, value)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment