Создаю кластер AWS fargate
теперь я изменил образ докера, чтобы читать входные данные из s3. на этапе разработчика я передал учетные данные через переменные среды, и контейнер работал
теперь на AWS я думаю, что должен добавить политику
я сначала создаю роль с
iam_role='ecsTaskExecutionRole'
aws iam wait role-exists --role-name $iam_role 2>/dev/null || \ aws iam --region $REGION create-role --role-name $iam_role \
--assume-role-policy-document file://task-execution-assume-role.json || return 1
aws iam --region $REGION attach-role-policy --role-name $iam_role \
--policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy || return 1
где файл Json, который я передаю, содержит только:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
затем я создаю другую роль, которая должна быть ролью задачи, чтобы дать контейнеру возможность читать с S3
aws iam wait role-exists --role-name $task_role 2>/dev/null || \
aws iam --region $REGION create-role --role-name $task_role \
--assume-role-policy-document file://task-role.json || return 1
aws iam --region $REGION attach-role-policy --role-name $task_role \
--policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess || return 1
в этом случае я передаю json:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
и когда я создаю службу, я также передаю файл ecs-params.yml
version: 1
task_definition:
task_role_arn: ${task_role}
task_execution_role: ${task_execution_role}
ecs_network_mode: awsvpc
task_size:
mem_limit: 0.5GB
cpu_limit: 256
run_params:
network_configuration:
awsvpc_configuration:
subnets:
- ${subnet1}
- ${subnet2}
security_groups:
- ${secgroupid}
assign_public_ip: ENABLED
я получаю ошибку:
INFO [0016] (сервисная панель) не удалось запустить задачу с (ошибка ECS не смогла принять роль 'arn: aws: iam :: accountID: role / dashboard_role', которая была предоставлена для этой задачи. Убедитесь, что роль Pass имеет надлежащие отношения доверия и разрешения, а также что у вашего пользователя IAM есть разрешения на передачу этой роли.). timestamp = 2021-03-04 12:13:23 +0000 UTC
что мне не хватает?