// A Second way of doing it, using a built-in StaticCredentialsProvider import ( "context" "os" "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/credentials" "github.com/aws/aws-sdk-go-v2/service/s3" ) func S3Client() (*s3.Client, error) { accessKey, ok := os.LookupEnv("OTHER_AWS_ACCESS_KEY_ID") if !ok { panic("Missing OTHER_AWS_ACCESS_KEY_ID") } secretKey, ok := os.LookupEnv("OTHER_AWS_SECRET_ACCESS_KEY") if !ok { panic("Missing OTHER_AWS_ACCESS_KEY_ID") } config, err := config.LoadDefaultConfig(context.TODO(), config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(accessKey, secretKey, "")), config.WithRegion("us-east-1"), ) if err != nil { return nil, err } client := s3.NewFromConfig(config) return client, nil }