[AWS] IAM 서비스 기초

임유진·2025년 7월 29일

클라우드/인프라

목록 보기
14/25
post-thumbnail

IAM이란?

  • IAM (Identity and Access Management)
    → AWS 리소스에 대한 사용자 접근 제어 및 권한 관리 서비스

    항목루트 유저IAM 유저
    권한전체 권한역할별 권한 제한 가능
    수량1명여러 명 생성 가능
    삭제❌ 불가⭕ 가능
    MFA설정 권장 (필수 아님)설정 권장
    API 호출❌ 불가⭕ 가능
    결제정보 접근⭕ 가능 (IAM 유저는 허용받아야 가능)❌ (기본 차단)
    • Access Key / Secret Key

    • IAM 사용자의 API 호출을 위한 자격 정보

    • Secret Key는 1회만 제공, 유출 금지

    • IAM 사용자는 기본적으로 결제(Billing) 접근 불가
      → 루트 계정에서 허용 설정 필요

  • 기능 요약:

    • 사용자, 그룹, 역할(Role), 정책(Policy) 생성 및 관리
    • AWS 서비스/리소스에 대한 액세스 허용/거부 제어
    • (누가, 언제, 어디서, 무엇을, 어떻게)을 바탕으로 세밀한 권한 설정 가능

IAM의 주요 기능

  • AWS 어카운트 관리 및 리소스/사용자/서비스의 권한제어
    - 서비스 이용을 위한 인증 정보 부여
  • 사용자의 생성 및 관리 및 계정의 보안
    - 사용자의 패스워드 정책 관리 (일정시간마다 패스워드 변경 등)
  • 다른 계정과의 리소스 공유
    - Edentity Federation(ex. Facebook, Google)
  • 계정 별칭 설정 가능
  • 전 세계 공통 서비스 (Global Service)리전과 무관하게 동작

IAM의 구성요소 (4대 요소)

구성요소설명
사용자(User)AWS를 사용하는 사람 또는 애플리케이션
그룹(Group)사용자 집합, 그룹에 부여된 권한은 구성원 전체에게 적용
정책(Policy)JSON 형식의 권한 설정 문서, 무엇을 할 수 있는지 정의
역할(Role)일시적으로 권한을 위임받아 수행할 수 있도록 하는 가상 권한 묶음 (ex. 다른 사용자나 서비스가 역할을 "입고" 작업 수행)

JSON이란?

  • 정책 문서를 구성하는 형식
  • JavaScript Object Notation의 약자
  • Key-Value 구조
  • 다양한 언어에서 사용 가능
{
  "Statement": {
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::example-bucket/*"
  }
}

IAM 권한 검증 절차

예: 사용자가 S3 접근 시

  1. 사용자에게 직접 정책이 부여되어 있는가?
  2. 사용자 소속 그룹에 정책이 부여되어 있는가?
  3. 사용자에게 부여된 역할에 정책이 있는가?

✅ 하나라도 만족 시 → 권한 있음
❌ 전부 부재 시 → 권한 없음


IAM 자격 증명 보고서 (Credential Report)

  • IAM 계정의 보안 상태를 요약한 CSV 보고서

  • 포함 정보:

    • 비밀번호 사용 여부/만료 여부
    • MFA 사용 여부
    • Access Key 사용 이력
    • 사용자 생성일 등
  • 4시간마다 생성 가능

  • 콘솔, CLI, API 모두 지원

  • 보안 감사, 자동화, 상태 점검에 유용

IAM 보안 모범 사례

  1. 루트 사용자 사용 지양 (관리 작업만)
  2. IAM 사용자 기반으로 작업
  3. 불필요한 사용자/정책은 즉시 삭제
  4. 그룹 + 정책 조합으로 사용자 관리
  5. 권한 최소화 원칙 적용 (Least Privilege)
  6. MFA 설정 필수 (루트, 관리자 계정 등)
  7. Access Key 대신 역할(Role) 사용 권장
  8. 자격 증명 보고서 활용해 주기적 보안 점검

참고

profile
말하는 고구마

0개의 댓글