Skip to content

Commit 89ee040

Browse files
deps: update to use aws-sdk-go-v2 (#585)
1 parent 659bdd9 commit 89ee040

File tree

3 files changed

+82
-37
lines changed

3 files changed

+82
-37
lines changed

go.mod

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ require (
77
github.com/MonetDB/MonetDB-Go v1.1.0
88
github.com/SAP/go-hdb v0.113.10
99
github.com/aws/aws-lambda-go v1.49.0
10-
github.com/aws/aws-sdk-go v1.55.8
10+
github.com/aws/aws-sdk-go-v2/config v1.31.6
11+
github.com/aws/aws-sdk-go-v2/service/kms v1.45.1
1112
github.com/basgys/goxml2json v1.1.0
1213
github.com/denisenkom/go-mssqldb v0.12.3
1314
github.com/docker/docker v26.1.5+incompatible
@@ -36,12 +37,27 @@ require (
3637
gotest.tools v2.2.0+incompatible
3738
)
3839

40+
require (
41+
github.com/aws/aws-sdk-go-v2/credentials v1.18.10 // indirect
42+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6 // indirect
43+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6 // indirect
44+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6 // indirect
45+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
46+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect
47+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6 // indirect
48+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.1 // indirect
49+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2 // indirect
50+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.2 // indirect
51+
github.com/aws/smithy-go v1.23.0 // indirect
52+
)
53+
3954
require (
4055
dario.cat/mergo v1.0.0 // indirect
4156
filippo.io/edwards25519 v1.1.0 // indirect
4257
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
4358
github.com/Microsoft/go-winio v0.6.2 // indirect
4459
github.com/ProtonMail/go-crypto v1.1.6 // indirect
60+
github.com/aws/aws-sdk-go-v2 v1.38.3
4561
github.com/benbjohnson/clock v1.3.0 // indirect
4662
github.com/bitly/go-simplejson v0.5.0 // indirect
4763
github.com/cloudflare/circl v1.6.1 // indirect
@@ -69,7 +85,6 @@ require (
6985
github.com/hashicorp/go-multierror v1.1.1 // indirect
7086
github.com/itchyny/timefmt-go v0.1.6 // indirect
7187
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
72-
github.com/jmespath/go-jmespath v0.4.0 // indirect
7388
github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect
7489
github.com/kevinburke/ssh_config v1.2.0 // indirect
7590
github.com/kr/fs v0.1.0 // indirect

go.sum

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,34 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd
2424
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
2525
github.com/aws/aws-lambda-go v1.49.0 h1:z4VhTqkFZPM3xpEtTqWqRqsRH4TZBMJqTkRiBPYLqIQ=
2626
github.com/aws/aws-lambda-go v1.49.0/go.mod h1:dpMpZgvWx5vuQJfBt0zqBha60q7Dd7RfgJv23DymV8A=
27-
github.com/aws/aws-sdk-go v1.55.8 h1:JRmEUbU52aJQZ2AjX4q4Wu7t4uZjOu71uyNmaWlUkJQ=
28-
github.com/aws/aws-sdk-go v1.55.8/go.mod h1:ZkViS9AqA6otK+JBBNH2++sx1sgxrPKcSzPPvQkUtXk=
27+
github.com/aws/aws-sdk-go-v2 v1.38.3 h1:B6cV4oxnMs45fql4yRH+/Po/YU+597zgWqvDpYMturk=
28+
github.com/aws/aws-sdk-go-v2 v1.38.3/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY=
29+
github.com/aws/aws-sdk-go-v2/config v1.31.6 h1:a1t8fXY4GT4xjyJExz4knbuoxSCacB5hT/WgtfPyLjo=
30+
github.com/aws/aws-sdk-go-v2/config v1.31.6/go.mod h1:5ByscNi7R+ztvOGzeUaIu49vkMk2soq5NaH5PYe33MQ=
31+
github.com/aws/aws-sdk-go-v2/credentials v1.18.10 h1:xdJnXCouCx8Y0NncgoptztUocIYLKeQxrCgN6x9sdhg=
32+
github.com/aws/aws-sdk-go-v2/credentials v1.18.10/go.mod h1:7tQk08ntj914F/5i9jC4+2HQTAuJirq7m1vZVIhEkWs=
33+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6 h1:wbjnrrMnKew78/juW7I2BtKQwa1qlf6EjQgS69uYY14=
34+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.6/go.mod h1:AtiqqNrDioJXuUgz3+3T0mBWN7Hro2n9wll2zRUc0ww=
35+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6 h1:uF68eJA6+S9iVr9WgX1NaRGyQ/6MdIyc4JNUo6TN1FA=
36+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.6/go.mod h1:qlPeVZCGPiobx8wb1ft0GHT5l+dc6ldnwInDFaMvC7Y=
37+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6 h1:pa1DEC6JoI0zduhZePp3zmhWvk/xxm4NB8Hy/Tlsgos=
38+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.6/go.mod h1:gxEjPebnhWGJoaDdtDkA0JX46VRg1wcTHYe63OfX5pE=
39+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo=
40+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
41+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM=
42+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8=
43+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6 h1:LHS1YAIJXJ4K9zS+1d/xa9JAA9sL2QyXIQCQFQW/X08=
44+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.6/go.mod h1:c9PCiTEuh0wQID5/KqA32J+HAgZxN9tOGXKCiYJjTZI=
45+
github.com/aws/aws-sdk-go-v2/service/kms v1.45.1 h1:NhkI4kfcZYmcIM34a+q9drh3aMG1BthkyziOr7sRTv4=
46+
github.com/aws/aws-sdk-go-v2/service/kms v1.45.1/go.mod h1:elyXIFqx79eHvd0cRAzYDYHajeoJEygkBjJto4HJddc=
47+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.1 h1:8OLZnVJPvjnrxEwHFg9hVUof/P4sibH+Ea4KKuqAGSg=
48+
github.com/aws/aws-sdk-go-v2/service/sso v1.29.1/go.mod h1:27M3BpVi0C02UiQh1w9nsBEit6pLhlaH3NHna6WUbDE=
49+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2 h1:gKWSTnqudpo8dAxqBqZnDoDWCiEh/40FziUjr/mo6uA=
50+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.34.2/go.mod h1:x7+rkNmRoEN1U13A6JE2fXne9EWyJy54o3n6d4mGaXQ=
51+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.2 h1:YZPjhyaGzhDQEvsffDEcpycq49nl7fiGcfJTIo8BszI=
52+
github.com/aws/aws-sdk-go-v2/service/sts v1.38.2/go.mod h1:2dIN8qhQfv37BdUYGgEC8Q3tteM3zFxTI1MLO2O3J3c=
53+
github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE=
54+
github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
2955
github.com/basgys/goxml2json v1.1.0 h1:4ln5i4rseYfXNd86lGEB+Vi652IsIXIvggKM/BhUKVw=
3056
github.com/basgys/goxml2json v1.1.0/go.mod h1:wH7a5Np/Q4QoECFIU8zTQlZwZkrilY0itPfecMw41Dw=
3157
github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
@@ -118,10 +144,6 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i
118144
github.com/jeremywohl/flatten v1.0.1 h1:LrsxmB3hfwJuE+ptGOijix1PIfOoKLJ3Uee/mzbgtrs=
119145
github.com/jeremywohl/flatten v1.0.1/go.mod h1:4AmD/VxjWcI5SRB0n6szE2A6s2fsNHDLO0nAlMHgfLQ=
120146
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
121-
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
122-
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
123-
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
124-
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
125147
github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4=
126148
github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak=
127149
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
@@ -220,8 +242,6 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P
220242
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
221243
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
222244
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
223-
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
224-
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
225245
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
226246
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
227247
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=

internal/config/secrets.go

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,22 @@
66
package config
77

88
import (
9+
"context"
910
"crypto/tls"
1011
"crypto/x509"
1112
"encoding/base64"
1213
"encoding/hex"
1314
"encoding/json"
1415
"fmt"
15-
"io/ioutil"
16+
"io"
1617
"net/http"
18+
"os"
1719
"regexp"
1820
"strings"
1921

20-
"github.com/aws/aws-sdk-go/aws"
21-
"github.com/aws/aws-sdk-go/aws/session"
22-
"github.com/aws/aws-sdk-go/service/kms"
22+
"github.com/aws/aws-sdk-go-v2/aws"
23+
"github.com/aws/aws-sdk-go-v2/config"
24+
"github.com/aws/aws-sdk-go-v2/service/kms"
2325
"github.com/sirupsen/logrus"
2426
"gopkg.in/yaml.v2"
2527

@@ -192,7 +194,7 @@ func awskmsDecrypt(name string, secret load.Secret) string {
192194

193195
if secret.File != "" {
194196
var fileData []byte
195-
fileData, err := ioutil.ReadFile(secret.File)
197+
fileData, err := os.ReadFile(secret.File)
196198
if err == nil {
197199
secretData, err = base64.StdEncoding.DecodeString(string(fileData))
198200
if err != nil {
@@ -240,43 +242,51 @@ func awskmsDecrypt(name string, secret load.Secret) string {
240242
}
241243

242244
if len(secretData) > 0 {
243-
var sess *session.Session
245+
ctx := context.TODO()
244246

245-
sharedConfigFiles := []string{}
246-
if secret.CredentialFile != "" {
247-
sharedConfigFiles = append(sharedConfigFiles, secret.CredentialFile)
248-
}
249-
if secret.ConfigFile != "" {
250-
sharedConfigFiles = append(sharedConfigFiles, secret.ConfigFile)
251-
}
252-
253-
if len(sharedConfigFiles) > 0 {
247+
var cfg aws.Config
248+
var err error
254249

250+
if secret.CredentialFile != "" || secret.ConfigFile != "" {
255251
load.Logrus.WithFields(logrus.Fields{
256252
"name": name,
257253
}).Debug("config: aws kms decrypt using custom credentials and/or config")
258254

259-
sess = session.Must(session.NewSessionWithOptions(session.Options{
260-
SharedConfigState: session.SharedConfigEnable,
261-
SharedConfigFiles: sharedConfigFiles,
262-
}))
255+
var configLoadOptions []func(*config.LoadOptions) error
256+
257+
if secret.CredentialFile != "" {
258+
configLoadOptions = append(configLoadOptions, config.WithSharedCredentialsFiles([]string{secret.CredentialFile}))
259+
}
260+
if secret.ConfigFile != "" {
261+
configLoadOptions = append(configLoadOptions, config.WithSharedConfigFiles([]string{secret.ConfigFile}))
262+
}
263+
264+
cfg, err = config.LoadDefaultConfig(ctx, configLoadOptions...)
263265
} else {
264266
load.Logrus.WithFields(logrus.Fields{
265267
"name": name,
266268
}).Debug("config: aws kms decrypt using default credentials")
267-
sess = session.Must(session.NewSession(&aws.Config{
268-
Region: aws.String(secret.Region),
269-
}))
269+
270+
cfg, err = config.LoadDefaultConfig(ctx, config.WithRegion(secret.Region))
270271
}
271272

272-
kmsClient := kms.New(sess)
273+
if err != nil {
274+
load.Logrus.WithFields(logrus.Fields{
275+
"name": name,
276+
"err": err,
277+
}).Error("config: aws config load failed")
278+
return ""
279+
}
280+
281+
kmsClient := kms.NewFromConfig(cfg)
273282
params := &kms.DecryptInput{
274283
CiphertextBlob: secretData,
275284
}
276-
resp, err := kmsClient.Decrypt(params)
285+
resp, err := kmsClient.Decrypt(ctx, params)
277286
if err != nil {
278287
load.Logrus.WithFields(logrus.Fields{
279288
"name": name,
289+
"err": err,
280290
}).Error("config: aws kms decrypt secret failed")
281291
return ""
282292
}
@@ -325,7 +335,7 @@ func httpWrapper(secret load.Secret) ([]byte, error) {
325335

326336
if secret.HTTP.TLSConfig.Ca != "" {
327337
rootCAs := x509.NewCertPool()
328-
ca, err := ioutil.ReadFile(secret.HTTP.TLSConfig.Ca)
338+
ca, err := os.ReadFile(secret.HTTP.TLSConfig.Ca)
329339
if err != nil {
330340
load.Logrus.WithError(err).Error("config: secret failed to read tls ca")
331341
} else {
@@ -355,7 +365,7 @@ func httpWrapper(secret load.Secret) ([]byte, error) {
355365
}
356366
defer resp.Body.Close()
357367

358-
bytes, err := ioutil.ReadAll(resp.Body)
368+
bytes, err := io.ReadAll(resp.Body)
359369
if err != nil {
360370
return nil, err
361371
}
@@ -373,7 +383,7 @@ func localDecrypt(name string, secret load.Secret) string {
373383

374384
if secret.File != "" {
375385
var fileData []byte
376-
fileData, err := ioutil.ReadFile(secret.File)
386+
fileData, err := os.ReadFile(secret.File)
377387
if err == nil {
378388
secretData, err = hex.DecodeString(string(fileData))
379389
if err != nil {

0 commit comments

Comments
 (0)