

# Amazon ECS 콘솔에 필요한 권한
<a name="console-permissions"></a>

최소 권한을 부여하는 모범 사례를 따르면, `AmazonECS_FullAccess` 관리형 정책을 사용자 고유의 사용자 지정 정책을 생성하기 위한 템플릿으로 사용할 수 있습니다. 이렇게 하면 특정 요구 사항에 따라 관리형 정책에서 권한을 제거하거나 추가할 수 있습니다. 자세한 내용은 *AWS Managed Policy 참조 안내서*의 [AmazonECS\$1FullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECS_FullAccess.html)를 참조하세요.

## IAM 역할을 생성하기 위한 권한
<a name="console-create-roles"></a>

작업을 완료하려면 다음 조치를 위한 추가 권한이 필요합니다.
+ 외부 인스턴스 등록 - 자세한 내용은 [Amazon ECS Anywhere IAM 역할](iam-role-ecsanywhere.md)을 참조하세요.
+ 작업 정의 등록 - 자세한 내용은 [Amazon ECS 태스크 실행 IAM 역할](task_execution_IAM_role.md)을 참조하세요.
+ 작업 예약에 사용할 EventBridge 규칙 생성 - 자세한 내용은 [Amazon ECS EventBridge IAM 역할](CWE_IAM_role.md)을 참조하세요.

이러한 권한을 Amazon ECS 콘솔에서 사용하려면 먼저 IAM에서 역할을 생성하여 이러한 권한을 추가할 수 있습니다. 역할을 생성하지 않으면 Amazon ECS 콘솔이 사용자를 대신하여 역할을 생성합니다.

## 클러스터에 외부 인스턴스를 등록하는 데 필요한 권한
<a name="register-external-instance"></a>

외부 인스턴스를 클러스터에 등록하고 새 외부 인스턴스(`ecsExternalInstanceRole`) 역할을 생성하려면 추가 권한이 필요합니다.

다음과 같은 추가 권한이 필요합니다.
+ `iam` – 보안 주체가 IAM 역할 및 연결된 정책을 생성 및 나열할 수 있습니다.
  + iam:AttachRolePolicy
  + iam:CreateRole
  + am:CreateInstanceProfile
  + iam:AddRoleToInstanceProfile
  + iam:ListInstanceProfilesForRole
  + iam:GetRole
+ `ssm` - 보안 주체가 외부 인스턴스를 Systems Manager에 등록할 수 있습니다.

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

다음 정책은 필요한 권한을 포함하여 `ecsExternalInstanceRole` 역할로 작업을 제한합니다.

------
#### [ JSON ]

****  

```
{
"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"
      }
    ]
}
```

------

## 작업 정의를 등록하는 데 필요한 권한
<a name="register-task-def"></a>

작업 정의를 등록하고 새 작업 실행(`ecsTaskExecutionRole`) 역할을 생성하려는 경우 추가 권한이 필요합니다.

다음과 같은 추가 권한이 필요합니다.
+ `iam` – 보안 주체가 IAM 역할 및 연결된 정책을 생성 및 나열할 수 있습니다.
  + iam:AttachRolePolicy
  + iam:CreateRole
  + iam:GetRole

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

다음 정책은 필요한 권한을 포함하여 `ecsTaskExecutionRole` 역할로 작업을 제한합니다.

------
#### [ JSON ]

****  

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

------

## Amazon Q Developer를 사용하여 콘솔에서 권장 사항을 제공하는 데 필요한 권한
<a name="amazon-q-permission"></a>

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

------
#### [ JSON ]

****  

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

------

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

------
#### [ JSON ]

****  

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

------

## 예약된 작업에 대한 EventBridge 규칙을 생성하는 데 필요한 권한
<a name="schedule-task"></a>

작업을 예약하고 새 CloudWatch Events 역할(`ecsEventsRole`)을 생성하려면 추가 권한이 필요합니다.

다음과 같은 추가 권한이 필요합니다.
+ `iam` - 보안 주체가 IAM 역할 및 연결된 정책을 생성 및 나열하고, Amazon ECS가 역할을 다른 서비스에 전달하여 역할을 수임하도록 허용할 수 있습니다.

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

다음 정책은 필요한 권한을 포함하여 `ecsEventsRole` 역할로 작업을 제한합니다.

------
#### [ JSON ]

****  

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

------

## 서비스 배포를 보는 데 필요한 권한
<a name="service-deployments"></a>

 최소 권한 부여의 모범 사례를 따는 경우 콘솔에서 서비스 배포를 보려면 추가 권한을 추가해야 합니다.

다음과 같은 조치에 대한 액세스 권한이 필요합니다.
+ ListServiceDeployments
+ DescribeServiceDeployments
+ DescribeServiceRevisions

다음과 같은 리소스에 대한 액세스 권한이 필요합니다.
+ 서비스
+ 서비스 배포
+ 서비스 개정

다음 예제 정책에는 필요한 권한이 있으며, 지정된 서비스로 조치가 제한됩니다.

`account`, `cluster-name` 및 `service-name`을 원하는 값으로 바꿉니다.

------
#### [ JSON ]

****  

```
{
"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 수명 주기 이벤트를 확인하기 위해 필요한 권한
<a name="required-permissions-view"></a>

수명 주기 이벤트를 보려면 다음의 권한이 필요합니다. 다음 권한을 역할에 인라인 정책으로 추가합니다. 자세한 내용은 [IAM 정책 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 섹션을 참조하세요.
+ events:DescribeRule
+ events:ListTargetsByRule
+ logs:DescribeLogGroups

------
#### [ JSON ]

****  

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

------

## Container Insights에서 Amazon ECS 수명 주기 이벤트를 활성화하기 위해 필요한 권한
<a name="required-permissions-configure"></a>

수명 주기 이벤트를 구성하려면 다음의 권한이 필요합니다.
+ events:PutRule
+ events:PutTargets
+ logs:CreateLogGroup

------
#### [ JSON ]

****  

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

------