Amazon Elastic Container Service용 AWS 관리형 정책 - Amazon Elastic Container Service

Amazon Elastic Container Service용 AWS 관리형 정책

사용자, 그룹 또는 역할에 권한을 추가하려면 정책을 직접 작성하는 것보다 AWS 관리형 정책을 사용하는 것이 편리합니다. 팀이 필요한 권한만 제공하는 IAM 고객 관리형 정책을 생성하는 데는 시간과 전문 지식이 필요합니다. 빨리 시작하려면 AWS 관리형 정책을 사용할 수 있습니다. 이러한 정책은 일반적인 사용 사례에 적용되며 AWS 계정에서 사용할 수 있습니다. AWS 관리형 정책에 대한 자세한 정보는 IAM 사용 설명서에서 AWS 관리형 정책을 참조하세요.

AWS 서비스 유지 관리 및 AWS 관리형 정책 업데이트입니다. AWS 관리형 정책에서 권한을 변경할 수 없습니다. 서비스는 때때로 추가 권한을 AWS 관리형 정책에 추가하여 새로운 기능을 지원합니다. 이 유형의 업데이트는 정책이 연결된 모든 자격 증명(사용자, 그룹 및 역할)에 적용됩니다. 서비스는 새로운 기능이 시작되거나 새 태스크를 사용할 수 있을 때 AWS 관리형 정책에 업데이트됩니다. 서비스는 AWS 관리형 정책에서 권한을 제거하지 않기 때문에 정책 업데이트로 인해 기존 권한이 손상되지 않습니다.

또한 AWS는 여러 서비스에 걸쳐 있는 직무에 대한 관리형 정책을 지원합니다. 예를 들어 ReadOnlyAccess라는 이름의 AWS 관리형 정책은 모든 AWS 서비스 및 리소스에 대한 읽기 전용 액세스 권한을 제공합니다. 서비스에서 새 기능을 시작하면 AWS는 새 작업 및 리소스에 대한 읽기 전용 권한을 추가합니다. 직무 정책의 목록과 설명은 IAM 사용 설명서직무에 관한 AWS 관리형 정책을 참조하세요.

Amazon ECS와 Amazon ECR은 AWS Identity and Access Management(IAM) 사용자, Amazon EC2 인스턴스, Amazon ECS 태스크에 연결하여 리소스 및 API 태스크를 다양한 수준으로 제어할 수 있는 여러 개의 관리형 정책과 신뢰 관계를 제공합니다. 이러한 정책은 직접 적용할 수도 있고, 사용자 고유의 정책을 생성하기 위한 시작 지점으로 정책을 사용할 수도 있습니다. Amazon ECR 관리형 정책에 대한 자세한 정보는 Amazon ECR 관리형 정책을 참조하세요.

AmazonECS_FullAccess

AmazonECS_FullAccess 정책을 IAM 자격 증명에 연결할 수 있습니다.

이 정책은 Amazon ECS 리소스에 대한 관리 액세스 권한을 부여하고 모든 Amazon ECS 기능을 사용하기 위해 Amazon ECS를 통합하는 AWS 서비스에 대한 IAM 자격 증명(예: 사용자, 그룹 또는 역할) 액세스 권한을 부여합니다. 이 정책을 사용하면 AWS Management Console에서 사용할 수 있는 모든 Amazon ECS 기능에 액세스할 수 있습니다.

권한 세부 정보

