注册时出错:NoCredentialProviders:链ECS代理错误中没有有效的提供者

Ald*_*und 13 amazon-ec2 amazon-web-services amazon-ecs ec2-ami terraform

我试图使用EC2容器服务.我正在使用terraform来创建它.我已经定义了ecs集群,自动缩放组,启动配置.一切似乎都有效.除了一件事.ec2实例正在创建,但它们没有在集群中注册,集群只是说没有实例可用.

在ecs agent登录创建的实例中,我发现日志充斥着一个错误:

注册时出错:NoCredentialProviders:链中没有有效的提供者

使用适当的角色ecs_role创建ec2实例.此角色有两个策略,其中一个是跟随的,如需要的文档:

{
  "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": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用ami ami-6ff4bd05.最新的terraform.

Ald*_*und 23

这是角色中信任关系的问题,因为角色应该包括ec2.不幸的是,错误消息并没有那么有用.

信任关系的例子:

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": ["ecs.amazonaws.com", "ec2.amazonaws.com"]
      },
      "Effect": "Allow"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

  • OMFG,我在过去3-4天里一直在这里,尝试绝对一切,并修复它.你是怎么偶然发现的,我在其他任何地方都没有看到这个!很多人提到公共知识产权,角色等等,但你是提到信任关系的唯一一个人.谢谢! (2认同)