我正在尝试运行查询来检查所有Amazon EC2实例。
我使用了演示应用程序模板,它使用我的凭据运行良好,但我不太明白它是如何使用aws密钥和密钥的。
在我的app.config(控制台演示应用)中:
<!-- Amazon AWS API keys. -->
<add key="AWSAccessKey" value="ASDASDASDASD"/>
<add key="AWSSecretKey" value="asdasdf/qwerqwerqwerqwerqwer"/>
<add key="AWSRegion" value="us-east-1" />
运行正常并列出我的实例:
// Print the number of Amazon EC2 instances.
IAmazonEC2 ec2 = AWSClientFactory.CreateAmazonEC2Client();
DescribeInstancesRequest ec2Request = new DescribeInstancesRequest();
DescribeInstancesResponse ec2Response = ec2.DescribeInstances(ec2Request);
var numInstances = ec2Response.Reservations.Count;
注意它是如何不真正访问App.config值的,这是我困惑的根源。
现在在真正的交易应用程序中,我的MVC3应用程序。我正在尝试完全相同的事情,但我收到了这个错误:
You are not authorized to perform this operation.
在我的web.config
:
<appSettings>
<!-- Amazon AWS API keys. -->
<add key="AWSAccessKey" value="asdfasdfasdfasdf"/>
<add key="AWSSecretKey" value="adsfasdfadf/asdfasdfasdfasdf"/>
<add key="AWSRegion" value="us-east-1" />
我在这里缺少什么?
答案 0 :(得分:0)
不是100%确定您的问题是什么,但您是否有可能在EC2实例上运行工作代码,以及您在本地运行的非工作代码?
如果您的EC2实例设置了IAM角色,并且该IAM角色具有所需的权限,则根本不需要提供凭据 - 它们是从实例“继承”的(btw:这也是向sdk提供凭据的推荐方式,因此它们不会在配置文件中浮动。)
http://docs.aws.amazon.com/AWSSdkDocsNET/latest/DeveloperGuide/net-dg-roles.html72
如果那不是正在发生的事情,或许你可能会更清楚一点 - 你在第一个例子中如何知道它没有访问你的凭证?