【问题标题】:Unable to get IAM security credentials for AWS S3无法获取 AWS S3 的 IAM 安全凭证
【发布时间】:2020-06-04 14:48:11
【问题描述】:

这个错误快把我逼疯了,lambda web api 也有同样的问题,但是上传后就可以了,所以现在就可以了

然而,这个项目将是一个 NuGet 包,我需要能够简单地将文件上传到 S3

我使用以下代码:“https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileDotNet.html

我试图在本地运行,但无法从 EC2 实例元数据服务获取 IAM 安全凭证。”错误

在visual studio中,我可以看到AWS Explorer,我可以从这里创建一个存储桶......所以我有我的用户设置......但是当我在本地运行时......没有用户???

我知道它会在某处出现单行缺失值:(

【问题讨论】:

  • 您是如何为 AWS Explorer 设置用户的?可以分享一下相关代码吗?
  • 该错误消息与 SDK 尝试用来查找凭据的一长串凭据提供程序中的最后一个有关。这意味着 SDK 在其支持列表中的任何位置都找不到凭据。如果您在 Mac/Linux 上本地运行,则凭据通常位于 ~/.aws/credentials
  • 在 AWS Explorer 中我添加了一个新配置文件,这会将用户添加到凭证文件中。我可以看到该配置文件确实存在于该文件中:(
  • 发现了问题,需要创建一个“默认”配置文件...无法在文档中看到任何地方这样说 :( 将很快写一个答案并提供更多详细信息

标签: c# amazon-web-services amazon-s3


【解决方案1】:

感谢@Geeshan 的回答,它给了我一些寻找方向

但是,我已经设置了凭据文件,但我的问题的答案是您还需要设置一个名为“default”的配置文件

另外,现在知道您不需要匹配的“默认”IAM 用户。

在 AWS IAM 用户页面上,您可以照常创建用户,无需创建默认用户。在 Visual Studio 中,当您创建新配置文件时,如果您的配置文件被命名为“默认”,并且您为您的一个 IAM 用户输入密钥和密钥,运行您的应用程序将使用该用户(我想念这个配置文件名称,并假设它需要匹配您的 IAM 用户,所以最初我创建了一个“默认”IAM 用户。我现在知道,不需要)

如果您不想使用默认值,您可以通过在应用程序代码中使用“TryGetProfile 和 TryGetAWSCredentials(见下文)来选择用户(见下文)

【讨论】:

    【解决方案2】:

    这是由于您的本地计算机中缺少凭据。设置 AWS Explorer 不会提供运行代码的凭证。

    设置凭据的一种方法是使用C:\users\awsuser\.aws\credentials 中的凭据文件(假设您使用的是 Windows)。
    以下是凭证文件中的配置文件示例。

    [default]
    aws_access_key_id = {accessKey}
    aws_secret_access_key = {secretKey}
    

    Here 您可以阅读更多关于管理 .Net 凭据的信息

    【讨论】:

    • 谢谢,但是没有用 : (,我的凭证确实存在于这个位置,设置了密钥和访问密钥,我刚刚创建了一个新的 IAM 用户,然后向 Visual Studio 添加了一个新的配置文件AWS Explorer,在这样做时,我可以在凭证文件中看到这个新用户......我点击运行,但仍然得到相同的错误:(我的代码如何知道使用新配置文件?我是否缺少其他一些配置值某处?还是仅基于哪个配置文件处于活动状态?(我也阅读了您的链接,有帮助,有道理,但仍然无法正常工作
    • 我为我的个人资料名称尝试了这些“TryGetAWSCredentials TryGetProfile”,它们返回了我的个人资料的详细信息,我不知道为什么这不起作用:(
    • 发现了问题...我需要创建一个“默认”配置文件,它可以工作,或者如果使用不同的配置文件,我需要在代码中使用“TryGetAWSCredentials”并将 awsCredentials 设置为我需要的个人资料。我将很快创建一个包含更多详细信息的答案,理想情况下希望使用 Visual Studio 用户正在使用的配置文件,否则所有开发人员都将使用默认配置文件,而无需创建 IAM 配置文件
    • 我误解了 VS AWS Explorer 中的配置文件名称...我认为这必须与您的一个 IAM 用户以及密钥相匹配。我不需要创建“默认”IAM 用户帐户,我只需要使用我的 IAM 用户的密钥,并将 Visual Studio 配置文件名称设置为“默认”......现在一切都有意义了!感谢您为我指明正确的方向!
    猜你喜欢
    • 1970-01-01
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2017-05-24
    • 2021-01-19
    相关资源
    最近更新 更多