AmazonECS_FullAccess 관리형 IAM 정책에 다음 권한이 포함되어야 합니다. 최소 권한을 부여하는 모범 사례를 따르면, AmazonECS_FullAccess 관리형 정책을 사용자 고유의 사용자 지정 정책을 생성하기 위한 템플릿으로 사용할 수 있습니다. 이렇게 하면 특정 요구 사항에 따라 관리형 정책에서 권한을 제거하거나 추가할 수 있습니다.

  • ecs – 보안 주체가 모든 Amazon ECS API에 대한 모든 권한을 허용합니다.

  • application-autoscaling – 보안 주체가 Application Auto Scaling 리소스를 생성, 설명 및 관리할 수 있습니다. 이는 Amazon ECS 서비스에 대해 서비스 자동 크기 조정을 활성화할 때 필요합니다.

  • appmesh - 보안 주체가 App Mesh 서비스 메시 및 가상 노드를 나열하고 App Mesh 가상 노드를 설명할 수 있습니다. 이는 Amazon ECS 서비스를 App Mesh와 통합할 때 필요합니다.

  • autoscaling – 보안 주체가 Amazon EC2 Auto Scaling 리소스를 생성, 관리 및 설명할 수 있습니다. 클러스터 자동 크기 조정 기능을 사용할 때 Amazon EC2 Auto Scaling 그룹을 관리할 때 필요합니다.

  • cloudformation – 보안 주체가 AWS CloudFormation 스택을 생성 및 관리할 수 있습니다. 이는 AWS Management Console 및 이러한 클러스터의 후속 관리 태스크를 사용하여 Amazon ECS 클러스터를 생성할 때 필요합니다.

  • cloudwatch – 보안 주체가 Amazon CloudWatch 경보를 생성, 관리 및 설명할 수 있습니다.

  • codedeploy – 보안 주체가 애플리케이션 배포를 생성 및 관리하고 구성, 개정 및 배포 대상을 볼 수 있습니다.

  • sns – 보안 주체가 Amazon SNS 주제 목록을 볼 수 있습니다.

  • lambda – 보안 주체가 AWS Lambda 함수와 해당 버전별 구성을 볼 수 있습니다.

  • ec2 – 보안 주체가 Amazon EC2 인스턴스를 실행하고 라우팅, 라우팅 테이블, 인터넷 게이트웨이, 시작 그룹, 보안 그룹, 가상 프라이빗 클라우드, 스팟 집합 및 서브넷을 생성 및 관리할 수 있습니다.

  • elasticloadbalancing – 보안 주체가 Elastic Load Balancing 로드 밸런서를 생성, 설명 및 삭제할 수 있습니다. 또한 보안 주체는 대상 그룹, 리스너, 로드 밸런서에 대한 리스너 규칙을 완전히 관리할 수 있습니다.

  • events – 보안 주체가 Amazon EventBridge 규칙 및 해당 대상을 생성, 관리 및 삭제할 수 있습니다.

  • iam – 보안 주체가 IAM 역할 및 연결된 정책을 나열할 수 있습니다. 또한 보안 주체는 Amazon EC2 인스턴스에서 사용 가능한 인스턴스 프로파일을 나열할 수 있습니다.

  • logs – 보안 주체가 Amazon CloudWatch Logs 로그 그룹을 생성, 관리 및 설명할 수 있습니다. 또한 보안 주체는 해당 로그 그룹에 대해 로그 이벤트를 나열할 수 있습니다.

  • route53 – 보안 주체가 Amazon Route 53 호스팅 영역을 생성, 관리 및 삭제할 수 있습니다. 또한 보안 주체는 Amazon Route 53 상태 확인 구성 및 정보를 확인할 수 있습니다. 자세한 정보는 호스팅 영역 태스크를 참조하세요.

  • servicediscovery – 보안 주체가 AWS Cloud Map 서비스를 생성, 관리 및 삭제하고 프라이빗 DNS 네임스페이스를 생성할 수 있습니다.

