我在 AWS ECS 上运行的 Dockerized Django 应用程序中遇到 S3 上传问题。该设置包括 RDS 和 S3,我已经使用 docker run 和 Postman 成功在本地测试了文件上传。
但是,当我创建任务定义、启动具有负载均衡器和目标组的 ECS EC2 集群并尝试将文件上传到 S3 时,我遇到了 504 网关超时错误。在日志中,我看到消息“正在加载 s3:s3”,并且服务中断,然后重新加载。
对于 IAM,我将 S3FullAccess 添加到与我的 ecs 相关的所有 IAM 在安全组中,我允许所有流量(入站、出站)
在安全组中我允许所有流量(入站、出站)
向与 ECS 任务关联的 ecsTaskExecutionRole IAM 角色添加了 AmazonS3FullAccess 策略。 已确认的 IAM 角色更改已传播。
检查了ecsTaskExecutionRole的信任关系,以允许ECS承担该角色。
向与 ECS 任务关联的 ecsTaskExecutionRole IAM 角色添加了 AmazonS3FullAccess 策略。已确认的 IAM 角色更改已传播。
检查了ecsTaskExecutionRole的信任关系,以允许ECS承担该角色。
任务执行角色是 ECS 服务本身所承担的角色,以便拥有创建 ECS 任务所需的权限。 ECS 任务将具有一个单独的任务 IAM 角色,它可以让您在任务内运行的代码访问 AWS 服务。该角色是可选的,因此您可能还没有定义该角色。这是您需要进行设置的,以便为 ECS 中运行的代码提供访问其他 AWS 服务(例如 S3)的权限。