IAM (Identity and Access Management)

기술노트
Admin (토론 | 기여)님의 2025년 8월 10일 (일) 14:44 판 (IT 용어 자동 업로드: IAM (Identity and Access Management))
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

IAM (Identity and Access Management)

비유로 쉽게 이해하기

IAM은 **'건물의 출입 관리 시스템'**과 같습니다. 건물의 관리자는 각 사람(사용자)에게 이름표(ID)를 주고, 직급(그룹)에 따라 출입증(권한)을 발급합니다. 사원증으로는 사무실만, 임원증으로는 임원실까지 들어갈 수 있듯, IAM은 어떤 사용자(User)나 서비스(EC2 등)가 어떤 AWS 자원(S3 버킷, RDS 데이터베이스 등)에 접근할 수 있는지 세밀하게 제어하는 역할을 합니다.

개요

AWS Identity and Access Management (IAM)는 AWS 서비스와 리소스에 대한 액세스를 안전하게 제어하기 위한 중앙 집중식 권한 관리 서비스입니다. IAM을 통해 '누가(Who)', '무엇을(What)', '어떻게(How)' 할 수 있는지 정의할 수 있습니다.

상세 설명

IAM은 사용자(User), 그룹(Group), 역할(Role), 정책(Policy)이라는 네 가지 핵심 구성요소로 이루어집니다.

  • 사용자(User): AWS와 상호작용하는 사람 또는 애플리케이션입니다.
  • 그룹(Group): 사용자의 집합으로, 그룹에 권한을 부여하면 소속된 모든 사용자가 동일한 권한을 갖게 되어 관리가 편리해집니다.
  • 정책(Policy): 특정 자원에 대한 허용(Allow) 또는 거부(Deny) 규칙을 정의한 JSON 형식의 문서입니다. 권한의 실체입니다.
  • 역할(Role): 특정 사용자나 AWS 서비스에 임시로 권한을 부여할 때 사용하는 메커니즘입니다. 예를 들어, EC2 인스턴스에 'S3 버킷에 파일을 쓸 수 있는 역할'을 부여할 수 있습니다.

보안을 위해, AWS는 꼭 필요한 최소한의 권한만 부여하는 '최소 권한 원칙(Principle of Least Privilege)'을 따를 것을 강력히 권장합니다.

왜 중요할까요?

  • 강력한 보안: AWS 계정에 대한 무단 접근을 막고, 각 사용자 및 서비스가 허가된 작업만 수행하도록 하여 보안을 강화합니다.
  • 중앙화된 관리: 모든 권한을 한 곳에서 관리하므로, 복잡한 시스템에서도 권한 현황을 파악하고 제어하기 쉽습니다.
  • 안전한 위임: Access Key 같은 장기 자격증명을 직접 공유하는 대신, 임시 권한을 부여하는 역할을 사용하여 다른 서비스나 사용자에게 안전하게 접근을 허용할 수 있습니다.

주요 특징

  • 세분화된 권한 제어: 특정 S3 버킷의 특정 폴더에만 접근을 허용하는 등 매우 세밀한 수준의 권한 설정이 가능합니다.
  • 다중 인증(MFA): 비밀번호 외에 OTP 같은 추가 인증 수단을 설정하여 계정 보안을 한층 더 강화할 수 있습니다.
  • 임시 보안 자격 증명: 역할을 통해 발급되는 임시 자격증명으로 보안 위험을 줄입니다.
  • AWS 계정의 기본 서비스: 추가 비용 없이 사용할 수 있습니다.

사용 사례

  • 신입 개발자에게는 코드 배포 권한만, 기획자에게는 데이터 조회 권한만 부여
  • EC2 인스턴스가 S3 버킷의 파일을 읽고 쓸 수 있도록 역할 부여
  • 다른 AWS 계정의 리소스에 접근할 수 있도록 크로스-계정 역할 설정
  • 모바일 앱 사용자가 자신의 S3 폴더에만 파일을 업로드하도록 임시 권한 부여

관련 서비스/용어

참고 자료