python - Ansible 不从 ~/.aws/credentials 读取凭证

标签 python amazon-web-services ansible aws-cli

我正在使用动态库存运行ansible。当使用 aws configure 命令设置 aws cli 时,具有动态 list 的 ansible 命令可以正常运行。但我希望动态库存使用多个配置文件,因此我在 ~/.aws/credentials

中添加了配置文件
[personal]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXX

[default]
aws_access_key_id = XXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXX

ansible 没有获取这些凭据,并且在运行 ./ec2.py --list 时出现错误:

Looks like AWS is down again:
EC2ResponseError: 401 Unauthorized
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>AuthFailure</Code><Message>Authorization header or parameters are not formatted correctly.</Message></Error></Errors><RequestID>349d5311-54db-4e79-9bbc-2d60b9f15da5</RequestID></Response>

最佳答案

我也遇到了这个问题,最后解决了;问题是我机器上的时钟偏差了几分钟。正确设置时间解决了问题。

一路上我了解到 aws cli 使用 boto3,而 ec2.py 使用 boto。看来 boto3 在身份验证方面的工作方式略有不同,因为像 @drishti 一样,即使 ec2.py 不工作,CLI 也可以为我工作。

关于python - Ansible 不从 ~/.aws/credentials 读取凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39818098/

相关文章:

python - 换行符 ='' 在 csv 库中意味着什么?

ansible - 如何在 Keycloak 中导入领域并退出

ansible - 为不同的主机使用不同的文件

python - numpy 的 np.transpose(matrix) 和 np.matrix.transpose() 在二维矩阵上的区别?

python - 如何使用 python 消除 json 文件中的冗余

python - 在 Python 中将 CSV 索引到 ElasticSearch

MySQL 没有充分利用服务器

amazon-web-services - 如何识别公司内未使用的EC2服务器并停止使用

node.js - sqs.recieveMessage 即使消息在队列中也没有收到

python - Ansible 条件基于文件的内容