Контейнер не может вызвать S3 в Fargate - PullRequest
0 голосов
/ 28 июня 2019

Я не могу синхронизировать папку журнала с s3 внутри контейнера.

Я пытаюсь получить следующую настройку:

  • Контейнер Docker с установленным awscli

    • внутри контейнера есть лог-файлы и другие файлы
  • Существует cronjob, который вызывает команду "aws s3 sync" через shell-скрипт.

Синхронизация не работает должным образом, и я не уверен, почему нет.

Я попробовал следующее, которое работало просто отлично:

  • предоставленный ключ доступа / секретный ключ доступа внутри док-контейнера

    • это работало локально, с простой ECS и с fargate
    • но не рекомендуется использовать клавиши доступа
  • простой ECS без каких-либо ключей (только роль IAM)

    • это тоже сработало

Я немного поиграл с конфигурацией и прочитал документацию. Единственные подсказки, которые я получил:

  • Это как-то связано с сетевым режимом "awsvpc"? (какой фаргейт должен использовать)
  • Это как-то связано с переменной пути "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"?
    • Я нашел несколько посещений в Интернете, но я не уверен, установлен он или нет. Я не могу заглянуть внутрь контейнера в фаргейте.

1 Ответ

0 голосов
/ 30 июня 2019

Определение задачи ECS имеет два параметра, связанных с определением роли IAM.

executeRoleArn - Предоставляет доступ к задаче или контейнеру для запуска, выполняя необходимые действия, такие как извлечение изображений из ECR, запись журналов в Cloudwatch.

taskRoleArn - позволяет Задаче выполнять вызовы API AWS для взаимодействия с ресурсами AWS, такими как S3 и т. Д. *

...