我对AWS SDK有轻微问题。
我在EC2框上使用AWS SDK来提取我需要的有关我们服务的数据。
我通过密钥和ID密钥传递凭据但是当它尝试提取数据时,我希望它使用分配给该框而不是凭据的IAM角色。
事实上,这在我们的某个环境中完全正常,但在这个环境中表现不同,发生了什么?
答案 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,请查看您使用的版本的评估顺序。