1. IAM이란 무엇인가요?
IAM은 AWS에서 '누가', '무엇을', '어디서' 사용할 수 있는지를 정해주는 보안 도구입니다. 말 그대로 사용자(identity)와 접근(access)을 관리(management)하는 시스템이에요.
비유:
회사에 출입할 때 사원증이 필요하죠?
또 사무실 안에서도 누구는 회의실만, 누구는 서버실까지 들어갈 수 있어요.
IAM은 AWS 안에서의 사원증과 출입 권한을 관리하는 시스템이라고 생각하면 됩니다.
2. 왜 IAM이 필요한가요?
AWS에는 서버(EC2), 저장소(S3), 데이터베이스(RDS), 인공지능 서비스 등 다양한 리소스가 있어요.
모든 사람이 이걸 다 쓸 수 있다면 위험하겠죠?
- IAM이 누가 어떤 리소스를 사용할 수 있는지 정해줍니다.
- 안전하고 효율적으로 클라우드를 사용할 수 있도록 도와줘요.
3. IAM의 구성요소
IAM에는 크게 다음과 같은 개념이 있습니다:
1) 사용자 (User)
- AWS 리소스를 사용할 수 있는 사람 혹은 시스템 계정
- 예:
dronesquare
라는 사람이 S3를 사용하려면 사용자 계정이 필요
2) 그룹 (Group)
- 여러 사용자를 하나로 묶은 것
- 예:
개발팀
, 운영팀
같은 그룹을 만들고, 거기에 권한을 부여
3) 역할 (Role)
- 특정 작업을 수행할 수 있도록 임시로 부여하는 권한 집합
- 주로 EC2나 Lambda 같은 AWS 서비스에게 권한을 줄 때 사용
- 예: EC2가 S3에 접근할 수 있도록 “S3 접근 역할”을 줌
4) 정책 (Policy)
- 권한을 정의하는 문서 (JSON 형식)
- 어떤 서비스(S3, EC2 등)를, 어떤 행동(읽기, 쓰기, 삭제 등)을 할 수 있을지 지정
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "*"
}
위 정책은 “모든 S3 버킷을 나열할 수 있다”는 뜻이에요.
4. IAM의 핵심 동작: 인증 vs 권한
- 인증 (Authentication): "당신이 누구인지 확인" – ID와 패스워드를 입력해 로그인하는 것
- 권한 (Authorization): "당신이 무엇을 할 수 있는지 확인" – 정책을 기반으로 접근 허용/차단
5. 실생활 예시
회사에서 홍길동
이라는 직원이 입사했을 때:
- IAM User로
honggildong
계정 생성
- 개발팀의 Group에 추가
- 해당 Group에는 S3와 EC2를 쓸 수 있는 Policy가 연결
- 만약 EC2 인스턴스가 S3 데이터를 가져와야 한다면, EC2에 Role을 부여
6. IAM의 특징
- 무료 서비스: IAM 자체는 비용이 들지 않음
- 정교한 권한 제어 가능: 최소 권한의 원칙(Least Privilege)
- Multi-Factor Authentication (MFA) 등 추가 보안 가능
7. 자격 증명(Credentials)은 뭔가요?
IAM 사용자에게 부여되는 인증 수단입니다.
즉, "이 사람이 정말 이 사람인지" AWS가 확인하기 위한 도구.
- 콘솔 로그인용 비밀번호
- Access Key (키 ID + 비밀 키): AWS CLI, SDK 등 프로그래밍 접근용
- MFA (Multi-Factor Authentication): 보안 강화를 위한 이중 인증
정리
개념 | 설명 |
---|
User | AWS 리소스를 쓰는 계정 |
Group | 사용자 모음 |
Role | 특정 작업을 위한 임시 권한 |
Policy | 권한을 정의한 문서 |
Credentials | 인증 수단 (비밀번호, 키 등) |
추가로, 실제 사용 예시나 IAM 설정 화면을 보고 싶다면 AWS 콘솔에서 IAM 대시보드를 열어보는 걸 추천합니다.