ruby AWS SDK使用错误的凭据

ruby AWS SDK使用错误的凭据,ruby,amazon-ec2,amazon-iam,aws-sdk,Ruby,Amazon Ec2,Amazon Iam,Aws Sdk,我对AWS SDK有点小问题 我在EC2盒上使用AWS SDK来获取我需要的关于我们服务的数据 我通过一个秘密和ID密钥传递它的凭据,但是当它尝试提取我想要的数据时,它使用分配给该框的IAM角色,而不是凭据 问题是,这在我们的一个环境中工作得非常好,但在这个环境中的行为有所不同,这是怎么回事?最新的Ruby SDK按以下顺序检查凭据: 静态\u凭证->环境\u凭证->共享\u凭证->实例\u配置文件\u凭证 因此,如果您使用的是静态凭据,您应该可以,但是如果您将密钥和机密导出为ENV vars,

我对AWS SDK有点小问题

我在EC2盒上使用AWS SDK来获取我需要的关于我们服务的数据

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


问题是,这在我们的一个环境中工作得非常好,但在这个环境中的行为有所不同,这是怎么回事?

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

静态\u凭证->环境\u凭证->共享\u凭证->实例\u配置文件\u凭证

因此,如果您使用的是静态凭据,您应该可以,但是如果您将密钥和机密导出为ENV vars,请确保没有使用其他名称设置的密钥和机密

SDK按以下顺序查找环境变量:

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,可能需要查看您使用的版本的顺序