Amazon ECS 콘솔에 필요한 권한

Amazon ECS 콘솔에 필요한 권한

최소 권한(least privilege) 부여라는 모범 사례에 따라, AmazonECS_FullAccess 관리형 정책을 본인만의 사용자 지정 정책을 만들기 위한 템플릿으로 사용할 수 있어요. 그렇게 하면 특정 요구 사항에 따라 관리형 정책에서 권한을 빼거나 추가할 수 있습니다. 자세한 내용은 AWS Managed Policy Reference의 "AmazonECS_FullAccess"를 참고하세요.

출처: 문서

본문

최소 권한 부여라는 모범 사례에 따라, AmazonECS_FullAccess 관리형 정책을 본인만의 사용자 지정 정책을 만들기 위한 템플릿으로 사용할 수 있습니다. 그렇게 하면 특정 요구 사항에 따라 관리형 정책에서 권한을 빼거나 추가할 수 있어요.

IAM 역할 생성에 필요한 권한

다음 작업은 작업을 완료하기 위해 추가 권한이 필요합니다.

  • 외부 인스턴스 등록 — 자세한 내용은 "Amazon ECS Anywhere IAM role" 참고.
  • 태스크 정의 등록 — 자세한 내용은 "Amazon ECS task execution IAM role" 참고.
  • 태스크 스케줄링에 사용할 EventBridge 규칙 생성 — 자세한 내용은 "Amazon ECS EventBridge IAM Role" 참고.

Amazon ECS 콘솔에서 사용하기 전에 IAM에서 역할을 만들어 이러한 권한을 추가할 수 있습니다. 역할을 만들지 않으면 Amazon ECS 콘솔이 대신 만듭니다.

외부 인스턴스를 클러스터에 등록하는 데 필요한 권한

클러스터에 외부 인스턴스를 등록하면서 새 외부 인스턴스(ecsExternalInstanceRole) 역할을 만들려면 추가 권한이 필요합니다. 필요한 추가 권한은 다음과 같습니다.

  • iam — 주체가 IAM 역할과 연결된 정책을 생성·나열할 수 있게 합니다.
    • iam:AttachRolePolicy, iam:CreateRole, iam:CreateInstanceProfile, iam:AddRoleToInstanceProfile, iam:ListInstanceProfilesForRole, iam:GetRole
  • ssm — 주체가 외부 인스턴스를 Systems Manager에 등록할 수 있게 합니다.

참고: 기존 ecsExternalInstanceRole을 선택하려면 iam:GetRole과 iam:PassRole 권한이 있어야 합니다.

다음 정책은 필요한 권한을 포함하고, 액션을 ecsExternalInstanceRole 역할로 제한합니다.

{
"Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "iam:AttachRolePolicy",
              "iam:CreateRole",
              "iam:CreateInstanceProfile",
              "iam:AddRoleToInstanceProfile",
              "iam:ListInstanceProfilesForRole",
              "iam:GetRole"
          ],
          "Resource": "arn:aws:iam::*:role/ecsExternalInstanceRole"
      },
      {
          "Effect": "Allow",
          "Action": ["iam:PassRole","ssm:CreateActivation"],
          "Resource": "arn:aws:iam::*:role/ecsExternalInstanceRole"
      }
    ]
}

태스크 정의를 등록하는 데 필요한 권한

태스크 정의를 등록하면서 새 태스크 실행(ecsTaskExecutionRole) 역할을 만들려면 추가 권한이 필요합니다. 필요한 추가 권한은 다음과 같습니다.

  • iam — 주체가 IAM 역할과 연결된 정책을 생성·나열할 수 있게 합니다.
    • iam:AttachRolePolicy, iam:CreateRole, iam:GetRole

참고: 기존 ecsTaskExecutionRole을 선택하려면 iam:GetRole 권한이 있어야 합니다.

다음 정책은 필요한 권한을 포함하고, 액션을 ecsTaskExecutionRole 역할로 제한합니다.

{
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "iam:AttachRolePolicy",
            "iam:CreateRole",
            "iam:GetRole"
        ],
        "Resource": "arn:aws:iam::*:role/ecsTaskExecutionRole"
        }
    ]
}

Amazon Q Developer가 콘솔에서 추천을 제공하도록 하기 위한 권한

