0

在我的詹金斯建設工作我使用這個命令來承擔AWS角色:AWS PowerShell中使用-STSRole:請求中包含的安全令牌是無效的

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

,我發現了以下錯誤:

Use-STSRole : The security token included in the request is invalid.

將AWS角色更改爲無效角色不會更改錯誤消息。

當登錄到服務器並直接使用Powershell中的命令時,它工作正常。

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 

回答

0

這似乎與在存儲在AWS不正確的憑據型材

如果我使用AWS CLI命令也適用。

這些地方使用Get-AWSCredentials上市:

Get-AWSCredentials -ListStoredCredentials 

然後清除使用Remove-AWSCredentialProfile

Remove-AWSCredentialProfile -ProfileName {MyProfileName} 

如果使用的是舊版本的AWS PowerShell的工具,你可以用Clear-AWSCredentials代替:

Clear-AWSCredentials -ProfileName <String> 
相關問題