AWS PowerShell Use-STSRole: токен безопасности, включенный в запрос, недействителен.

В своей работе по сборке Jenkins я использую эту команду, чтобы взять на себя роль AWS:

$Creds = (Use-STSRole -Region us-east-1 -RoleArn arn:aws:iam::$IAM_ACCOUNT_ID`:role/$IAM_ROLE -RoleSessionName jenkins).Credentials

Я получаю следующую ошибку:

Use-STSRole: токен безопасности, включенный в запрос, недействителен.

Изменение роли AWS на недопустимую не приводит к изменению сообщения об ошибке.

Он отлично работает при входе на сервер и непосредственном использовании команды в Powershell.

Это также работает, если я использую команду CLI AWS:

aws sts assume-role --role-arn arn:aws:iam::%IAM_ACCOUNT_ID%:role/%IAM_ROLE% --role-session-name jenkins-deploy

Полное сообщение об ошибке:

Use-STSRole : The security token included in the request is invalid.
At C:\Users\svc-jenkins.WIN-KLBFC355P8D\AppData\Local\Temp\jenkins4822311255190032778.ps1:5 char:11
+ $Creds = (Use-STSRole -Region us-east-1 -RoleArn arn:aws:iam::$e ...
+           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...seSTSRoleCmdlet:UseSTSRoleCmdlet) [Use-STSRole], InvalidOperationException
    + FullyQualifiedErrorId : Amazon.SecurityToken.AmazonSecurityTokenServiceException,Amazon.PowerShell.Cmdlets.STS.UseSTSRoleCmdlet

person Nicholas    schedule 03.04.2017    source источник


Ответы (1)


Похоже, профили с неправильными учетными данными хранятся в AWS.

Они перечислены с использованием Get-AWSCredentials:

Get-AWSCredentials -ListStoredCredentials

Затем очищено с помощью Remove-AWSCredentialProfile:

Remove-AWSCredentialProfile -ProfileName {MyProfileName}

Если вы используете старую версию AWS Powershell Tools, вы можете использовать Вместо этого Clear-AWSCredentials:

Clear-AWSCredentials -ProfileName <String>
person Nicholas    schedule 03.04.2017