1. IAM이란?
AWS에서 누가, 무엇을 할 수 있는지를 정해주는 보안 관리자라고 생각하면 된다.
예를 들어, 집의 문에 “누구는 현관까지만, 누구는 방까지 들어올 수 있음” 이런 식으로 권한을 정하는 역할이다.
2. 핵심 구성 요소
- 사용자(User) → AWS에 로그인해서 직접 쓰는 사람(계정).
- 그룹(Group) → 비슷한 역할을 하는 사용자들을 묶어 한 번에 권한을 주는 것. (예: 개발자 그룹, 운영자 그룹)
- 역할(Role) → 사람이 아닌 AWS 서비스(예: EC2, Lambda)가 대신 AWS 자원에 접근할 수 있도록 주는 “임시 권한 배지”.
- 정책(Policy) → “이 리소스에서 이 행동을 허락한다/거부한다”라고 적어둔 규칙 문서(JSON).
3. 보안 모범 사례
- 루트 계정은 거의 쓰지 말기 → 처음 계정 만들 때 생기는 슈퍼 계정인데, 결제 관리 같은 꼭 필요한 일에만 사용.
- MFA(2단계 인증) 꼭 켜기 → 비밀번호 외에 OTP 같은 추가 인증을 넣어 보안 강화.
- 최소 권한만 주기 → “모든 권한”을 주지 말고 필요한 것만 허락하기.
- 권한 점검하기 → IAM Access Analyzer 같은 도구로 권한이 과도하지 않은지 확인.
4. IAM 정책과 권한 관리
- IAM은 기본적으로 모든 요청을 거부.
- 정책에 허용(Allow)이 있으면 접근 가능.
- 하지만 거부(Deny)가 명시돼 있으면 무조건 막힘.
- 예: S3 전체 권한(
s3:*) 대신, 정말 필요한 삭제 권한(s3:DeleteObject)만 주는 게 좋다.
5. IAM 활용 시나리오
(1) 계정 간 접근
- 내 AWS 계정에서 다른 AWS 계정 리소스도 써야 할 때, 역할(Role)을 통해 안전하게 접근 권한을 위임한다.
- 예: 개발 계정 → 운영 계정으로 코드 배포.
(2) 온프레미스(내 서버)와 연동
- IAM Roles Anywhere → 회사 서버나 로컬 서버에서도 AWS 리소스를 임시 권한으로 안전하게 접근.
- Permission Set (IAM Identity Center) → 일종의 권한 세트(템플릿). 사용자를 일일이 설정할 필요 없이 미리 만들어둔 권한을 적용.
- 기존 LDAP/IdP 연동 → 회사에서 쓰던 로그인 시스템(Okta, AD FS 등)과 AWS를 연결해서 한 번 로그인으로 같이 쓰기(SSO).
(3) Active Directory(AD) 통합
- AD Connector: AWS가 회사 AD에 프록시처럼 접근 → 사용자 인증 연동.
- AWS Managed Microsoft AD + Forest Trust: AWS에서 관리형 AD 운영 + 회사 AD와 서로 신뢰 관계 맺기.
- SAML Federation: AD FS 같은 시스템을 써서 브라우저 로그인으로 AWS 접근.