web-dev-qa-db-ja.com

登録エラー:NoCredentialProviders:チェーンECSエージェントに有効なプロバイダーがありませんエラー

EC2コンテナサービスを使用しようとしています。テラフォームを使用して作成しています。 ecsクラスター、自動スケーリンググループ、起動構成を定義しました。すべてうまくいくようです。 1つを除いて。 ec2インスタンスは作成中ですが、クラスターに登録されていません。クラスターは、使用可能なインスタンスがないと言っているだけです。

作成されたインスタンスのecsエージェントログで、ログに1つのエラーが殺到していることがわかりました。

登録エラー:NoCredentialProviders:チェーンに有効なプロバイダーがありません

Ec2インスタンスは、適切なロールecs_roleで作成されます。この役割には2つのポリシーがあり、必要なドキュメントのように、そのうちの1つは次のとおりです。

{
  "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 。最新のテラフォーム。

14
Aldarund

ロールにはec2が含まれている必要があるため、ロールの信頼関係に問題がありました。残念ながら、エラーメッセージはそれほど役に立ちませんでした。

信頼関係の例:

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

EC2のロールにAmazonEC2RoleforSSM(またはAmazonSSMFullAccess)を追加することをお勧めします。

0
Remigiusz

明らかに、このエラーメッセージは、無効なaws-profileが渡された場合にも発生します。

0
Rafael Marques