클라우드 IAM이란?
IAM(Identity and Access Management)은 클라우드 환경에서 누가(Who), 어떤 리소스에(What), 어떤 행위를(Action) 수행할 수 있는지를 제어하는 핵심 보안 서비스입니다. 정보보안기사 시험에서는 AWS IAM 정책 구조, 최소 권한 원칙, 역할 기반 접근 제어가 주요 출제 범위입니다.
IAM 핵심 개념
- User: 개별 사람 또는 서비스에 대한 영구적 자격증명(액세스 키 + 비밀 키)
- Group: 사용자 집합에 공통 권한 부여. 그룹에 정책 연결
- Role: 임시 자격증명 발급. EC2 인스턴스, Lambda 함수, 교차 계정 접근에 사용
- Policy: JSON 형식으로 허용/거부 행위 정의. Managed Policy vs Inline Policy
IAM 정책 평가 순서: 명시적 거부(Deny) > 명시적 허용(Allow) > 암묵적 거부(Default Deny)
최소 권한 원칙(Principle of Least Privilege)
필요한 권한만 부여하는 보안 원칙입니다. 구현 방법:
- AWS Access Analyzer: 실제 사용된 서비스와 액션 분석 후 최소 권한 정책 생성
- 권한 경계(Permission Boundary): 역할이나 사용자가 가질 수 있는 최대 권한 상한선 설정
- SCPs(Service Control Policies): AWS Organizations에서 계정/OU 수준의 가드레일
역할 기반 vs 속성 기반 접근 제어
- RBAC(Role-Based Access Control): 역할에 권한 부여 후 사용자를 역할에 할당. 관리 단순화. AWS IAM Role이 대표적
- ABAC(Attribute-Based Access Control): 리소스와 사용자의 태그(속성) 기반 동적 권한 부여. “프로젝트=A 태그가 있는 사용자만 프로젝트A 리소스 접근”
교차 계정 접근과 AWS STS
Cross-Account 접근은 A 계정 사용자가 B 계정 리소스에 접근할 때 Trust Policy로 구현합니다. 영구 자격증명 대신 AssumeRole로 임시 자격증명을 발급받아 사용합니다.
AWS STS(Security Token Service)는 임시 보안 자격증명(AccessKeyId + SecretAccessKey + SessionToken)을 발급합니다. 기본 만료: 1시간, 최대: 12시간
- AssumeRole: IAM 역할 임시 자격증명 획득
- AssumeRoleWithWebIdentity: OIDC 제공자(Google, Cognito) 연동
- AssumeRoleWithSAML: SAML 2.0 기반 연동
쿠버네티스 Service Account
K8s의 Service Account는 파드가 API 서버와 통신하기 위한 ID입니다. RBAC으로 Role과 ClusterRole을 정의하고, RoleBinding과 ClusterRoleBinding으로 Service Account에 권한을 부여합니다. AWS IRSA(IAM Roles for Service Accounts)로 K8s SA와 AWS IAM Role을 연동합니다.
정보보안기사 기출 핵심 정리
- IAM 정책 평가: 명시적 Deny > 명시적 Allow > 암묵적 Deny
- Role = 임시 자격증명, User = 영구 자격증명
- ABAC: 태그 기반 동적 권한, RBAC: 역할 기반 정적 권한
- STS AssumeRole: 최대 12시간 임시 자격증명
- SCPs: 조직 수준 권한 상한선(가드레일)