Terraform, a criação do serviço ecs falha ao usar uma política do IAM configurada

3

Usando o Terraform, a criação do serviço ecs falha ao usar uma política do IAM configurada.

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

Isso parece corresponder a problema . Mas não consigo corrigi-lo, mesmo depois de adicionar uma política . Eu também não acho que isso é um problema de tempo, já que a função já existe, depois de tentar terraform apply várias vezes.

Até agora, tenho apenas uma função do IAM, política , um ELB e um cluster do ECS < strong> service e definição de tarefa . Preciso de mais alguma coisa, como um grupo de escalonamento automático , Iniciar configuração , perfil de instância ou grupo de segurança ? p>

Existe alguma coisa óbvia em falta, que explica por que o serviço não pode aceitar a função que eu configurei? O papel parece ter todas as permissões corretas.

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
}
    
por Frye 23.04.2016 / 20:38

1 resposta

3

Acontece que eu precisava configurar o serviço para ecs.amazonaws.com e não ec2.amazonaws.com no meu aws_iam_role . Eu tentei isso antes, mas não especifiquei o suficiente em aws_iam_role_policy . É muito parecido com este problema nos fóruns da 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
}

Para referência futura, espero que isso ajude alguém.

    
por 25.04.2016 / 01:42