Skip to content
Snippets Groups Projects

Resolve "Change S3 upload to presign using IAM user"

1 file
+ 16
0
Compare changes
  • Side-by-side
  • Inline
+ 16
0
@@ -2,6 +2,7 @@ package secrets_manager
import (
"encoding/base64"
credentials2 "github.com/aws/aws-sdk-go/aws/credentials"
"os"
"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/logs"
@@ -24,6 +25,11 @@ type DatabaseCredentials struct {
ReadOnlyHost string `json:"aurora_read_only_host"`
}
type S3UploadCredentials struct {
AccessKeyID string `json:"accessKeyID"`
SecretAccessKey string `json:"secretAccessKey"`
}
var (
secretCache, _ = secretcache.New()
secretManagerRegion = "af-south-1"
@@ -39,6 +45,16 @@ func GetDatabaseCredentials(secretID string, isDebug bool) (DatabaseCredentials,
return credentials, nil
}
func GetS3UploadCredentials(secretID string, isDebug bool) (*credentials2.Credentials, error) {
secret, _ := GetSecret(secretID, isDebug)
var credentials S3UploadCredentials
err := struct_utils.UnmarshalJSON([]byte(secret), &credentials)
if err != nil {
return nil, err
}
return credentials2.NewStaticCredentials(credentials.AccessKeyID, credentials.SecretAccessKey, ""), nil
}
func GetSecret(secretID string, isDebug bool) (string, string) {
cachedSecret, err := secretCache.GetSecretString(secretID)
if err != nil {
Loading