Golang AWS SDK и RDS Proxy IAM Auth

Я разрабатываю приложение Go с помощью AWS SDK v2 for Go. Я хочу подключиться к моей базе данных RDS через прокси-сервер RDS, используя роль IAM для аутентификации. В документах SDK я нашел примеры того, как это сделать в SDK v1, однако с SDK v1 у меня возникла проблема с принятием правильной роли IAM в моем модуле AWS EKS (переменные среды AWS_ROLE_ARN и AWS_WEB_IDENTITY_TOKEN_FILE). По этому поводу возникла нерешенная проблема (https://github.com/aws/aws-sdk-go/issues/3101#issuecomment-604739840), однако с приведенным ниже кодом я все еще не могу заставить его работать с SDK v1 (AWS предполагает Worker Node Роль IAM вместо роли Pod из env vars):

sess, sessErr := session.NewSessionWithOptions(
    session.Options{
        Config: aws.Config{
            Region: aws.String(os.Getenv("DB_REGION")),
        },
        SharedConfigState: session.SharedConfigEnable,
    },
)
...

client := rds.New(sess)
pass, errToken := rdsutils.BuildAuthToken(host, os.Getenv("AWS_REGION"), user, client.Config.Credentials)

Вместо этого я решил попробовать SDK v2, но обнаружил, что и rdsutils, и BuildAuthToken были удалены из SDK 25 сентября 2020 г. (

person szymon    schedule 09.03.2021    source источник


Ответы (1)


Я понял, что в SDK v2 for Go не хватает этой функции, и открыл проблему на Github.

https://github.com/aws/aws-sdk-go-v2/issues/1169

person szymon    schedule 16.03.2021