Ansible EC2动态库存最小IAM策略

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": "*"
        }
    ]
}


Phi*_*mes 5

我刚刚创建了一个演示策略,创建了一个新角色并使用了该新策略,然后创建了一个使用该新角色的新实例.

演示政策:

{
    "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,因为这通常会在直接运行时提供合理的错误消息.