【问题标题】:Authentication failure for eu-central-1 (Frankfurt) AWSeu-central-1(法兰克福)AWS 的身份验证失败
【发布时间】:2014-12-23 15:21:12
【问题描述】:

我正在使用 AWS Ruby v2 sdk 预发行版。为 eu-west-1 顺利运行的 EC2 和 S3 服务的脚本不适用于 eu-central-1。我收到以下异常:

AWS was not able to validate the provided access credentials (Aws::EC2::Errors::AuthFailure)

经过简短的查询,我发现这是因为 eu-central-1 仅支持 Signature Version 4。没关系。按照建议,我在config.yml 中添加了s3_signature_version: v4。然后我开始得到一个新的异常:

/usr/local/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.0.3/lib/seahorse/client/configuration.rb:160:in `rescue in block in apply_options': invalid configuration option `:s3_signature_version' (ArgumentError)

所以现在我有 2 个问题。

  • s3_signature_version: v4 中的config.yml 有什么问题?
  • 还有什么类似的 Ec2 签名版本 4 配置需要添加?

【问题讨论】:

  • config.yml 在旧版 AWS 开发工具包中使用。您正在使用的是 aws-sdk-core,它是较新的。您需要为 aws-sdk-core 找到类似的选项。
  • @slayedbylucifer 特定文件名重要吗?我正在使用通用方法从文件中检索配置。到目前为止,我没有看到不同文件名的任何影响。 aws-config.yml 是我的真实文件。 config_file = File.join(File.dirname(__FILE__),"aws-config.yml")\n Aws.config = YAML.load(File.read(config_file)).inject({}) { |h,(k,v)| h.merge(k.to_sym => v) }
  • 检查一下:github.com/aws/aws-sdk-core-ruby/tree/master/aws-sdk-core/spec/… 似乎他们已将此功能添加到 aws-sdk-ruby。您能否尝试安装/更新最新版本的 aws-sdk-core gem,然后尝试。它可能支持开箱即用的签名 V4。

标签: ruby amazon-web-services amazon-ec2


【解决方案1】:

如果您更新到版本 2.0.5 的 aws-sdk-core,那么它将默认为签名版本 4。要强制旧版本的 aws-sdk-core 使用 sigv4,请将 signature_version: 'v4' 传递给您的客户端构造函数.

【讨论】:

  • 如何在ubuntu上更新aws-sdk-core的版本?请告诉我。
猜你喜欢
  • 1970-01-01
  • 2017-01-03
  • 2020-11-09
  • 2020-07-03
  • 1970-01-01
  • 2017-08-19
  • 2020-12-31
  • 1970-01-01
  • 2014-01-24
相关资源
最近更新 更多