AWS를 처음 시작하면 가장 먼저 마주치는 서비스 중 하나가 IAM이다.
EC2나 S3보다 먼저 설정해야 하고,
“이걸 왜 이렇게 까다롭게 나누지?”라는 생각도 들 수 있다.
하지만 IAM은
AWS 계정 보안의 핵심이자 모든 서비스의 출발점이다.
이번 글에서는 AWS를 사용하기 전에 반드시 이해해야 할
IAM의 기본 개념과 구성 요소를
최대한 쉽게 정리해본다.
1. IAM이란 무엇인가?
IAM은 다음 한 문장으로 정리할 수 있다.
IAM = AWS에서 누가, 무엇을, 어디까지 할 수 있는지를 관리하는 서비스
IAM은
서버를 생성하거나 저장소를 만드는 서비스가 아니다.
대신,
- 누가 AWS에 로그인할 수 있는지
- 어떤 AWS 서비스를 사용할 수 있는지
- 어디까지 접근 가능한지
를 관리한다.
즉,
AWS 리소스에 대한 접근 권한을 통제하는 보안 서비스가 IAM이다.
2. IAM이 필요한 이유
AWS는 기본적으로
권한이 없으면 아무것도 할 수 없는 구조다.
만약 모든 사람이
하나의 계정, 하나의 권한으로 AWS를 사용한다면,
- 실수로 서버 삭제
- 데이터 유실
- 요금 폭탄
- 사고 발생 시 책임 추적 불가
같은 문제가 발생할 수 있다.
그래서 AWS는
IAM을 통해 권한을 세분화하고 통제하는 방식을 사용한다.
필요한 사람에게
필요한 권한만
필요한 만큼만
이게 IAM의 핵심 철학이다.
3. Root 사용자란?
AWS 계정을 처음 생성하면
자동으로 하나의 계정이 만들어진다.
이 계정이 바로 Root 사용자다.
Root 사용자의 특징
- 계정 생성과 동시에 자동 생성
- AWS 모든 서비스에 대한 무제한 권한
- 결제 정보, 계정 설정 변경 가능
- 권한 제한 불가능
즉,
Root 사용자 = AWS 계정의 주인
이라고 보면 된다.
4. Root 사용자는 왜 위험한가?
Root 사용자는
모든 권한을 가지고 있기 때문에 매우 강력하다.
하지만 동시에
탈취되었을 때의 위험도 가장 크다.
만약 Root 계정이 해킹되면,
- 모든 리소스 삭제
- 수백 대 서버 생성 → 요금 폭탄
- 계정 자체 탈취
까지 가능하다.
그래서 AWS에서는
Root 계정을 일상적인 작업에 사용하지 말 것을 강력히 권장한다.
5. MFA(Multi-Factor Authentication)는 필수다 (중요)
AWS를 처음 만들었을 때
가장 먼저 해야 할 보안 설정은 MFA 설정이다.
특히,
- Root 사용자
- 모든 권한을 가진 IAM 사용자
이 두 계정에는
반드시 MFA를 설정해야 한다.
MFA는 다음과 같이 정리할 수 있다.
MFA = 비밀번호 + 추가 인증 수단을 함께 사용하는 로그인 방식
즉,
- 비밀번호만 알아서는 로그인 불가능
- 추가 인증(OTP 등)이 있어야 접근 가능
AWS에서는 보통
인증 앱을 통한 일회용 코드(OTP)를 사용한다.
왜 MFA가 꼭 필요한가?
비밀번호는 생각보다 쉽게 유출될 수 있다.
- 피싱 메일
- 같은 비밀번호 재사용
- 깃허브에 실수로 키 업로드
- 악성 코드 감염
AWS 계정은
털리는 순간 피해 규모가 커진다.
그래서 AWS는
Root 사용자에는 MFA를 사실상 필수 보안 설정으로 취급한다.
실무에서는 보통,
- Root 계정: MFA 설정 후 거의 사용하지 않음
- 실제 작업: IAM 사용자로 수행
이 패턴을 사용한다고 한다.
6. IAM 사용자(User)
IAM 사용자는
AWS에서 실제 작업을 수행하는 주체다.
사람일 수도 있고,
애플리케이션일 수도 있다.
IAM 사용자의 특징
- 직접 생성해야 함
- 기본적으로 권한 없음
- 정책을 통해 권한 부여
- 콘솔 로그인 또는 API 접근 가능
중요한 점은
IAM 사용자는 생성만 하면 아무것도 할 수 없다는 것이다.
반드시 권한을 따로 부여해야 한다.
7. 그룹(Group)
그룹은
IAM 사용자들의 묶음이다.
그룹을 사용하는 이유는 단순하다.
- 사용자마다 권한을 따로 관리하기 어렵기 때문
예를 들어,
- 개발자 그룹
- 운영자 그룹
- 읽기 전용 그룹
처럼 역할 기준으로 그룹을 만들고
그룹에 권한을 부여하는 방식으로 관리한다.
사용자는 그룹에 속함으로써
그룹의 권한을 그대로 상속받는다.
8. 역할(Role)
역할(Role)은
IAM에서 가장 헷갈리기 쉬운 개념이다.
한 문장으로 정리하면 다음과 같다.
Role = 특정 주체에게 잠시 빌려주는 권한
역할은
특정 사용자에 고정되지 않는다.
주로,
- EC2
- Lambda
- 기타 AWS 서비스
가 다른 AWS 리소스에 접근할 때 사용된다.
이 방식 덕분에
액세스 키를 코드에 직접 넣지 않아도 되며
보안이 크게 향상된다.

9. 정책(Policy)
정책은
“무엇을 할 수 있는지”를 정의한 규칙 문서다.
IAM의 실제 권한은
모두 정책으로 결정된다.
정책의 구성 요소
- Resource: 어떤 리소스인지
- Action: 어떤 행동인지
- Effect: 허용 또는 거부
- Condition: 조건(IP, 시간 등)
즉,
정책 = 권한 그 자체
라고 보면 된다.
다음과 같이 JSON형식으로 작성된다.

10. IAM 권한이 동작하는 방식
AWS는 요청이 들어오면
다음 순서로 권한을 검사한다.
- 요청을 보낸 주체 확인
- 사용자/그룹 정책 확인
- 역할(Role)이 있다면 역할 정책 확인
- 명시적 거부(Deny)가 있으면 무조건 거부
- 허용 정책이 있으면 실행
이 구조 덕분에
AWS는 매우 정교한 권한 제어가 가능하다.
마무리하며
이번 글에서는
AWS를 처음 시작할 때 반드시 알아야 할
IAM의 핵심 개념과 보안 원칙을 정리해보았다.
- Root 계정의 위험성
- MFA가 왜 필수인지
- IAM 사용자, 그룹, 역할, 정책의 역할
IAM은 처음엔 복잡해 보이지만,
차근차근 하나씩 이해해보길 바란다.
감사합니다.
'AWS' 카테고리의 다른 글
| [AWS] 클라우드 컴퓨팅과 AWS 기초 개념 정리 (0) | 2025.12.16 |
|---|
