Регистрация ошибок: 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.