Amazon ECS에 대한 IAM 모범 사례
AWS Identity and Access Management(IAM)를 사용하면 인증 및 권한 부여 목적의 규칙 기반 정책을 통해 AWS 서비스와 리소스에 대한 액세스를 관리하고 제어할 수 있습니다. 더 구체적으로는 이 서비스를 통해 사용자, 그룹 또는 역할에 적용되는 정책을 사용하여 AWS 리소스에 대한 액세스를 제어할 수 있습니다. 이 세 가지 중 사용자는 리소스에 액세스할 수 있는 계정입니다. 그리고 IAM 역할은 IAM 외부의 특정 ID와 연결되지 않은 인증된 ID가 수임할 수 있는 권한 집합입니다. 자세한 내용은 Amazon ECS 액세스 관리 개요: 권한 및 정책 섹션을 참조하세요.
최소 권한 액세스 정책 따르기
사용자가 규정된 작업을 수행할 수 있도록 범위를 지정한 정책을 생성하세요. 예를 들어 개발자가 작업을 정기적으로 중지해야 하는 경우 해당하는 특정 작업만 허용하는 정책을 만드세요. 다음 예제에서는 사용자가 특정 Amazon 리소스 이름(ARN)을 갖는 클러스터의 특정 task_family
에 속한 작업을 중지할 수만 있도록 허용합니다. 조건에서 ARN을 참조하는 것은 리소스 수준 권한을 사용하는 예이기도 합니다. 리소스 수준 권한을 사용하면 작업을 적용할 리소스를 지정할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:StopTask" ], "Condition": { "ArnEquals": { "ecs:cluster": "arn:aws:ecs:
region
:account_id
:cluster/cluster_name
" } }, "Resource": [ "arn:aws:ecs:region
:account_id
:task-definition/task_family
:*" ] } ] }
클러스터 리소스가 관리 경계 역할 수행
정책의 범위가 너무 좁으면 역할이 너무 많아지고 관리 오버헤드가 증가할 수 있습니다. 특정 작업이나 서비스로만 범위가 지정된 역할을 생성하는 대신 클러스터로 범위가 지정된 역할을 만들고 클러스터를 기본 관리 경계로 사용하세요.
API에서 최종 사용자를 격리하도록 자동화된 파이프라인 생성
자동으로 애플리케이션을 패키징하고 Amazon ECS 클러스터에 배포하는 파이프라인을 생성하여 사용자가 사용할 수 있는 작업을 제한할 수 있습니다. 이렇게 하면 작업을 생성, 업데이트 및 삭제하는 작업이 파이프라인에 실제로 위임됩니다. 자세한 내용은 사용 AWS CodePipeline 사용 설명서에서 Tutorial: Amazon ECS standard deployment with CodePipeline을 참조하세요.
보안 계층 추가를 위한 정책 조건 사용
추가 보안 계층이 필요한 경우 정책에 조건을 추가하세요. 이는 권한 있는 작업을 수행하는 경우나 특정 리소스에 대해 수행할 수 있는 작업 집합을 제한해야 하는 경우에 유용할 수 있습니다. 다음 예제 정책에서는 클러스터를 삭제할 때 멀티 팩터 권한 부여를 요구합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DeleteCluster" ], "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } }, "Resource": ["*"] } ] }
서비스에 적용된 태그는 해당 서비스에 속하는 모든 작업으로 전파됩니다. 따라서 특정 태그를 사용하여 Amazon ECS 리소스로 범위를 지정한 역할을 생성할 수 있습니다. 다음 정책에서는 IAM 보안 주체가 태그 키가 Department
이고 태그 값이 Accounting
인 모든 태스크를 시작하고 중지합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:StartTask", "ecs:StopTask", "ecs:RunTask" ], "Resource": "arn:aws:ecs:*", "Condition": { "StringEquals": {"ecs:ResourceTag/Department": "Accounting"} } } ] }
API에 대한 액세스를 주기적으로 감사
사용자가 역할을 변경할 수 있습니다. 역할을 변경하면 이전에 부여된 권한은 더 이상 적용되지 않을 수 있습니다. 누가 Amazon ECS API에 액세스할 수 있고, 해당 액세스가 여전히 적절한지 감사해야 합니다. 사용자가 조직을 떠나면 액세스 권한이 자동으로 취소되도록 IAM을 사용자 수명 주기 관리 솔루션과 통합하는 것이 좋습니다. 자세한 내용은 AWS Identity and Access Management 사용 설명서의 AWS 보안 감사 지침을 참조하세요.