EC2 中 Ansible 动态库存的 IAM 策略

EC2 中 Ansible 动态库存的 IAM 策略

因此,我正在使用 ec2.py 脚本(由 Ansible 提供)用于生成动态清单。我创建了以下 IAM 策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:Region": "ca-central-1"
                }
            }
        }
    ]
}

因为我希望 Ansible 控制器仅从来自 ca-central-1(即加拿大)的 EC2 实例中获取数据。我不希望它与其他区域混淆,因为它们是生产/暂存环境,我不想弄乱那里的情况。问题是我得到了

错误:“连接到 AWS 后端时出错。

您无权执行此操作。”,同时:获取 EC2 实例

如果我使用这个策略它就会起作用:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:*",
            "Resource": "*"
        }
    ]
}

但该策略授予了所有权限,即使在生产环境中也是如此。即使使用角色,我也觉得这有点过头了。难道我没有考虑什么吗?

答案1

嗯,看起来问题在于 ini 文件设置为查询所有区域,所以我只需要将 ini 文件修改为:

regions = ca-central-1

并评论

#regions_exclude = us-gov-west-1, cn-north-1

相关内容