Ale*_*eri 10 amazon-ec2 amazon-iam ansible ansible-inventory
已经有人想出运行EC2动态库存脚本(所需的最小IAM策略ec2.py
上)ansible通过IAM角色?
到目前为止,除了boto
在ansible的官方文档中指定库的凭据之外,我还没有看到这个问题的具体参考,但是,在生产环境中,我很少使用密钥对从EC2实例访问AWS服务,而是我有在这种情况下接受了IAM角色的使用.
我已经尝试过允许ec2:Describe*
操作的策略,但对于脚本来说似乎不够,因为它总是会退出Unauthorized operation
.
你能救我吗?
小智 9
该脚本还会查看RDS和弹性.可以在ec2.ini中禁用它们,但如果不这样做,则以下策略似乎足以运行动态库存.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Demo201505282045", "Effect": "Allow", "Action": [ "ec2:Describe*", "route53:ListHostedZones", "route53:ListResourceRecordSets", "rds:Describe*", "elasticache:Describe*" ], "Resource": "*" } ] }
我刚刚创建了一个演示策略,创建了一个新角色并使用了该新策略,然后创建了一个使用该新角色的新实例.
演示政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Demo201505282045",
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"route53:ListHostedZones",
"route53:ListResourceRecordSets"
],
"Resource": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我必须添加route53,因为我使用route53选项(route53 = true
在ec2.ini中),但除此之外它工作正常.
如果您仍然遇到问题,请尝试从命令行(./ec2.py
)运行ec2.py,因为这通常会在直接运行时提供合理的错误消息.