首页 文章

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

提问于
浏览
13

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

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

Error registering: NoCredentialProviders: no valid providers in chain

使用适当的角色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": "*"
    }
  ]
}

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

2 回答

  • 19

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

    信任关系的例子:

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

    显然,当传递无效的aws-profile时,也会出现此错误消息 .

相关问题