Регистрация ошибок: NoCredentialProviders: нет действительных поставщиков в цепочке ошибки агента ECS

Я пытаюсь использовать службу контейнера EC2. Я использую terraform для его создания. Я определил кластер ecs, группу автомасштабирования, конфигурацию запуска. Кажется, все работает. Кроме одного. Экзотические экземпляры ec2 создают, но они не регистрируются в кластере, кластер просто говорит, что нет доступных экземпляров.

В журнале ecs agent на созданном экземпляре я обнаружил, что журналы залиты одной ошибкой:

Error registering: NoCredentialProviders: no valid providers in chain

Экзоны ec2 создаются с надлежащей ролью ecs_role. Эта роль имеет две политики, одна из которых следующая, например требуемые документы:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:CreateCluster",
        "ecs:DeregisterContainerInstance",
        "ecs:DiscoverPollEndpoint",
        "ecs:Poll",
        "ecs:RegisterContainerInstance",
        "ecs:StartTelemetrySession",
        "ecs:Submit*",
        "ecs:StartTask"
      ],
      "Resource": "*"
    }
  ]
}

Im, используя ami ami-6ff4bd05. Последняя терраформа.

Ответ 1

Это была проблема с доверительными отношениями в роли, поскольку роль должна включать ec2. К сожалению, сообщение об ошибке было не очень полезно.

Пример отношения доверия:

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": ["ecs.amazonaws.com", "ec2.amazonaws.com"]
      },
      "Effect": "Allow"
    }
  ]
}

Ответ 2

по-видимому, это сообщение об ошибке также возникает, когда передается недопустимый профиль aws.