При использовании Terraform создание службы ecs завершается ошибкой при использовании настроенной политики IAM.
Error applying plan:
1 error(s) occurred:
* aws_ecs_service.beatthemarket_service: InvalidParameterException: Unable to assume role and validate the listeners configured on your load balancer. Please verify the role being passed has the proper permissions.
status code: 400, request id: ba3a3fb8-0972-11e6-a877-954fd57ba1a9
Это похоже на Эта проблема. Но я не могу это исправить даже после добавления политика. Я также не думаю, что это проблема времени, поскольку роль уже существует, после попытки terraform apply
несколько раз.
Пока у меня только IAM роль, политика, ELB, и ECS кластер, служба и определение задачи. Мне нужно что-нибудь еще, например Группа автомасштабирования, Конфигурация запуска, Профиль экземпляра или Группа безопасности?
Есть ли что-то очевидное, что объясняет, почему служба не может принять роль, которую я настроил? Кажется, что у роли есть все необходимые разрешения.
resource "aws_iam_role_policy" "beatthemarket" {
name = "beatthemarket"
role = "${aws_iam_role.beatthemarket.id}"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:*",
"ecs:*",
"iam:*",
"elasticloadbalancing:*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
EOF
}
Оказалось, мне нужно было настроить службу на ecs.amazonaws.com и нет ec2.amazonaws.com в моем aws_iam_role. Я пробовал это раньше, но не указал в aws_iam_role_policy . Это очень похоже на Эта проблема на форумах AWS.
resource "aws_iam_role" "beatthemarket" {
name = "beatthemarket"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": "ecs.amazonaws.com"
},
"Effect": "Allow",
"Sid": ""
}
]
}
EOF
}
Для будущих ссылок, надеюсь, это кому-то поможет.