部署AWS .NET SDK项目失败

时间:2018-07-17 17:05:25

标签: c# .net amazon-web-services amazon-s3 amazon-iam

我已经在Visual Studio中配置了.NET SDK以使用IAM凭据(这些凭据已加密到app.config中,如下所述:https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-setup.html然后我向S3服务器写了一个调用,以获取预先签名的URL,这样我就可以在.NET桌面应用程序中显示它了。当我从计算机上运行该应用程序(通过VS或通过单击可执行文件)时,图片可以从S3正常加载。当我移动bin文件夹文件(我复制发行版目录到5台客户端计算机)在这些计算机上不起作用!

我已经考虑过尝试运行安装程序(由于缺乏创建安装程序的经验,因此存在一些缺点)。我唯一看到的变化是,如果IAM密钥的加密使用MAC地址,并且安装程序重新请求IAM凭据,那么它将起作用。

我在另一台PC上遇到的错误是:“无法从EC2实例元数据服务检索凭据。”

这些机器位于网络上,其公共IP被白名单化为另一个具有FullS3权限的IAM角色,但是安全密钥所在的组也具有FullS3权限,所以我也认为这没有关系。

我非常乐意回答人们的任何其他问题,因为我真的很想让它继续前进!谢谢!

1 个答案:

答案 0 :(得分:0)

发布后大约45分钟,我发现了这篇文章,阅读了大约3次后,我终于看到了!

“ SDK存储配置文件特定于特定主机上的特定用户。不能将其复制到其他主机或其他用户。因此,SDK存储配置文件不能在生产应用程序中使用。”

和“使用凭证文件 您还可以将配置文件存储在凭证文件中,其他AWS开发工具包,AWS CLI和Windows PowerShell工具可以使用该文件。为了减少意外泄露凭据的风险,凭据文件应与任何项目文件分开存储,通常存储在用户的主文件夹中。请注意,凭据文件中的配置文件以纯文本存储。”

所以答案是我必须提供一个带有凭据的纯文本文件,然后将其简单地放在客户端计算机上我认为是“安全”的位置,然后在app.config文件中指定该位置。