유틸리티/Cloud

AWS의 IAM(Identity and Access Management)

easyfly 2025. 10. 10. 17:31
반응형

AWS의 IAM(Identity and Access Management)


‘사용자와 권한을 안전하게 관리하는 서비스’입니다.
쉽게 말해 “누가(AWS 사용자)가 무엇을(AWS 리소스)에 어느 정도까지 할 수 있는가”를 제어하는 보안의 핵심입니다.


1. IAM의 핵심 개념

구성 요소 설명
사용자(User) AWS에 접근하는 개별 계정(사람 또는 애플리케이션).
그룹(Group) 여러 사용자를 묶어 동일한 권한을 부여할 수 있는 단위.
역할(Role) 사용자 대신 임시로 권한을 위임받는 가상 신분. EC2, Lambda 등이 자주 사용.
정책(Policy) JSON 형식의 권한 규칙. ‘어떤 리소스에 대해 어떤 작업을 허용/거부할지’를 명시.

2. IAM의 주요 기능

  1. 세분화된 접근 제어
    • “S3 버킷 목록 보기만 허용”, “EC2 시작 금지”처럼 세밀하게 설정 가능.
    • 최소 권한 원칙(Principle of Least Privilege)에 따라 필요한 권한만 부여합니다.
  2. MFA(다중 인증)
    • 비밀번호 외에 스마트폰 OTP(또는 보안 키)로 추가 인증을 요구하여 계정 보안을 강화합니다.
  3. 임시 자격 증명 (STS)
    • 일시적인 접근 권한을 부여하여, 외부 애플리케이션이나 다른 AWS 계정에서도 안전하게 접근 가능.
  4. 액세스 키 관리
    • 프로그래밍 방식 접근(AWS CLI, SDK 등)을 위한 키를 발급·회전·비활성화할 수 있습니다.

3. IAM을 사용하는 이유

  • 보안 강화: 루트 계정을 직접 쓰지 않고, 역할별 사용자로 구분.
  • 감사와 추적: CloudTrail과 연동되어 누가 어떤 작업을 했는지 기록.
  • 정책적 일관성: 조직 내 동일한 권한을 여러 사용자에게 쉽게 배포.
  • 자동화와 통합: EC2, Lambda, S3 등 다른 AWS 서비스와 안전하게 연결.

4. IAM 구성 예시

역할 권한 비고
AdminUser 모든 리소스 관리 (AdministratorAccess) 시스템 관리자용
Developer EC2 시작/중지, S3 접근 개발자 그룹
ReadOnlyUser 읽기 전용 (ReadOnlyAccess) 외부 감사인 등
EC2RoleForS3 EC2에서 S3 업로드 가능 역할(Role) 기반 접근

5. IAM 보안 모범 사례

  1. 루트 계정은 잠그고 MFA 필수 설정
  2. 모든 사용자는 개인 계정으로 로그인
  3. 권한은 역할(Role)과 그룹(Group)으로 관리
  4. 정책은 최소 권한 원칙으로 작성
  5. CloudTrail로 모든 API 호출 로깅
  6. 주기적인 액세스 키 회전 및 사용 여부 점검

6. IAM 콘솔에서의 주요 경로

  • 사용자(User): IAM → Users → Add user
  • 그룹(Group): IAM → User groups
  • 역할(Role): IAM → Roles → Create role
  • 정책(Policy): IAM → Policies → Create policy
  • MFA 설정: IAM → Users → Security credentials

7. 한 줄 요약

IAM은 AWS의 ‘문지기’입니다.
올바른 권한 설계와 보안 설정을 통해
클라우드 자원을 안전하게 지키는 첫걸음입니다.