如何在NET Core上的AWS SDK上设置凭据?

我是AWS SDK的新手,我正在尝试遵循AWS 文档 ,但几乎没有提供我需要设置的内容。

官方文档告诉我将其添加到appsettings.json:

{ "AWS": { "Profile": "local-test-profile", "Region": "us-west-2" } } 

然后创建客户端:

 var options = Configuration.GetAWSOptions(); IAmazonS3 client = options.CreateServiceClient(); 

这会导致抛出exception,说它无法找到凭据。 我在哪里放置Api ID和密钥? 这个档案是什么?

请记住,我没有偏好如何设置它。 我只是想遵循.NET Core的官方文档,他们唯一的例子不起作用。 文档似乎暗示我应该事先了解他们的许多术语和设置,或者我正在迁移现有的应用程序并且已经完成了所有设置。

有人可以指点我这个例子中缺少什么只是为了让API正确连接到AWS?

json文件是$“appsettings。{env.EnvironmentName} .json”,因此你应该将其命名为appsettings.Development.json并设置环境变量。

您是否在AWS凭证文件中定义了“local-test-profile”配置文件?

应该在C:\ Users \ {USERNAME} \。aws \ credentials中

 [local-test-profile] aws_access_key_id = your_access_key_id aws_secret_access_key = your_secret_access_key 

如果您不希望它在默认位置,您可以设置’ProfilesLocation’json配置文件。

也许这对你来说太晚了但是如果你使用的是docker或者有其他环境/设置,那么它不可能/易于使用AWS配置文件,那么你仍然可以使用环境变量。 例如:

 var awsOptions = Configuration.GetAWSOptions(); awsOptions.Credentials = new EnvironmentVariablesAWSCredentials(); services.AddDefaultAWSOptions(awsOptions); services.AddAWSService(); 

然后在您的环境中设置AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY和AWS_REGION。

似乎亚马逊在文档中找到了比在需要时更难找到的东西。

在AWS中运行reals是可以的,因为你应该使用一个角色,但如果你使用docker for dev然后在容器中设置一个配置文件就是PITA。

相同的文档还包括用于设置凭据的部分。 请在此处查看http://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-config-creds.html

它没有给出使用appSettings.json文件设置凭据的示例,因为他们认为这不是正确(安全)的方式。

以下是关于设置凭据的部分的介绍部分:

不要在应用程序中放置文字访问键,包括项目的App.config或Web.config文件。 如果这样做,则会产生意外暴露凭据的风险,例如,如果您将项目上载到公共存储库。