Как получить GetSessionToken из AmazonSecurityTokenServiceClient, созданный с временными учетными данными saml? - PullRequest
0 голосов
/ 21 марта 2019

Вот что я пытаюсь сделать -

var role = new AmazonSecurityTokenServiceClient(aws_access_key_id, aws_secret_access_key, aws_session_token, Amazon.RegionEndpoint.USWest2);

role.AssumeRole(new AssumeRoleRequest
{
    DurationSeconds = 3600,
    RoleArn = rolearn,
    RoleSessionName = sessionname
});

GetSessionTokenResponse sessionTokenResponse = role.GetSessionToken(new GetSessionTokenRequest
{
    DurationSeconds = 7200
});

Теперь моя «роль» создается с временными учетными данными, полученными с помощью saml.И похоже, что поскольку GetSessionToken предоставляет вам временные учетные данные, ему необходимо создать «роль» с долгосрочными учетными данными.Я не могу найти обходной путь для этого.

По сути, я пытаюсь создать AmazonS3Client с предполагаемой ролью IAM, которая имеет определенные разрешения.Вот что я планирую сделать, если мне удастся получить GetSessionToken-

var newcreds = sessionTokenResponse.Credentials;
var sessionCredentials = new SessionAWSCredentials(newcreds.AccessKeyId, newcreds.SecretAccessKey, newcreds.SessionToken);
AmazonS3Client newclient = new AmazonS3Client(sessionCredentials, Amazon.RegionEndpoint.USWest2);

1 Ответ

0 голосов
/ 28 марта 2019

Невозможно вызвать GetSessionToken с использованием учетных данных, возвращаемых AssumeRoleWithSAML. От AWS doc :

Временные учетные данные безопасности, созданные AssumeRoleWithSAML, могут использоваться для выполнения вызовов API для любого сервиса AWS со следующими исключение: вы не можете вызвать GetFederationToken службы STS или Операции API GetSessionToken.

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