본문 바로가기
데이터 적재 (Load)/데이터웨어하우스 ( Redshift, Snowflake )

AWS IAM 개념 정리 및 생성 이유

by goemgoem-i 2025. 1. 20.
반응형

IAM 이 뭐지?

요즘 aws 이것저것 만져보는데 계속 iam 만들라고 하니까 한 번 개념 정리해봤다

 

 

출처 : aws

IAM 이란?

AWS(Amazon Web Services)에서 사용자의 권한을 제어하고 리소스에 대한 액세스를 관리하기 위한 서비스

 

1. IAM을 생성하는 이유

  • 보안 강화를 위해: AWS 리소스에 대한 액세스를 세밀하게 제어하여 불필요한 접근을 방지하고, 데이터 유출 및 오용을 막기 위함.
  • 권한 분리: 조직 내에서 특정 역할(예: 개발자, 운영자, 관리자)에 따라 필요한 리소스만 접근하도록 설정.
  • 정확한 감사 및 추적: 모든 사용자 활동을 로깅하고 모니터링하여 누가 어떤 리소스를 액세스했는지 추적 가능.
  • 자동화 및 역할 기반 액세스: 특정 서비스(AWS Lambda, Redshift 등)나 애플리케이션이 AWS 리소스를 사용할 수 있도록 하는 자동화된 접근 제어.

2. IAM의 주요 개념

  • IAM 사용자(User): AWS 리소스에 접근할 수 있는 개별 사용자 계정 (e.g., 개발자, 운영자)
  • IAM 그룹(Group): 여러 사용자들을 그룹화하여 동일한 권한 부여 (예: ‘개발팀’ 그룹)
  • IAM 역할(Role): 특정 AWS 서비스나 외부 애플리케이션이 AWS 리소스를 사용할 수 있도록 권한 부여 (예: EC2에서 S3 접근)
  • IAM 정책(Policy): JSON 형식으로 작성된 권한 정의 문서로, 리소스에 대한 접근 권한을 명확하게 설정
    • 예: S3 버킷 읽기/쓰기 권한, Redshift 접근 권한 등

3. IAM의 활용 사례

AWS에서는 거의 모든 서비스와 통합되어 IAM을 활용할 수 있습니다. 몇 가지 주요 활용 사례는 다음과 같습니다:

(1) Redshift와의 연결

  • Redshift 클러스터에 접근하려면 데이터베이스 사용자뿐만 아니라 AWS 리소스에 접근할 수 있는 **IAM 역할(Role)**이 필요함.

 

 

(2) EC2에서 S3 접근

  • EC2 인스턴스가 S3에 접근하려면 접근 키를 코드에 직접 입력하는 대신, IAM 역할을 할당하여 보안 강화.
    • 예: 웹 애플리케이션이 S3에 이미지 업로드하는 경우
    • 인스턴스 프로파일을 통해 AWS SDK가 자동으로 권한 사용

(3) Lambda와 DynamoDB 연동

  • AWS Lambda 함수가 DynamoDB 테이블에 데이터를 저장하거나 조회할 수 있도록 IAM 역할을 부여.
    • Lambda 실행 시 DynamoDB의 PutItem 권한만 부여하여 최소 권한 원칙 적용.

(4) CI/CD 파이프라인

  • AWS CodePipeline, CodeBuild에서 AWS 리소스를 안전하게 사용하기 위해 IAM 역할을 활용.
    • 빌드 프로세스에서 S3, ECR, ECS 등에 접근할 수 있도록 적절한 권한 설정.

(5) Cross-Account Access (교차 계정 접근)

  • 여러 AWS 계정을 운영하는 기업에서는 한 계정의 사용자나 서비스가 다른 계정의 리소스를 접근하도록 IAM 역할을 활용.
    • 예: 중앙 보안 계정에서 로깅 계정 접근 허용

4. IAM 권장 사항

  • 최소 권한 원칙(Least Privilege): 꼭 필요한 리소스와 작업에만 접근하도록 정책을 제한.
  • IAM 사용자 대신 IAM 역할 사용: 애플리케이션이나 서비스 간 액세스를 위해 자격 증명 대신 역할 부여.
  • MFA(Multi-Factor Authentication) 활성화: IAM 사용자 계정에 다중 인증 적용.
  • IAM 액세스 키 주기적 회전: 보안 강화를 위해 주기적으로 키를 변경.
반응형