| [Glossary] IAM 완벽 정리 | Identity and Access Management를 쉽게 이해하는 법 |
한 줄 요약: IAM(Identity and Access Management)이란, 클라우드 환경에서 사용자·서비스·애플리케이션이 어떤 리소스에 어떤 방식으로 접근할 수 있는지를 중앙에서 정의하고 관리하는 보안 프레임워크이다.
1. IAM이란 무엇인가?
건물 출입 시스템을 떠올려 보세요. 직원마다 출입증이 있고, 직급에 따라 열 수 있는 문이 다릅니다. 일반 직원은 사무실만, 관리자는 서버실도, CEO는 모든 구역에 출입할 수 있습니다. IAM은 클라우드에서 이 출입 시스템 역할을 합니다.
IAM은 세 가지 핵심 질문에 답합니다:
- 누구인가? (Identity) — 사용자, 서비스 계정, 역할
- 무엇을 할 수 있나? (Access) — 읽기, 쓰기, 삭제, 실행
- 어떤 리소스에? (Resource) — S3 버킷, EC2 인스턴스, 데이터베이스
2. 핵심 개념 이해하기
IAM의 핵심 구성 요소 (AWS 기준)
| 구성 요소 | 설명 | 예시 |
|---|---|---|
| User | 개별 사람 또는 애플리케이션 계정 | alice@company.com |
| Group | 유사 권한을 가진 사용자 묶음 | developers, admins |
| Role | 특정 상황에서 임시로 맡는 권한 | EC2-S3-ReadOnly |
| Policy | JSON으로 작성된 권한 정의 | S3 읽기 허용 정책 |
정책(Policy) 구조
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-bucket",
"arn:aws:s3:::my-bucket/*"
],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "ap-northeast-2"
}
}
}
]
}
최소 권한 원칙 (Principle of Least Privilege)
IAM의 황금 법칙입니다. 업무 수행에 필요한 최소한의 권한만 부여해야 합니다.
❌ 나쁜 예: 개발자에게 AdministratorAccess 부여
✅ 좋은 예: 개발자에게 특정 S3 버킷 읽기 권한만 부여
AI 에이전트와 IAM
에이전틱 AI 시대에는 AI 에이전트도 IAM 주체가 됩니다:
AI 에이전트 → IAM Role 가정 → 특정 S3 버킷만 읽기 가능
→ RDS 접근 불가
→ 프로덕션 DB 삭제 불가
3. 실무 적용 예시
AWS boto3를 활용한 IAM 역할 관리 예시입니다.
import boto3
import json
iam = boto3.client('iam')
# AI 에이전트용 IAM 역할 생성
trust_policy = {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
# 역할 생성
role = iam.create_role(
RoleName="AIAgentRole",
AssumeRolePolicyDocument=json.dumps(trust_policy),
Description="AI 에이전트용 최소 권한 역할"
)
# 최소 권한 정책 연결
read_only_policy = {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:ListBucket"],
"Resource": ["arn:aws:s3:::ai-data-bucket/*"]
},
{
"Effect": "Deny",
"Action": ["s3:DeleteObject", "s3:PutObject"],
"Resource": ["*"]
}
]
}
iam.put_role_policy(
RoleName="AIAgentRole",
PolicyName="MinimalAccessPolicy",
PolicyDocument=json.dumps(read_only_policy)
)
print("AI 에이전트용 최소 권한 IAM 역할 생성 완료")
4. IAM vs 유사 개념 비교
| 구분 | IAM | RBAC | ABAC | Zero Trust |
|---|---|---|---|---|
| 권한 기준 | 리소스+작업 | 역할(Role) | 속성(Attribute) | 지속 검증 |
| 유연성 | 높음 | 중간 | 매우 높음 | 높음 |
| 관리 복잡도 | 중간 | 낮음 | 높음 | 높음 |
| 클라우드 네이티브 | ✅ | 부분 | 부분 | ✅ |
| 주요 사용 환경 | AWS/GCP/Azure | 기업 시스템 | 대규모 조직 | 제로트러스트 환경 |
5. 마치며
IAM은 클라우드 보안의 첫 번째 방어선입니다. 특히 AI 에이전트가 클라우드 리소스에 접근하는 에이전틱 AI 시대에는 IAM 설계가 더욱 중요해집니다. 에이전트에게는 반드시 최소 권한 원칙을 적용하고, 임시 자격증명(STS)을 활용해 보안을 강화하세요. 다음으로는 가드레일(Guardrail), 관측 가능성(Observability)을 함께 학습하면 AI 시스템 보안 설계 역량이 향상됩니다.
참고 자료
- AWS IAM 공식 문서 — AWS IAM 개념 및 모범 사례
- NIST 최소 권한 원칙 — 보안 원칙 공식 정의
함께 읽으면 좋은 용어
이 개념과 함께 알아두면 이해가 깊어지는 관련 용어들입니다.
댓글 남기기