Есть ли способ получить временные учетные данные на основе ролей с помощью AWS C ++ SDK? - PullRequest
0 голосов
/ 28 февраля 2020

ProfileConfigFileAWSCredentialsProvider, используемый в DefaultAWSCredentialsProviderChain, просто игнорирует роли в ~/.aws/config и ~/.aws/credentials. STSProfileCredentialsProvider выглядит так, как будто он предназначен для этого, но 1) он не используется в DefaultAWSCredentialsProviderChain, поэтому вы должны явно использовать его, и 2) он читает только config. # 2 означает, что, например, если в вашем профиле на основе ролей указан исходный профиль, а учетные данные исходного профиля находятся в credentials, то STSProfileCredentialsProvider не сможет найти учетные данные исходного профиля и не сможет получить временную роль учетные данные.

1 Ответ

1 голос
/ 01 марта 2020

Это на самом деле вызвано проблемой в AWS C ++ SDK, где конфигурации с предполагаемыми ролями игнорируются DefaultCredentialsProviderChain: https://github.com/aws/aws-sdk-cpp/issues/150 Однако нам нужно найти обходной путь, как это было обещано быть исправлено «невероятно скоро» в 2016 году и до сих пор не исправлено, фактически проблема сейчас закрыта.

РЕДАКТИРОВАТЬ: здесь есть еще одна проблема https://github.com/aws/aws-sdk-cpp/issues/1330

Похоже, ваш единственный вариант - найти активный профиль самостоятельно, используя что-то вроде Aws :: Config :: GetCachedConfigProfile (Aws :: Auth :: GetConfigProfileName ()), а затем использовать GetRoleArn () / GetSourceProfile () и Позвоните в службу STS самостоятельно с учетными данными из исходного профиля.

Пожалуйста, дайте мне знать, если вы найдете лучшее решение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...