Skip to content

Commit 31da74e

Browse files
committed
add aws v2
1 parent 52039b4 commit 31da74e

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed

coderd/database/awsrdsiam/driver.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
11
package awsrdsiam
22

33
import (
4+
"context"
45
"database/sql"
56
"database/sql/driver"
67
"fmt"
78
"net/url"
89

9-
"github.com/aws/aws-sdk-go/aws/session"
10-
"github.com/aws/aws-sdk-go/service/rds/rdsutils"
10+
"github.com/aws/aws-sdk-go-v2/aws"
11+
"github.com/aws/aws-sdk-go-v2/config"
12+
"github.com/aws/aws-sdk-go-v2/feature/rds/auth"
1113
"golang.org/x/xerrors"
1214
)
1315

1416
type awsRdsIamDriver struct {
1517
parent driver.Driver
16-
sess *session.Session
18+
cfg aws.Config
1719
}
1820

1921
var _ driver.Driver = &awsRdsIamDriver{}
2022

2123
// Register initializes and registers our aws rds iam wrapped database driver.
22-
func Register(parentName string) (string, error) {
23-
sess, err := session.NewSession()
24+
func Register(ctx context.Context, parentName string) (string, error) {
25+
cfg, err := config.LoadDefaultConfig(ctx)
2426
if err != nil {
25-
return "", xerrors.Errorf("creating aws session: %w", err)
27+
return "", err
2628
}
2729

2830
db, err := sql.Open(parentName, "")
@@ -31,25 +33,25 @@ func Register(parentName string) (string, error) {
3133
}
3234

3335
// create a new aws rds iam driver
34-
d := newDriver(db.Driver(), sess)
36+
d := newDriver(db.Driver(), cfg)
3537
name := fmt.Sprintf("%s-awsrdsiam", parentName)
3638
sql.Register(fmt.Sprintf("%s-awsrdsiam", parentName), d)
3739

3840
return name, nil
3941
}
4042

4143
// newDriver will create a new *AwsRdsIamDriver using the environment aws session.
42-
func newDriver(parentDriver driver.Driver, sess *session.Session) *awsRdsIamDriver {
44+
func newDriver(parentDriver driver.Driver, cfg aws.Config) *awsRdsIamDriver {
4345
return &awsRdsIamDriver{
4446
parent: parentDriver,
45-
sess: sess,
47+
cfg: cfg,
4648
}
4749
}
4850

4951
// Open creates a new connection to the database using the provided name.
5052
func (d *awsRdsIamDriver) Open(name string) (driver.Conn, error) {
5153
// set password with signed aws authentication token for the rds instance
52-
nURL, err := getAuthenticatedURL(d.sess, name)
54+
nURL, err := getAuthenticatedURL(d.cfg, name)
5355
if err != nil {
5456
return nil, xerrors.Errorf("assigning authentication token to url: %w", err)
5557
}
@@ -63,15 +65,15 @@ func (d *awsRdsIamDriver) Open(name string) (driver.Conn, error) {
6365
return conn, nil
6466
}
6567

66-
func getAuthenticatedURL(sess *session.Session, dbURL string) (string, error) {
68+
func getAuthenticatedURL(cfg aws.Config, dbURL string) (string, error) {
6769
nURL, err := url.Parse(dbURL)
6870
if err != nil {
6971
return "", xerrors.Errorf("parsing dbURL: %w", err)
7072
}
7173

7274
// generate a new rds session auth tokenized URL
7375
rdsEndpoint := fmt.Sprintf("%s:%s", nURL.Hostname(), nURL.Port())
74-
token, err := rdsutils.BuildAuthToken(rdsEndpoint, *sess.Config.Region, nURL.User.Username(), sess.Config.Credentials)
76+
token, err := auth.BuildAuthToken(context.Background(), rdsEndpoint, cfg.Region, nURL.User.Username(), cfg.Credentials)
7577
if err != nil {
7678
return "", xerrors.Errorf("building rds auth token: %w", err)
7779
}

go.mod

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ require (
8282
github.com/andybalholm/brotli v1.1.0
8383
github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2
8484
github.com/awalterschulze/gographviz v2.0.3+incompatible
85-
github.com/aws/smithy-go v1.20.0
85+
github.com/aws/smithy-go v1.20.1
8686
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816
8787
github.com/bramvdbogaerde/go-scp v1.3.0
8888
github.com/briandowns/spinner v1.18.1
@@ -248,10 +248,11 @@ require (
248248
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
249249
github.com/armon/go-radix v1.0.1-0.20221118154546-54df44f2176c // indirect
250250
github.com/aws/aws-sdk-go v1.50.36
251-
github.com/aws/aws-sdk-go-v2 v1.24.1 // indirect
251+
github.com/aws/aws-sdk-go-v2 v1.25.3 // indirect
252252
github.com/aws/aws-sdk-go-v2/config v1.26.1 // indirect
253253
github.com/aws/aws-sdk-go-v2/credentials v1.16.12 // indirect
254254
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 // indirect
255+
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.4.3
255256
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect
256257
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect
257258
github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect

go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,16 @@ github.com/aws/aws-sdk-go v1.50.36 h1:PjWXHwZPuTLMR1NIb8nEjLucZBMzmf84TLoLbD8BZq
9696
github.com/aws/aws-sdk-go v1.50.36/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
9797
github.com/aws/aws-sdk-go-v2 v1.24.1 h1:xAojnj+ktS95YZlDf0zxWBkbFtymPeDP+rvUQIH3uAU=
9898
github.com/aws/aws-sdk-go-v2 v1.24.1/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4=
99+
github.com/aws/aws-sdk-go-v2 v1.25.3 h1:xYiLpZTQs1mzvz5PaI6uR0Wh57ippuEthxS4iK5v0n0=
100+
github.com/aws/aws-sdk-go-v2 v1.25.3/go.mod h1:35hUlJVYd+M++iLI3ALmVwMOyRYMmRqUXpTtRGW+K9I=
99101
github.com/aws/aws-sdk-go-v2/config v1.26.1 h1:z6DqMxclFGL3Zfo+4Q0rLnAZ6yVkzCRxhRMsiRQnD1o=
100102
github.com/aws/aws-sdk-go-v2/config v1.26.1/go.mod h1:ZB+CuKHRbb5v5F0oJtGdhFTelmrxd4iWO1lf0rQwSAg=
101103
github.com/aws/aws-sdk-go-v2/credentials v1.16.12 h1:v/WgB8NxprNvr5inKIiVVrXPuuTegM+K8nncFkr1usU=
102104
github.com/aws/aws-sdk-go-v2/credentials v1.16.12/go.mod h1:X21k0FjEJe+/pauud82HYiQbEr9jRKY3kXEIQ4hXeTQ=
103105
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10 h1:w98BT5w+ao1/r5sUuiH6JkVzjowOKeOJRHERyy1vh58=
104106
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.10/go.mod h1:K2WGI7vUvkIv1HoNbfBA1bvIZ+9kL3YVmWxeKuLQsiw=
107+
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.4.3 h1:mfxA6HX/mla8BrjVHdVD0G49+0Z+xKel//NCPBk0qbo=
108+
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.4.3/go.mod h1:PjvlBlYNNXPrMAGarXrnV+UYv1T9XyTT2Ono41NQjq8=
105109
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 h1:vF+Zgd9s+H4vOXd5BMaPWykta2a6Ih0AKLq/X6NYKn4=
106110
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10/go.mod h1:6BkRjejp/GR4411UGqkX8+wFMbFbqsUIimfK4XjOKR4=
107111
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 h1:nYPe006ktcqUji8S2mqXf9c/7NdiKriOwMvWQHgYztw=
@@ -122,6 +126,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.26.5 h1:5UYvv8JUvllZsRnfrcMQ+hJ9jNIC
122126
github.com/aws/aws-sdk-go-v2/service/sts v1.26.5/go.mod h1:XX5gh4CB7wAs4KhcF46G6C8a2i7eupU19dcAAE+EydU=
123127
github.com/aws/smithy-go v1.20.0 h1:6+kZsCXZwKxZS9RfISnPc4EXlHoyAkm2hPuM8X2BrrQ=
124128
github.com/aws/smithy-go v1.20.0/go.mod h1:uo5RKksAl4PzhqaAbjd4rLgFoq5koTsQKYuGe7dklGc=
129+
github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw=
130+
github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
125131
github.com/aymanbagabas/go-osc52 v1.0.3/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4=
126132
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
127133
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=

0 commit comments

Comments
 (0)