Как обновить агент контейнера AWS ECS в экземплярах типа запуска Fargate - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь настроить AWS ECS, используя режим awsvpc с ролью IAM, специально предназначенной для задач. Наши экземпляры ECS имеют типы запуска fargate. После указания роли Task IAM в конфигурации задачи мы запускаем ssh в нашу задачу и пытаемся запустить команды awscli и получаем следующую ошибку: Unable to locate credentials. You can configure credentials by running "aws configure".

Чтобы устранить неполадки, мы запустили один и тот же образ докера в контейнере с типом запуска EC2, и когда мы выполнили ту же команду awscli, она выдает ошибку, говоря, что предполагаемая роль не имеет достаточных разрешений. Мы заметили, что это произошло потому, что она принимала роль IAM экземпляра контейнера, а не роль IAM задачи.

Основываясь на документации здесь , ясно, что при использовании сетевого режима awsvpc нам нужно установить для переменной конфигурации агента ECS_AWSVPC_BLOCK_IMDS значение true в файле конфигурации агента и перезапустить агент для того, чтобы наши экземпляры принимают роль IAM задачи, а не роль IAM экземпляра контейнера.

В настоящее время для целей тестирования производительности нам необходимо развернуть с типом запуска Fargate и в соответствии с документацией , агент контейнера должен быть установлен автоматически для Fargate:

Агент контейнера Amazon ECS установлен в управляемой инфраструктуре AWS, используемой для задач, использующих тип запуска Fargate. Если вы используете только задачи с типом запуска Fargate, дополнительная настройка не требуется, и содержимое этого раздела не применяется.

Однако нам по-прежнему необходимо иметь возможность выполнять нашу задачу IAM. Есть ли способ обновить необходимую переменную среды в файле конфигурации агента, управляемого AWS, чтобы можно было принять роль IAM задачи? Или есть другой способ разрешить это?

1 Ответ

0 голосов
/ 10 мая 2019

При создании определения задачи для вашей задачи Fargate назначаете ли вы роль задачи ARN? Необходимы два ARN IAM. Роль выполнения ARN - это роль IAM для запуска контейнера в кластере Fargate, которая использует разрешения для настройки журналов CloudWatch и, возможно, извлечения изображения из ECR. Роль задачи ARN - это роль IAM, которую имеет контейнер. Убедитесь, что роль задачи ARN имеет доверительные отношения ECS.

 {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "ecs-tasks.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
...