다음은 예제 AmazonECS_FullAccess 정책입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "appmesh:ListMeshes", "appmesh:ListVirtualNodes", "appmesh:DescribeVirtualNode", "autoscaling:UpdateAutoScalingGroup", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLaunchConfiguration", "autoscaling:Describe*", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment", "sns:ListTopics", "lambda:ListFunctions", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotFleetRequests", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:Describe*", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:RequestSpotFleet", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:CreateRule", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:DeleteListener", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:DeleteRule", "elasticloadbalancing:DeleteTargetGroup", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:DescribeTargetGroups", "ecs:*", "events:DescribeRule", "events:DeleteRule", "events:ListRuleNamesByTarget", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfiles", "iam:ListRoles", "logs:CreateLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHealthCheck", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListNamespaces", "servicediscovery:ListServices", "servicediscovery:UpdateService", "servicediscovery:DeleteService" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/aws/service/ecs*" }, { "Effect": "Allow", "Action": [ "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup" ], "Resource": [ "*" ], "Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-name": "EC2ContainerService-*" } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "*" ], "Condition": { "StringLike": { "iam:PassedToService": "ecs-tasks.amazonaws.com" } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsInstanceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "ec2.amazonaws.com", "ec2.amazonaws.com.cn" ] } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsAutoscaleRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "application-autoscaling.amazonaws.com", "application-autoscaling.amazonaws.com.cn" ] } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "ecs.amazonaws.com", "spot.amazonaws.com", "spotfleet.amazonaws.com", "ecs.application-autoscaling.amazonaws.com", "autoscaling.amazonaws.com" ] } } } ] }

AmazonEC2ContainerServiceforEC2Role

Amazon ECS는 Amazon EC2 인스턴스 또는 외부 인스턴스에 대해 사용자를 대신해 태스크를 수행할 수 있는 서비스 역할에 이 정책을 연결합니다.

이 정책은 Amazon ECS 컨테이너 인스턴스가 사용자를 대신하여 AWS를 호출할 수 있도록 하는 관리 권한을 부여합니다. 자세한 정보는 Amazon ECS 컨테이너 인스턴스 IAM 역할 섹션을 참조하세요.

고려 사항

AmazonEC2ContainerServiceforEC2Role 관리형 IAM 정책을 사용할 때 다음 권장 사항 및 고려 사항을 고려해야 합니다.

  • 최소 권한 부여에 대한 표준 보안 권고 사항에 따라 특정 요구 사항에 맞게 AmazonEC2ContainerServiceforEC2Role 관리형 정책을 수정할 수 있습니다. 자신의 사용 사례에서 관리형 정책에서 부여된 권한이 필요하지 않은 경우 사용자 지정 정책을 생성하고 필요한 권한만 추가합니다. 예를 들어 UpdateContainerInstancesState 권한은 스팟 인스턴스 드레이닝에 제공됩니다. 자신의 사용 사례에 이 권한이 필요하지 않은 경우 사용자 지정 정책으로 해당 권한을 제외하세요. 자세한 정보는 권한 세부 정보 섹션을 참조하세요.

  • 컨테이너 인스턴스에서 실행되는 컨테이너는 인스턴스 메타데이터를 통해 컨테이너 인스턴스 역할에 제공된 모든 권한에 액세스할 수 있습니다. 컨테이너 인스턴스 역할의 권한을 관리형 AmazonEC2ContainerServiceforEC2Role 정책에서 제공된 최소 권한 목록으로 제한하는 것이 좋습니다. 태스크의 컨테이너에 나열되지 않은 추가 권한이 필요할 경우, 이러한 태스크에 자체 IAM 역할을 제공하는 것이 좋습니다. 자세한 정보는 작업에 대한 IAM 역할 섹션을 참조하세요.

    docker0 브리지의 컨테이너가 컨테이너 인스턴스 역할에 제공된 권한에 액세스하지 못하도록 할 수 있습니다. 컨테이너 인스턴스에서 다음iptables 명령을 실행하여 작업에 대한 IAM 역할에서 제공하는 권한을 계속 허용하면서 이 태스크를 수행할 수 있습니다. 컨테이너는 이 규칙을 적용한 상태에서는 인스턴스 메타데이터를 쿼리할 수 없습니다. 이 명령은 기본 Docker 브리지 구성을 가정하며, host 네트워크 모드를 사용하는 컨테이너에는 적용되지 않습니다. 자세한 정보는 네트워크 모드 섹션을 참조하세요.

    sudo yum install -y iptables-services; sudo iptables --insert FORWARD 1 --in-interface docker+ --destination 169.254.169.254/32 --jump DROP

    재부팅 시 이 iptables 규칙이 유지되게 하려면 규칙을 컨테이너 인스턴스에 저장해야 합니다. Amazon ECS 최적화 AMI의 경우 다음 명령을 사용합니다. 다른 운영 체제의 경우 해당 운영 체제 설명서를 참조하세요.

    • Amazon ECS 최적화 Amazon Linux 2 AMI:

      sudo iptables-save | sudo tee /etc/sysconfig/iptables && sudo systemctl enable --now iptables
    • Amazon ECS 최적화 Amazon Linux AMI:

      sudo service iptables save

