본문 바로가기
[AWS 기타]

IAM 사용자 와 EC2 역할의 차이는 무엇인가?

by SAMSUNG Metaverse-Cloud 2025. 4. 21.
반응형

 

우리가 AWS Cli 명령어 등을 통해서 내 AWS 리소스에 접속해서 명령어를 날리는 것에는 여러 방법이 있다.

그 중 첫번째가 AWS의 IAM 사용자를 만든 후 Access Key, Secret Key를 통해서 해당 사용자를 서버에 등록한 후에 사용하는 방법이다.

두번째 방법으로는 EC2에 Role을 부여하여 Role에 부여된 정책을 토대로 명령을 내리는 방법이 있다

 

각 방법에는 어떤 장, 단점이 있으며 어떤 방법을 권장할까? 한번 확인 해 보자 

 

 

IAM 사용자를 선택해야 하는 경우

  • 로컬 개발 환경이나 EC2 외부(온프레미스, 개인 PC)에서 AWS 리소스에 접근해야 하는 경우
  • 개별 사용자가 AWS CLI, SDK, Terraform 등을 사용해야 하는 경우
  • CI/CD 파이프라인에서 AWS 작업이 필요하고, EC2가 아닌 환경에서 실행되는 경우

 

EC2 IAM Role을 선택해야 하는 경우

  • EC2 내부에서 실행되는 애플리케이션이 AWS 리소스에 접근해야 하는 경우
  • Access Key를 저장하는 것이 보안상 위험할 수 있는 경우
  • EC2에 배포된 애플리케이션이 AWS SDK를 사용하여 S3, DynamoDB 등에 접근해야 하는 경우
  • EC2 기반의 Jenkins, 배치 서버, 마이크로서비스에서 AWS API를 호출해야 하는 경우

 

위와 같이 개별 사용자가 CLI, SDK, Terraform 등을 사용하는 경우에는 IAM 사용자를 써야 하지만

그렇지 않은 경우 즉 애플리케이션이 AWS 리소스를 접속하는 경우에는 EC2 IAM Role을 사용하는 것이 좋다.

 

아무래도 Accesskey와 Secret Key가 노출될 수 있는 위험이 있기에 IAM 사용자를 쓰는 것은 지양해야 한다. 

AWS를 사용하다 보면 이러한 역할, 보안 문제에 많이 직면하게 되는데 최대한 조심해서 사용하는 것이 안정적인 서비스를 유지하기 위해서도 필요하다. 

반응형