使用错误凭据的ruby AWS SDK

时间:2015-04-22 13:58:48

标签: ruby amazon-ec2 amazon-iam aws-sdk

我对AWS SDK有轻微问题。

我在EC2框上使用AWS SDK来提取我需要的有关我们服务的数据。

我通过密钥和ID密钥传递凭据但是当它尝试提取数据时,我希望它使用分配给该框而不是凭据的IAM角色。

事实上,这在我们的某个环境中完全正常,但在这个环境中表现不同,发生了什么?

1 个答案:

答案 0 :(得分:2)

最新的Ruby SDK按以下顺序检查凭据:

static_credentials - > env_credentials - > shared_credentials - > instance_profile_credentials

因此,如果您使用的是静态凭证,那么您应该没问题,但如果您要将您的密钥和密码导出为ENV vars,请确保没有使用其他名称设置。

SDK按此顺序查找Env变种:

AWS_ACCESS_KEY_ID -> AMAZON_ACCESS_KEY_ID -> AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY -> AMAZON_SECRET_ACCESS_KEY -> AWS_SECRET_KEY
AWS_SESSION_TOKEN -> AMAZON_SESSION_TOKEN

确保您通过执行以下操作导出AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY:

export AWS_ACCESS_KEY_ID=ASIAXXXXXXXXXXXXXXXX
export AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

多年来,密钥的排序和名称发生了多处变化,因此,如果您的环境运行不同版本的SDK,那么如果遇到问题则不足为奇。如果您无法更新到最新的SDK try taking a look at the SDK source,请查看您使用的版本的评估顺序。