권한 세부 정보

AmazonEC2ContainerServiceforEC2Role 관리형 IAM 정책에 다음 권한이 포함되어야 합니다. 최소 권한 부여에 대한 표준 보안 권고 사항에 따라 AmazonEC2ContainerServiceforEC2Role 관리형 정책을 가이드로 사용할 수 있습니다. 사용 사례에 대해 관리형 정책에서 부여한 권한이 필요하지 않은 경우 사용자 지정 정책을 생성하고 필요한 권한만 추가합니다.

  • ec2:DescribeTags – 보안 주체가 Amazon EC2 인스턴스와 연결된 태그를 설명할 수 있습니다. 이 권한은 Amazon ECS 컨테이너 에이전트가 리소스 태그 전파를 지원하는 데 사용합니다. 자세한 정보는 리소스에 태그 지정 섹션을 참조하세요.

  • ecs:CreateCluster – 보안 주체가 Amazon ECS 클러스터를 생성할 수 있습니다. 이 권한은 default 클러스터가 이미 존재하지 않는 경우 이를 생성하기 위해 Amazon ECS 컨테이너 에이전트에서 사용합니다.

  • ecs:DeregisterContainerInstance – 보안 주체가 클러스터에서 Amazon ECS 컨테이너 인스턴스의 등록을 취소할 수 있습니다. Amazon ECS 컨테이너 에이전트는 이 API를 호출하지 않지만 이전 버전과의 호환성을 보장하기 위해 이 권한을 유지합니다.

  • ecs:DiscoverPollEndpoint – 이 태스크는 Amazon ECS 컨테이너 에이전트가 업데이트를 폴링하는 데 사용하는 엔드포인트를 반환합니다.

  • ecs:Poll – Amazon ECS 컨테이너 에이전트가 Amazon ECS 제어 영역과 통신하여 태스크 상태 변경 사항을 보고할 수 있습니다.

  • ecs:RegisterContainerInstance – 보안 주체가 클러스터에 컨테이너 인스턴스를 등록할 수 있습니다. 이 권한은 Amazon EC2 인스턴스를 클러스터에 등록하고 리소스 태그 전파를 지원하기 위해 Amazon ECS 컨테이너 에이전트에서 사용합니다.

  • ecs:StartTelemetrySession – Amazon ECS 컨테이너 에이전트가 Amazon ECS 제어 영역과 통신하여 각 컨테이너 및 태스크에 대한 상태 정보 및 지표를 보고할 수 있습니다.

  • ecs:UpdateContainerInstancesState – 보안 주체가 Amazon ECS 컨테이너 인스턴스의 상태를 수정할 수 있습니다. 이 권한은 Amazon ECS 컨테이너 에이전트가 스팟 인스턴스 드레이닝에 사용합니다. 자세한 정보는 스팟 인스턴스 드레이닝 섹션을 참조하세요.

  • ecs:Submit* – 여기에는 SubmitAttachmentStateChanges, SubmitContainerStateChange, 및 SubmitTaskStateChange API 작업이 포함됩니다. 각 리소스의 상태 변경 사항을 Amazon ECS 제어 영역에 보고하기 위해 Amazon ECS 컨테이너 에이전트에서 사용합니다. SubmitContainerStateChange 권한은 Amazon ECS 컨테이너 에이전트에서 더 이상 사용하지 않지만 이전 버전과의 호환성을 보장하기 위해 유지됩니다.

  • ecr:GetAuthorizationToken – 보안 주체가 권한 부여 토큰을 검색할 수 있습니다. 권한 부여 토큰은 IAM 인증 자격 증명을 나타내며 IAM 보안 주체가 액세스할 수 있는 모든 Amazon ECR 레지스트리에 액세스하는 데 사용할 수 있습니다. 수신된 권한 부여 토큰은 12시간 동안 유효합니다.

  • ecr:BatchCheckLayerAvailability – 컨테이너 이미지가 Amazon ECR 프라이빗 리포지토리에 푸시되면 이미지가 이미 푸시되었는지 확인하기 위해 각 이미지 계층을 검사합니다. 이미지가 푸시되었다면 이미지 계층을 건너뜁니다.

  • ecr:GetDownloadUrlForLayer – Amazon ECR 프라이빗 리포지토리에서 컨테이너 이미지를 가져오면 아직 캐시되지 않은 각 이미지 레이어에 대해 이 API를 한 번 호출합니다.

  • ecr:BatchGetImage – Amazon ECR 프라이빗 리포지토리에서 컨테이너 이미지를 가져오면 이미지 매니페스트를 검색하기 위해 이 API를 한 번 호출합니다.

  • logs:CreateLogStream – 보안 주체가 지정된 로그 그룹에 대한 CloudWatch Logs 로그 스트림을 생성할 수 있습니다.

  • logs:PutLogEvents – 보안 주체가 로그 이벤트의 배치를 지정된 로그 스트림에 업로드할 수 있습니다.

