Есть ли способ проверить учетные данные для учетной записи aws, используя aws -sdk- go - PullRequest
0 голосов
/ 15 апреля 2020

Я создаю сеанс с помощью API, предоставленного в aws -sdk- go.

Проблема: Если я предоставлю неверные учетные данные, он также создаст сеанс. Но когда я сделаю какой-нибудь другой вызов API с использованием этого сеанса, это вызовет ошибку.

Есть ли способ проверить учетные данные перед созданием сеанса?

Метод создания сеанса :

var MyCredentials = credentials.NewStaticCredentials (access_key_id, secret_access_key, "")

var sess = session.Must(session.NewSession(&aws.Config{
    Credentials: MyCredentials,
    Region:      aws.String(hostRegion),
    MaxRetries:  aws.Int(3),
}))

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

При создании сеанса API не общается с сервером / службой. Все, что он знает, это то, что у вас есть некоторые ценности, подобные тем, которые я показал. Возможно, самый простой способ подтвердить это - использовать команду S3 HeadBucket для корзины, которая, как вы знаете, существует, так как она о самом низком из накладных вызовов, который я знаю.

HTH,

doug

0 голосов
/ 30 апреля 2020

Что вы подразумеваете под "неправильными учетными данными"? Если учетные данные являются поддельными, каждый вызов не выполняется. Если вы имеете в виду, что у вас разные профили, создайте сеанс, используя профиль, указанный в ~ / .aws / credentials. Например, если в ~ / .aws / credentials есть следующее:

[default]
aws_access_key_id = ...
aws_secret_access_key = ...
[goober]
aws_access_key_id = ...
aws_secret_access_key = ...

, я могу использовать свои учетные данные по умолчанию при создании сеанса с помощью:

sess := session.Must(session.NewSessionWithOptions(session.Options{
    SharedConfigState: session.SharedConfigEnable,
}))

Но если я хочу использовать мой профиль goober (из https://docs.aws.amazon.com/sdk-for-go/api/aws/session/):

sess, err: = session.NewSessionWithOptions (session.Options {Profile: "goober",})

...