Я разрабатываю приложение 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 г. (