다음은 예제 AmazonEC2ContainerServiceforEC2Role 정책입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeTags", "ecs:CreateCluster", "ecs:DeregisterContainerInstance", "ecs:DiscoverPollEndpoint", "ecs:Poll", "ecs:RegisterContainerInstance", "ecs:StartTelemetrySession", "ecs:UpdateContainerInstancesState", "ecs:Submit*", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }

AmazonEC2ContainerServiceEventsRole

이 정책은 Amazon EventBridge(이전의 CloudWatch Events)가 사용자를 대신하여 태스크를 실행할 수 있도록 허용하는 권한을 부여합니다. 이 정책은 예약된 태스크를 생성할 때 지정한 IAM 역할에 연결할 수 있습니다. 자세한 정보는 Amazon ECS CloudWatch Events IAM 역할 섹션을 참조하세요.

권한 세부 정보

이 정책에는 다음 권한이 포함되어 있습니다.

  • ecs – 서비스의 보안 주체가 Amazon ECS RunTask API를 호출할 수 있습니다.

  • iam – 모든 Amazon ECS 태스크에 IAM 서비스 역할을 전달할 수 있습니다.

다음은 예제 AmazonEC2ContainerServiceEventsRole 정책입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "*" ], "Condition": { "StringLike": { "iam:PassedToService": "ecs-tasks.amazonaws.com" } } } ] }

AmazonECSTaskExecutionRolePolicy

AmazonECSTaskExecutionRolePolicy 관리형 IAM 정책은 사용자를 대신하여 AWS API를 호출하기 위해 Amazon ECS 컨테이너 에이전트 및 AWS Fargate 컨테이너 에이전트에 필요한 권한을 부여합니다. 이 정책은 태스크 실행 IAM 역할에 추가할 수 있습니다. 자세한 정보는 Amazon ECS 태스크 실행 IAM 역할 섹션을 참조하세요.

권한 세부 정보

