AWS IAM이란? (Identity and Access Management)
IAM은 AWS에서 “누가(Who) 어떤 리소스에(What) 어떤 권한으로(How)” 접근할 수 있는지를 제어하는 보안의 핵심 서비스다.
AWS를 제대로 쓴다고 하면 IAM을 이해했는지부터 본다고 해도 과언이 아니다.
1) IAM이 왜 중요한가 (왜 나왔나)
AWS는:
- 콘솔
- CLI
- API
모두 권한이 있으면 무엇이든 할 수 있는 환경이다.
즉,
- 권한 관리가 허술하면
→ S3 전체 삭제
→ EC2 종료
→ 비용 폭탄
→ 보안 사고
그래서 AWS는 모든 접근을 IAM으로 통제하도록 설계했다.
🔑 핵심 원칙
“권한 없으면 아무것도 못 한다”
2) IAM 한 줄 정의
IAM은 AWS 리소스에 대한 접근을 사용자·역할·정책 기반으로 제어하는 인증/인가 서비스이다.
- 인증(Authentication): 너 누구냐?
- 인가(Authorization): 너 뭐까지 해도 되냐?
3) IAM의 핵심 구성 요소
(1) User (IAM 사용자)
- 사람(개발자, 운영자) 을 위한 계정
- 콘솔 로그인 / Access Key 사용 가능
❌ 실무에서는:
- EC2에 IAM User Access Key를 박아두는 건 안티패턴
(2) Group (그룹)
- 여러 User를 묶어서 권한 관리
- 예:
- DevGroup
- OpsGroup
- ReadOnlyGroup
실무 팁:
“User에 직접 정책 붙이지 말고 Group으로 관리”
(3) Role (역할)
- AWS 리소스가 AWS 리소스에 접근할 때 사용하는 권한
- Access Key 없이 동작
- 임시 자격증명(STS) 사용
대표 예시
- EC2 → S3 접근
- Lambda → DynamoDB 접근
- EKS Pod → S3 접근
[EC2]
└─ IAM Role (S3 접근 권한)
🔥 실무 핵심
“사람은 User, 서버는 Role”
(4) Policy (정책)
- 권한을 정의하는 문서 (JSON)
- Allow / Deny 기반
기본 구조
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
- Effect: 허용 / 거부
- Action: 어떤 행동
- Resource: 어떤 리소스
4) IAM Policy 종류
(1) Managed Policy
- AWS가 제공 (예: AmazonS3ReadOnlyAccess)
- 빠르지만 권한이 넓음
(2) Inline Policy
- 특정 User/Role에 직접 붙임
- 재사용성 ❌
(3) Customer Managed Policy ⭐
- 실무에서 가장 권장
- 재사용 가능 + 최소 권한 설계 가능
5) IAM 권한 평가 로직 (중요)
AWS는 권한을 이렇게 판단함:
- 명시적 Deny → 무조건 거부
- Allow가 있으면 허용
- 아무것도 없으면 기본 Deny
👉 “Deny가 Allow보다 항상 우선”
6) 실무 IAM 설계 예시
EC2가 S3에 업로드해야 할 때 ❌ 잘못된 방식
- IAM User 생성
- Access Key 발급
- EC2에 키 저장
✅ 올바른 방식
S3UploadRole
└─ s3:PutObject 권한
EC2
└─ S3UploadRole 연결
- 키 관리 ❌
- 보안 사고 위험 ↓
7) IAM 보안 베스트 프랙티스 ⭐
(1) Root 계정
- MFA 필수
- 일상 사용 ❌
(2) 최소 권한 원칙 (Least Privilege)
- 필요한 권한만 부여
- * 남발 금지
(3) MFA
- 콘솔 접근 User는 필수
(4) Access Key 관리
- 정기적 로테이션
- 가능하면 사용 자체를 줄이기 (Role 사용)
8) IAM + 다른 AWS 서비스 연계
EC2 + IAM
- Role 기반 접근
- S3, CloudWatch, SSM 접근
S3 + IAM
- Bucket Policy + IAM Policy 조합
ALB / RDS
- 직접 IAM 사용 X
- 간접적으로 서비스 접근 제어에 영향
'Infra&Cloud > AWS' 카테고리의 다른 글
| AWS-EC2(Elastic Compute Cloud) (0) | 2026.02.09 |
|---|---|
| AWS-S3(Amazon Simple Storage Service) (0) | 2026.02.08 |
| AWS-ALB(Application Load Balancer) (0) | 2026.02.08 |
| AWS-RDS(Relational Database Service) (0) | 2026.02.08 |
| AWS-SG(Security Group) (0) | 2026.02.08 |