Aws ecs fargate ResourceInitializationError: невозможно извлечь секреты или выполнить аутентификацию реестра - PullRequest
5 голосов
/ 17 апреля 2020

Я пытаюсь запустить частный репозиторий на платформе aws -ecs-fargate-1.4.0.

Для аутентификации в частном репозитории я следовал документам , и это было работает хорошо.

Каким-то образом после обновления существующей службы много раз происходит сбой запуска задачи и выдается ошибка типа

ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to get registry auth from asm: service call has been retried 1 time(s): asm fetching secret from the service for <secretname>: RequestError: ...

Я не изменил ecsTaskExecutionRole, и он содержит все необходимые политики для извлечения секретного значения.

  1. AmazonECSTaskExecutionRolePolicy
  2. CloudWatchFullAccess
  3. AmazonECSTaskExecutionRolePolicy
  4. GetSecretValue
  5. 10 22 МПа *

Ответы [ 4 ]

2 голосов
/ 18 апреля 2020

Эта ошибка возникает, когда агент Fargate не может создать или bootstrap ресурсы, необходимые для запуска контейнера или задачи, которой принадлежит. Эта ошибка возникает только при использовании платформы версии 1.4 или новее, скорее всего, , потому что версия 1.4 использует задачу ENI (которая находится в вашем VP C) вместо Fargate ENI (которая находится в AWS ' с VP C). Я думаю, это может быть вызвано некоторой необходимостью дополнительных разрешений IAM, необходимых для извлечения изображения из ECR. Вы используете какую-либо приватную ссылку? Если да, возможно, вы захотите взглянуть на политику для конечной точки ECR.

Я попытаюсь повторить его, но я бы предложил открыть Билет поддержки с AWS, если вы можете, чтобы они могли более внимательно изучить ваши ресурсы и лучше предложить.

1 голос
/ 18 апреля 2020

Убедитесь, что соединение inte rnet через IGW или NAT, и убедитесь, что publi c IP включен, если его IGW в конфигурации сети Задача / Сервис Fargate.

{
  "awsvpcConfiguration": {
    "subnets": ["string", ...],
    "securityGroups": ["string", ...],
    "assignPublicIp": "ENABLED"|"DISABLED"
  }
}
0 голосов
/ 06 мая 2020

Я решил похожую проблему, обновив правила в группе безопасности службы ECS. Ниже приведены правила настройки.

Inbound Rules:
* HTTP          TCP   80    0.0.0.0/0
Outbound Rules:
* All traffic   All   All   0.0.0.0/0

0 голосов
/ 30 апреля 2020

Я не совсем уверен в вашей настройке, но после того, как я отключил NAT-шлюзы, чтобы сэкономить $, у меня было очень похожее сообщение об ошибке на платформе aws -ecs-fargate-1.4.0:

Stopped reason: ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 1 time(s): RequestError: send request failed caused by: Post https://api.ecr....

Оказалось, что мне нужно было создать VP C Конечные точки для этих имен сервисов:

  • com.amazon aws .REGION.s3
  • com .amazon aws .REGION.ecr.dkr
  • com.amazon aws .REGION.ecr.api
  • com.amazon aws .REGION.logs
  • com.amazon aws .REGION.ssm

И мне пришлось перейти на платформу aws -ecs-fargate-1.3.0. После понижения версии Docker образы могут быть извлечены из ECR, и развертывания снова были успешными.

Если вы используете секретный менеджер без NAT-шлюза, возможно, вам придется создать конечную точку VP C для com.amazonaws.REGION.secretsmanager.

...