【发布时间】:2017-07-05 18:53:22
【问题描述】:
我一直在使用 AWS,我一直在使用 eu-west-1,并且我编写的 c# 代码验证得很好。总是打算使用多个区域,因此 regionURL(s) 是一个配置选项;字面上的字符串列表。到现在为止,这个列表已经 1 长了。
应用程序的一般工作方式是:在枚举配置的 URL 的循环中,它创建一个客户端并查找具有特定名称模式但未运行的实例,然后启动它。到目前为止,只配置了eu-west-1,因此它只会在创建客户端时使用该 regionURL,仅枚举该区域中停止的实例
我最近开始将 EC2 实例添加到另一个区域 eu-central-1,因此我已将 eu-central-1 区域基本 URL 添加到配置中。我知道迭代配置的循环正常工作(我附加了一个调试器并检查了字符串中的尾随字符等 - 一切看起来都很好),这些是配置的区域 URL:
https://eu-west-1.ec2.amazonaws.com
https://ec2.eu-central-1.amazonaws.com
每当应用程序枚举区域 URL 时,它首先获取 eu-west-1 并且工作正常,但是当循环到达 eu-central-1 时,对 .DescribeInstances(...) 的调用会失败:
AWS 无法验证提供的访问凭证
客户端的创建方式没有任何实际区别;这实际上与刚刚为eu-west-1 工作的代码完全相同。我没有做任何特别的努力来为代码中的任何内容提供凭据。 web.config 只有AWSAccessKey 和AWSSecretKey 的键值对。我一直认为 AWS SDK 通过作为应用程序的 dll 部分来隐式访问它们..
我必须在控制台中执行什么操作才能为区域启用凭据吗?区域 URL 以不同的顺序显示这一事实是否重要(我从亚马逊帮助文档中获得了 central URL,west url 一如既往)?
【问题讨论】:
-
嗯。 IAM 是为数不多的全球性 AWS 服务之一 - 所以我不知道你会遇到什么问题。
标签: amazon-web-services amazon-ec2 aws-sdk