我正在尝试使用 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
听起来您的控制台 GUI 用户和 CLI 用户具有不同的权限。您是否从某个 CI/CD 管道运行 terraform?
如果您从 CloudShell(右上角图标组中的 CLI 终端图标,位于帐户、支持等旁边)运行此 terrafotm 脚本,会怎么样?这将具有与您的 GUI 用户相同的权限 - 如果是您的 TF 或凭据的问题,这是一种缩小范围的好方法。