AmazonECSTaskExecutionRolePolicy 관리형 IAM 정책에 다음 권한이 포함되어야 합니다. 최소 권한 부여에 대한 표준 보안 권고 사항에 따라 AmazonECSTaskExecutionRolePolicy 관리형 정책을 가이드로 사용할 수 있습니다. 자신의 사용 사례에서 관리형 정책에서 부여된 권한이 필요하지 않은 경우 사용자 지정 정책을 생성하고 필요한 권한만 추가합니다.

  • ecr:GetAuthorizationToken – 보안 주체가 권한 부여 토큰을 검색할 수 있습니다. 권한 부여 토큰은 IAM 인증 자격 증명을 나타내며 IAM 보안 주체가 액세스할 수 있는 모든 Amazon ECR 레지스트리에 액세스하는 데 사용할 수 있습니다. 수신된 권한 부여 토큰은 12시간 동안 유효합니다.

  • ecr:BatchCheckLayerAvailability – 컨테이너 이미지가 Amazon ECR 프라이빗 리포지토리에 푸시되면 이미지가 이미 푸시되었는지 확인하기 위해 각 이미지 계층을 검사합니다. 이미지가 푸시되었다면 이미지 계층을 건너뜁니다.

  • ecr:GetDownloadUrlForLayer – Amazon ECR 프라이빗 리포지토리에서 컨테이너 이미지를 가져오면 아직 캐시되지 않은 각 이미지 레이어에 대해 이 API를 한 번 호출합니다.

  • ecr:BatchGetImage – Amazon ECR 프라이빗 리포지토리에서 컨테이너 이미지를 가져오면 이미지 매니페스트를 검색하기 위해 이 API를 한 번 호출합니다.

  • logs:CreateLogStream – 보안 주체가 지정된 로그 그룹에 대한 CloudWatch Logs 로그 스트림을 생성할 수 있습니다.

  • logs:PutLogEvents – 보안 주체가 로그 이벤트의 배치를 지정된 로그 스트림에 업로드할 수 있습니다.

다음은 예제 AmazonECSTaskExecutionRolePolicy 정책입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }

AWSApplicationAutoscalingECSServicePolicy

AWSApplicationAutoscalingECSServicePolicy를 IAM 엔터티에 연결할 수 없습니다. 이 정책은 Application Auto Scaling에서 사용자를 대신하여 태스크를 수행할 수 있도록 서비스 연결 역할에 연결됩니다. 자세한 정보는 Application Auto Scaling에 대한 서비스 연결 역할을 참조하세요.

AWSCodeDeployRoleForECS

AWSCodeDeployRoleForECS를 IAM 엔터티에 연결할 수 없습니다. 이 정책은 CodeDeploy에서 사용자를 대신하여 태스크를 수행할 수 있도록 서비스 연결 역할에 연결됩니다. 자세한 정보는 AWS CodeDeploy 사용 설명서CodeDeploy에 대한 서비스 역할 생성을 참조하세요.

AWSCodeDeployRoleForECSLimited

AWSCodeDeployRoleForECSLimited를 IAM 엔터티에 연결할 수 없습니다. 이 정책은 CodeDeploy에서 사용자를 대신하여 태스크를 수행할 수 있도록 서비스 연결 역할에 연결됩니다. 자세한 정보는 AWS CodeDeploy 사용 설명서CodeDeploy에 대한 서비스 역할 생성을 참조하세요.

AWS 관리형 정책에 대한 Amazon ECS 업데이트

이 서비스가 이러한 변경 내용을 추적하기 시작한 이후부터 Amazon ECS의 AWS 관리형 정책 업데이트에 대한 세부 정보를 봅니다. 이 페이지의 변경 사항에 대한 자동 알림을 받아보려면 Amazon ECS 문서 기록 페이지에서 RSS 피드를 구독하세요.

변경 사항 설명 날짜

Amazon ECS 변경 사항 추적 시작

Amazon ECS가 AWS 관리형 정책에 대한 변경 내용 추적을 시작했습니다.

2021년 6월 8일