Amazon ECS 태스크 IAM 역할

Amazon ECS 태스크 IAM 역할

Amazon ECS 태스크에는 IAM 역할을 연결할 수 있어요. IAM 역할에 부여된 권한은 태스크에서 실행되는 컨테이너에 전달됩니다. 이 역할을 통해 컨테이너 안에서 실행되는 애플리케이션 코드가 다른 AWS 서비스를 사용할 수 있습니다. 애플리케이션이 Amazon S3 같은 다른 AWS 서비스에 접근할 때는 태스크 역할(task role)이 필요합니다.

출처: 문서

본문

Amazon ECS 태스크에는 IAM 역할을 연결할 수 있습니다. IAM 역할에 부여된 권한은 태스크에서 실행되는 컨테이너에 전달되어, 컨테이너 안 애플리케이션 코드가 다른 AWS 서비스를 사용할 수 있게 해 줍니다. 태스크 역할은 애플리케이션이 Amazon S3 같은 다른 AWS 서비스에 접근할 때 필요해요.

참고: 이 권한은 Amazon ECS 컨테이너와 Fargate 에이전트가 접근하는 것이 아닙니다. Amazon ECS가 컨테이너 이미지를 가져오고 태스크를 실행하는 데 필요한 IAM 권한에 대해서는 "Amazon ECS task execution IAM role" 문서를 참고하세요.

태스크 역할을 사용할 때의 장점은 다음과 같습니다.

  • 관심사 분리(Separation of concerns) — EC2를 사용한다면, 태스크 IAM 역할을 통해 EC2 인스턴스 프로필(instance profiles)을 사용해 권한을 지정할 필요 없이 컨테이너용 IAM 권한을 지정할 수 있습니다. 따라서 EC2 인스턴스와 연결된 IAM 권한을 수정하지 않고도 ECS 컨테이너 인스턴스에 애플리케이션을 독립적이고 일관되게 배포할 수 있어요.
  • 감사 가능성(Auditability) — CloudTrail을 통해 접근 및 이벤트 로깅을 제공하여 사후 감사를 지원합니다. 태스크 자격 증명에는 세션에 첨부되는 taskArn 컨텍스트가 있으므로, CloudTrail 로그에서 역할 자격 증명이 어떤 태스크에 전달되었는지 확인할 수 있습니다.
  • 일관된 자격 증명 전달(Uniform credentials delivery) — ECS가 태스크의 컴퓨팅 옵션과 무관하게, 잘 정의된 인터페이스를 통해 IAM 역할 자격 증명을 컨테이너에 전달하고 접근할 수 있게 합니다. ECS Fargate에서는 태스크의 컨테이너에 EC2 인스턴스 프로필을 사용할 수 없습니다. 태스크 IAM 역할을 사용하면 컨테이너 안에서 AWS SDK나 AWS CLI를 사용할 때 컴퓨팅 옵션에 관계없이 컨테이너에 IAM 권한을 연결할 수 있어요.

더 알아보기 (Learn more)

  • 태스크 실행 IAM 역할에 대한 자세한 내용은 AWS 공식 문서를 참고해 주세요.