ECS Task Role. vs Task Execution Role. vs Service Role
ECS에서 IAM 역할을 통해 컨테이너의 AWS 리소스 접근 권한을 관리합니다.
ECS에서 컨테이너를 실행하고 관리하기 위해서는 IAM 역할을 이용하여 권한을 부여해야 합니다.
이때 사용되는 주요 역할은 Task Role, Task Execution Role, Service Role 세 가지입니다. 각 역할은 서로 다른 목적과 기능을 가지고 있으며, 컨테이너와 서비스가 AWS 리소스에 접근하는 방식을 제어합니다.
1. Task Role (작업 역할)
- 컨테이너 내부의 애플리케이션이 AWS 서비스에 접근하고 작업을 수행하는 데 필요한 권한을 제공합니다.
- 예를 들어, 컨테이너 내부에서 S3 버킷에 파일을 업로드하거나, DynamoDB 테이블에서 데이터를 읽고 쓰는 등의 작업을 수행할 때 필요한 권한을 Task Role을 통해 부여합니다.
2. Task Execution Role (작업 실행 역할)
- ECS 컨테이너 에이전트가 컨테이너를 대신하여 AWS 리소스에 접근하고 작업을 수행하는 데 필요한 권한을 제공합니다.
- 컨테이너 에이전트는 각 EC2 인스턴스에서 실행되며 컨테이너의 라이프사이클을 관리합니다.
- Task Execution Role은 주로 컨테이너 이미지를 가져오고 로그를 CloudWatch Logs에 전송하는 데 사용됩니다.
- 예를 들어, ECR에서 컨테이너 이미지를 가져오거나 CloudWatch Logs에 로그를 쓰는 작업을 수행할 때 Task Execution Role이 필요합니다.
3. Service Role (서비스 역할)
- ECS 서비스가 로드 밸런싱, 서비스 검색, 배포와 같은 작업을 수행하는 데 필요한 권한을 제공합니다.
- 예를 들어, Application Load Balancer를 생성하고 관리하거나, Cloud Map에서 서비스 검색을 수행하는 등의 작업을 수행할 때 Service Role이 필요합니다.
요약

참고
- 각 역할은 필요에 따라 하나 이상의 IAM 정책을 연결하여 세분화된 권한을 부여할 수 있습니다.
- 보안을 위해 최소 권한 원칙을 적용하여 필요한 권한만 부여하는 것이 중요합니다.