ECS를 설정하려고했지만 지금까지이 포럼에서 이미 몇 가지 질문을 작성한 권한 문제가 발생했습니다.
솔직히 말해서 이러한 역할 요구 사항을 모두 한곳에서 찾을 수 없기 때문에 지금까지 갇혀 있다고 생각합니다.
적어도 두 가지 역할을 정의해야합니다.
1) ECS 컨테이너 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html
2) ECS 작업 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#enable_task_iam_roles
맞습니까?
내가 놓친 것이 있습니까? 특별한 IAM 요구 사항이 있습니까?
답변
필요한 유일한 역할은 컨테이너 인스턴스 IAM 역할 입니다. 이 역할을 통해 EC2 에이전트 (EC2 인스턴스에서 실행)가 Amazon ECS와 통신 할 수 있습니다.
다른 목적으로 유용 할 수있는 5 가지 다른 역할이 있습니다.
- ECS SLR (Service-Linked Role) -이 역할을 통해 Amazon ECS는 사용자를 대신하여 애플리케이션과 관련된 다양한 AWS 리소스를 관리 할 수 있습니다. 서비스 를 사용할 때이 역할을 통해 Amazon ECS 는 서비스 와 관련된로드 밸런서 (Classic Load Balancer, Application Load Balancer 및 Network Load Balancer) 및 서비스 검색 ( Route 53 사용 )을 관리 할 수 있습니다. 사용하는 경우 작업 네트워킹 ,이 역할은 아마존 ECS 첨부 할 수 있으며 분리 탄성 네트워크 인터페이스 (ENIs) 당신의 작업에. 이 역할은 AWS Fargate를 사용할 때 필요합니다 .
- 서비스 스케줄러 IAM 역할 -ECS SLR (Service-Linked Role)을 도입하기 전에이 역할을 서비스 와 함께 사용하여 Amazon ECS가 서비스와 관련된로드 밸런서를 관리 할 수있었습니다. ECS 서비스와 함께 Elastic Load Balancer (Classic Load Balancer, Application Load Balancer 또는 Network Load Balancer)를 사용하려는 경우이 역할을 사용할 수 있습니다. 이제 ECS SLR을 사용할 수 있으므로 두 가지 역할 중 하나를 사용할 수 있지만 특정로드 밸런서 리소스를 포함하도록 Amazon ECS에 부여 된 권한을 제한하려는 경우이 역할을 계속 사용할 수 있습니다.
- Auto Scaling IAM 역할 -이 역할은 서비스 와 함께 사용되며 Application Auto Scaling 서비스가 원하는 서비스 수를 확장 또는 축소 할 수 있습니다.
- 작업 IAM 역할 -이 역할은 모든 작업 ( 서비스에서 시작한 작업 포함) 과 함께 사용할 수 있습니다 . 이 역할은 EC2 인스턴스 프로파일 과 매우 유사 하지만 해당 작업을 호스팅하는 기본 EC2 인스턴스가 아닌 개별 작업과 권한을 연결할 수 있습니다. 서로 다른 권한이 필요한 ECS 클러스터에서 여러 개의 다른 애플리케이션을 실행하는 경우 클러스터의 모든 EC2 인스턴스가 다음과 같은 권한 세트를 갖도록하는 대신 Task IAM 역할을 사용하여 각 작업에 특정 권한을 부여 할 수 있습니다. 응용 프로그램이 필요합니다.
- 작업 실행 역할 -이 역할은 AWS Fargate를 사용할 때 필요하며 시작 유형에 사용할 수없는 컨테이너 인스턴스 IAM 역할을 대체합니다
FARGATE
. 이 역할을 통해 AWS Fargate는 컨테이너 이미지를 Amazon ECR 에서 가져오고 로그를 Amazon CloudWatch Logs 로 전달할 수 있습니다 . 이 역할은 Fargate 및 EC2 시작 유형 모두 에서 AWS Secrets Manager 및 AWS Systems Manager Parameter Store에서 프라이빗 레지스트리 인증 및 비밀 을 활성화하는 데 사용 됩니다.
답변
@ samuel-karp에 대한이 아주 좋은 설명 외에도 오늘 task_role_arn
ECS 서비스에 대한 사용자 정의 조합으로 클래식 ELB에서 ALB로 마이그레이션 할 때 문제가 발생했습니다 .
링크 뒤에 설명 된 지침을 따르지만 Task IAM role
오류는
역할을 맡고 지정된 targetGroupArn을 확인할 수 없습니다. 전달되는 ECS 서비스 역할에 적절한 권한이 있는지 확인하십시오.
문제는 서비스가로드 밸런서에 등록되는 것 같습니다. 나는에서 교장을 교환 할 때 그것은 단지 일 ecs.amazonaws.com
에
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
}