aws - ECS 容量提供者权限

Posted

技术标签:

【中文标题】aws - ECS 容量提供者权限【英文标题】:aws - ECS capacity provider permission 【发布时间】:2022-01-04 15:22:16 【问题描述】:

我正在尝试使用 teraform 来管理我的基础架构,但遇到了一些问题,我不确定要寻找什么。

我正在尝试为我的 ECS 集群创建容量提供程序,但出现以下错误

ClientException: The capacity provider could not be created because you do not have autoscaling:CreateOrUpdateTags permissions to create tags on the Auto Scaling group

以下是我的文件:

启动配置和自动缩放组创建

resource "aws_launch_configuration" "ecs_launch_configuration" 
    name = "ecs_launch_configuration"
    image_id = "ami-0fe19057e9cb4efd8"
    user_data = "#!/bin/bash\necho ECS_CLUSTER=ecs_cluster >> /etc/ecs/ecs.config"
    security_groups = [aws_security_group.vpc_securityGroup.id]
    iam_instance_profile = aws_iam_instance_profile.iam_role_profile.name
    key_name = "key_pair_name"
    instance_type = "t2.small"


resource "aws_autoscaling_group" "ecs_autoScale_group" 
    name                      = "ecs_autoScale_group"
    desired_capacity          = 1
    min_size                  = 1
    max_size                  = 2
    launch_configuration = aws_launch_configuration.ecs_launch_configuration.name
    vpc_zone_identifier = [aws_subnet.vpc_subnet_public.id]
    tag 
        key                 = "AmazonECSManaged"
        value               = true
        propagate_at_launch = true
    

ECS 集群和容量提供程序创建

resource "aws_ecs_cluster" "ecs_cluster"
    name = "ecs_cluster"
    capacity_providers = [ aws_ecs_capacity_provider.ecs_capacity_provider.name ]


resource "aws_ecs_capacity_provider" "ecs_capacity_provider" 
    name = "ecs_capacity_provider"
    auto_scaling_group_provider 
        auto_scaling_group_arn = aws_autoscaling_group.ecs_autoScale_group.arn
        managed_scaling 
            maximum_scaling_step_size = 2
            minimum_scaling_step_size = 1
            status                    = "ENABLED"
            target_capacity           = 1
        
    

我能够从控制台的 GUI 中创建它,但是只有 terraform 会返回此错误。

我们将不胜感激。

提前致谢。

【问题讨论】:

【参考方案1】:

(猜测)

不是因为您在 Terraform 代码中使用的 IAM 用户缺少 autoscaling:CreateOrUpdateTags 权限吗?

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-auto-scaling.html 说:

创建容量提供程序的 IAM 用户需要 autoscaling:CreateOrUpdateTags 权限。这是因为 Amazon ECS 在将 Auto Scaling 组与容量提供程序相关联时会为其添加一个标签。

【讨论】:

是的,这是有道理的,但它是我用来登录 GUI 控制台的同一用户。唯一不同的是,使用 terraform,我使用的是访问密钥和访问密钥秘密。相关 IAM 用户附加了 AdministratorAccess 策略

以上是关于aws - ECS 容量提供者权限的主要内容,如果未能解决你的问题,请参考以下文章

使用 terraform 的 AWS ECS 容量提供程序

AWS ECS 容量提供商

ECS 容量提供程序是不是实际适用于每个 ec2 实例的一项任务?

如何为 AWS ECS 任务定义提供环境变量?

AWS CDK 是不是提供用于部署 ECS 应用程序的构造?

AWS Cloudwatch + ECS - 设置啥权限?