- 某些地区不会进行身份验证,其他人会这样做?
我一直使用AWS,我一直在使用eu-west-1
以及我编写的验证过的c#代码。总是有意使用多个区域,所以regionURL(s)是一个配置选项;字面上是一个字符串列表。到目前为止,这个名单已经有1年了。- 某些地区不会进行身份验证,其他人会这样做?
应用工作的一般方式是:一个循环,枚举中配置的网址中,它会创建一个客户端,并期待与未运行特定名称模式,一个实例,然后启动它。只有eu-west-1
配置,以便创建客户端时,它只会使用regionURL,在该地区
列举仅停止情况到现在为止有我最近开始加入EC2实例到另一个区域eu-central-1
所以我已经添加了eu-central-1
配置的区域基址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关闭亚马逊的帮助文档中,wes
牛逼网址是因为它一直是)?
我升级了AWS SDK从1.5到3.3的版本,改变各种类的名称,以反映重大更改到AWS命名空间的架构,但保留所有相同的逻辑。
我也从配置指定区域的URL交换,以地区名称的配置,因为该地区的网址似乎使用静态调用RegionEndpoint.GetBySystemName("eu-west-1")
时,这些是唯一的变化被内置到SDK本身,并全部开始自动工作;该API密钥仍然指定n只有web配置,还是该SDK发现他们有自己,因为我不在我的代码中使用它们的假设下操作..
较新区域使用不同形式的身份验证(Sig v4),这是由最近的SDK支持的。使用最新版本的库总是一个好主意,因为AWS的变化速度很快! –
谢谢约翰;这似乎很可能是答案 –
嗯。 IAM是少数全球性的AWS服务之一 - 所以我不知道这个问题会给你带来什么。 – Henry