10

有人想出通过 IAM 角色在ansibleec2.py上运行 EC2 动态清单脚本 ( )所需的最低 IAM 策略吗?

到目前为止,除了boto在 ansible 的官方文档中指定库的凭证之外,我还没有看到关于这个问题的具体参考,但是,在生产环境中,我很少使用密钥对从 EC2 实例访问 AWS 服务,而是我有接受在该案例场景中使用 IAM 角色。

我已经尝试过允许ec2:Describe*操作的策略,但对于脚本来说似乎还不够,因为它总是以Unauthorized operation.

你能帮帮我吗?

4

4 回答 4

9

该脚本还查看 RDS 和 elasticache。它们可以在 ec2.ini 中禁用,但如果您不这样做,以下策略似乎足以运行动态清单。

{
    “版本”:“2012-10-17”,
    “陈述”: [
        {
            "Sid": "Demo201505282045",
            “效果”:“允许”,
            “行动”: [
                “ec2:描述*”,
                "route53:ListHostedZones",
                "route53:ListResourceRecordSets",
                “rds:描述*”,
                “弹性疼痛:描述*”
            ],
            “资源”:“*”
        }
    ]
}
于 2015-07-09T13:20:36.973 回答
6

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

演示政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Demo201505282045",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "route53:ListHostedZones",
                "route53:ListResourceRecordSets"
            ],
            "Resource": "*"
        }
    ]
}

当我使用 route53 选项(route53 = true在 ec2.ini 中)时,我必须添加 route53,但除此之外它工作正常。

如果您仍然遇到问题,请尝试从命令行 ( ) 运行 ec2.py,./ec2.py因为直接运行时通常会给出合理的错误消息。

于 2015-05-29T02:41:59.780 回答
1

该脚本还会检查 Route53、RDS 和 ElastiCache 配置,因此它需要访问ec2:Describe*route53:ListHostedZonesroute53:ListResourceRecordSets和.rds:Describe*elasticache:Describe*

尽管如此,如果您不使用所有这些服务,您可以通过设置相关变量的值来选择性地禁用它们在ec2.ini文件中的检查:这将跳过这些配置的获取,两者都允许您最小化允许的操作对于角色(例如:仅)并减少脚本的整体查询时间。Falsegroup_by_*ec2:Describe*

于 2018-09-05T15:08:43.523 回答
0

这些是我在检查 CloudTrail 后确定为 ec2.py 所需的权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "elasticache:DescribeReplicationGroups",
                "ec2:DescribeInstances",
                "ec2:DescribeTags",
                "rds:DescribeDBInstances",
                "elasticache:DescribeCacheClusters"
            ],
            "Resource": "*"
        }
    ]
}
于 2021-05-03T18:42:40.727 回答