Amazon Q Developer가 Amazon ECS 콘솔에서 추천을 제공하려면 IAM 사용자 또는 역할에 올바른 IAM 권한을 활성화해야 합니다. codewhisperer:GenerateRecommendations 권한을 추가해야 합니다.

{
"Statement": [
      {
            "Sid": "AmazonQDeveloperPermissions",
            "Effect": "Allow",
            "Action": ["codewhisperer:GenerateRecommendations"],
            "Resource": "*"
        }
    ]
}

Amazon ECS 콘솔에서 인라인 채팅(inline chat)을 사용하려면 IAM 사용자 또는 역할에 올바른 IAM 권한을 활성화해야 합니다. q:SendMessage 권한을 추가해야 합니다.

{
"Statement": [
    {
        "Sid": "AmazonQDeveloperInlineChatPermissions",
        "Effect": "Allow",
        "Action": ["q:SendMessage"],
        "Resource": "*"
    }
  ]
}

스케줄링된 태스크용 EventBridge 규칙 생성에 필요한 권한

태스크를 스케줄링하면서 새 CloudWatch Events 역할(ecsEventsRole)을 만들려면 추가 권한이 필요합니다. 필요한 추가 권한은 다음과 같습니다.

  • iam — 주체가 IAM 역할과 연결된 정책을 생성·나열하고, Amazon ECS가 역할을 다른 서비스에 전달(pass)해 역할을 맡게(assume) 할 수 있게 합니다.

참고: 기존 ecsEventsRole을 선택하려면 iam:GetRole과 iam:PassRole 권한이 있어야 합니다.

다음 정책은 필요한 권한을 포함하고, 액션을 ecsEventsRole 역할로 제한합니다.

{
 "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "iam:AttachRolePolicy",
            "iam:CreateRole",
            "iam:GetRole",
            "iam:PassRole"
        ],
        "Resource": "arn:aws:iam::*:role/ecsEventsRole"
        }
    ]
}

서비스 배포를 보는 데 필요한 권한

최소 권한 부여라는 모범 사례를 따를 때, 콘솔에서 서비스 배포를 보려면 추가 권한을 추가해야 합니다. 다음 액션에 대한 접근이 필요합니다.

  • ListServiceDeployments, DescribeServiceDeployments, DescribeServiceRevisions

다음 리소스에 대한 접근이 필요합니다.

  • Service, Service deployment, Service revision

다음 예제 정책은 필요한 권한을 포함하고 액션을 지정된 서비스로 제한합니다. account, cluster-name, service-name을 본인의 값으로 바꿔 주세요.

{
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ecs:ListServiceDeployments",
            "ecs:DescribeServiceDeployments",
            "ecs:DescribeServiceRevisions"
        ],
        "Resource": [
            "arn:aws:ecs:us-east-1:123456789012:service/cluster-name/service-name",
            "arn:aws:ecs:us-east-1:123456789012:service-deployment/cluster-name/service-name/*",
            "arn:aws:ecs:us-east-1:123456789012:service-revision/cluster-name/service-name/*"
            ]
        }
   ]
}

Container Insights에서 Amazon ECS 수명주기 이벤트를 보는 데 필요한 권한

수명주기 이벤트를 보려면 다음 권한이 필요합니다. 다음 권한을 역할에 인라인 정책으로 추가하세요. 자세한 내용은 "Adding and Removing IAM Policies"를 참고하세요.

  • events:DescribeRule, events:ListTargetsByRule, logs:DescribeLogGroups
{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:DescribeRule",
        "events:ListTargetsByRule",
        "logs:DescribeLogGroups"
      ],
      "Resource": "*"
    }
  ]
}

Container Insights에서 Amazon ECS 수명주기 이벤트를 활성화하는 데 필요한 권한

수명주기 이벤트를 구성하려면 다음 권한이 필요합니다.

  • events:PutRule, events:PutTargets, logs:CreateLogGroup
{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "logs:CreateLogGroup"
      ],
      "Resource": "*"
    }
  ]
}

더 알아보기 (Learn more)

  • Amazon ECS IAM 권한과 관리형 정책에 대한 자세한 내용은 AWS 공식 문서를 참고해 주세요.