AWS PowerShell使用-STSRole:请求中包含的安全令牌无效

时间:2017-04-03 22:51:22

标签: powershell amazon-web-services jenkins amazon-iam aws-powershell

在我的Jenkins构建工作中,我使用此命令承担AWS角色:

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

我收到以下错误:

  

使用-STSRole:请求中包含的安全令牌无效。

将AWS角色更改为无效角色不会更改错误消息。

登录服务器并直接在Powershell中使用命令时,它可以正常工作。

如果我使用AWS CLI命令,它也可以使用:

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

1 个答案:

答案 0 :(得分:2)

似乎配置文件的凭据不正确,存储在AWS中。

这些使用Get-AWSCredentials列出的地方:

Get-AWSCredentials -ListStoredCredentials

然后使用Remove-AWSCredentialProfile清除:

Remove-AWSCredentialProfile -ProfileName {MyProfileName}

如果使用旧版本的AWS Powershell Tools,则可以改为使用Clear-AWSCredentials

Clear-AWSCredentials -ProfileName <String>