BLOG

[Tech blog] EC2 풀 액세스 권한을 위한 custom policy의 생성
작성일: 2024-05-20

들어가며

 

 

지난 블로그에서 보충 설명으로 IAM 정책을 만들 수 있다는 내용을 기재 했는데요,

 

AWS Managed Policy(AmazonEC2FullAccess 등)에서는 관련 다른 AWS 서비스도 허용되기 때문에 ‘EC2만의 풀 액세스 권한으로 하고 싶다’고 하는 경우에 custom policy를 생성하는 것으로 실현할 수 있습니다.

구체적으로는 다음과 같이 EC2 이외의 AWS 서비스 권한을 끄고

 

 

EC2만의 풀 액세스 권한으로 만든 케이스입니다.

 

 

이제 위의 사항을 충족하는 custom policy를 만들어 봅시다.

custom policy 생성(EC2 전용 풀 액세스 권한)

 

 

IAM 페이지로 이동하여 탐색 창(왼쪽 메뉴)에서 Policies를 클릭합니다. IAM 정책이 나열되면 오른쪽 상단의 Create policy를 클릭합니다.

 

 

Policy editor는 Visual을 선택합니다. 서비스 항목에 EC2를 입력하고 후보 리스트 확인 후, EC2를 선택합니다.

 

이번에 생성하는 custom policy는 EC2의 전체 액세스 권한이므로 All EC2 actions (ec2:*)를 선택합니다. EC2에 대한 모든 Action이 허용됩니다.

 

 

아래 쪽에 주의 표시로 ‘Required permissions not selected.(필요한 권한이 선택되어 있지 않습니다.)’ 라고 나오네요.

 

이것은 EC2측에서 허가한 Action 중에서 다른 Action도 허가해야 한다는 주의 문구 입니다.

 

1 more등을 클릭하면 상세가 표시되어 별도 허가가 필요한 Action을 확인할 수 있습니다.

(아래 그림 경우 IAM의 iam:PassRole이 필요함을 알 수 있습니다. )

* 다만, 이번에는 허가 설정을 진행 하지 않습니다.

 

 

리소스는 모두를 선택하고 오른쪽 하단의 다음을 클릭합니다.

 

 

Review and create 페이지에서 정책 이름을 결정하고 입력합니다.
만들려는 정책의 권한을 확인한 후 오른쪽 하단의 Create policy를 클릭합니다.

 

그런 다음 관리 콘솔 상단에 Policy [Policy name] created.가 표시되면 생성이 완료됩니다.

만들어진 custom policy 확인

 

 

IAM의 정책 페이지에서 정책 이름을 검색하면 생성한 정책(custom policy)을 확인할 수 있습니다.

 

* 저는 AmazonEC2FullAccess-EC2Only_CustomPolicy라는 이름으로 만들었습니다.

 

 

정책을 클릭하면 세부 정보가 표시됩니다. EC2의 Full access만 되어있는 것을 확인할 수 있었습니다.

 

생성한 custom policy의 동작 확인

 

 

바로 test-user에 붙여 보았습니다.

 

 

EC2 이외의 AWS 서비스는 경고를 표시하고 내용을 확인할 수 없습니다.

 

EC2의 페이지로 이동해 보면, 이미 Auto Scaling Groups와 Load balancers의 수를 표시할 수 없어 에러를 나타내고 있네요. (* 권한이 있으면 표시됩니다)

 

 

EC2 인스턴스 Monitoring의 경우 CloudWatch 권한이 없으므로 그래프를 볼 수 없습니다.

 

 

To view this widget you need cloudwatch:GetMetricData because no identity-based policy allows the cloudwatch:GetMetricData action permission.

 

(이 위젯을 표시하기 위해서는 cloudwatch:GetMetricData 액션 권한을 허가하는 ID기준의 정책이 없기 때문에 cloudwatch:GetMetricData가 필요합니다.)

 

참고로 IAM 권한도 없기 때문에, IAM의 페이지에서도 에러가 발생하여, 자신에게 어떤 권한이 있는지 모릅니다.

 

 

EC2 인스턴스의 동작이나 정지, EBS의 생성 등은 가능하므로, EC2만의 심플한 조작이면 문제 없을 것 같습니다.

 

Monitoring에 대해서는 AWS외의 감시 솔루션으로 실시하는 방법도 있지 않을까 싶습니다.

결론

 

 

필요한 권한만 설정하는 것이 베스트 프랙티스입니다만, 어떤 권한이 필요한지 파악하는 것이 과제가 될 것 같네요.

 

세밀하면 좋다고 생각하지만, 너무 세세하게 하면 관리자가 바뀌었을 때 대응할 수 없게 되는 경우가 많기 때문에 요건이나 운용 정책도 같이 검토가 필요할 것 같습니다.

 

 

*원문[일문] 바로보기 : https://qiita.com/Bibulous/items/8ab3eddb7c8760a0a99b

Written by Kawana Masahiro, Megazone Japan 

Translated by 메가존클라우드 Cloud Technology Center 박지은 매니저