AWS.Net API-提供的令牌已过期



我正面临这种奇怪的情况。我通过运行带有saml命令的假设角色来生成我的AWS AccessKeyId、SecretAccessKey和SessionToken。在将这些值复制到.aws\credentials文件后,我尝试运行命令"aws s3ls";并且可以看到所有S3桶。类似地,我可以运行任何AWS命令来查看对象,它运行得非常好。然而,当我写作的时候。Net Core应用程序来列出对象,它在我的计算机上不起作用。相同的网络应用程序可以在其他同事的电脑上找到。我们都可以通过相同的角色访问AWS。IAM控制台中没有用户。这是示例代码,但我不确定代码是否有问题,因为它在其他用户的计算机上运行良好。

var _ssmClient = new AmazonSimpleSystemsManagementClient();
var r = _ssmClient.GetParameterAsync(new Amazon.SimpleSystemsManagement.Model.GetParameterRequest
{
Name = "/KEY1/KEY2",
WithDecryption = true
}).ConfigureAwait(false).GetAwaiter().GetResult();

知道为什么通过CLI运行命令有效而API调用无效吗?他们不是都在看同一个%USERPROFILE%.aws\credentials文件吗?

我找到了。在这里发布,因为它对有同样问题的人很有用。转到此文件夹:%USERPROFILE%\AppData\Local\AWSToolkit
备份所有文件和文件夹,并从上面的位置删除所有文件。

此解决方案仅适用于您可以运行诸如";aws s3ls";并且成功地得到了结果,但是你得到了错误";所提供的令牌已过期";同时从运行相同的。Net API库。

最新更新