AWS IAM 사용자도 조직 정보를 조회할 수 있다고?

— Delegated Administrator 권한 이해하기

AWS Control Tower 환경을 운영하다 보면, 사용자나 프로그램이 AWS Organizations의 정보를 어디까지, 어떻게 조회할 수 있는지가 보안 및 거버넌스 측면에서 매우 중요합니다.

최근 실제 사례를 통해, IAM 사용자 권한의 경계Delegated Administrator 역할의 영향력을 깊이 있게 들여다볼 기회가 있었습니다.


문제 상황: IAM 사용자가 조직 전체 계정을 조회?

Control Tower 기반의 AWS 환경에서는 여러 개의 OU(Organizational Unit) 와 계정이 존재합니다.

자원 수집용 프로그램이 설치되어 있고,

이 프로그램은 IAM 관리 계정 내 IAM 사용자 자격으로 실행되어 조직 내 여러 계정에서 ReadOnly 역할을 AssumeRole하려는 구조입니다.

그런데 의문이 생겼습니다.

“이 IAM 사용자는 Root OU에도 속하지 않는데,

어떻게 조직 전체의 계정 ID를 알고 AssumeRole을 시도한 걸까?”


CloudTrail 분석 결과

처음에는 AWS IAM Identity Center(구 SSO)를 통해 Assume된 세션이라고 생각했지만,

CloudTrail 로그에는 다음과 같은 정보가 기록되어 있었습니다:

  • eventSource: organizations.amazonaws.com
  • eventName: ListAccountsForParent, ListChildren, DescribeOrganization, 등
  • userIdentity.type: IAMUser
  • userName: 해당 IAM 사용자명

즉, 해당 사용자는 역할을 Assume하지 않고,

IAM 사용자 권한 자체로 AWS Organizations API를 호출한 것이었습니다.


원인: Delegated Administrator였던 관리 계정

조사 결과, 해당 IAM 관리 계정은 AWS Organizations의 Delegated Administrator 로 등록되어 있었습니다.

Delegated Administrator란?

AWS Organizations에서 Management Account는 특정 계정을

Delegated Administrator(위임된 관리자)로 등록할 수 있으며,

등록된 계정은 지정된 AWS 서비스에 대해 조직 전체 리소스를 조회 및 관리할 수 있습니다.

예:

  • AWS Config
  • AWS CloudFormation StackSets
  • AWS Security Hub
  • IAM Identity Center 등

핵심 포인트

Delegated Administrator 계정의 IAM 사용자도,

적절한 정책만 부여되어 있다면

organizations:* 계열 API를 Management Account 수준에 가깝게 호출할 수 있습니다.


호출된 AWS Organizations API 목록

API 이름설명
DescribeOrganization조직 전체 정보 조회
ListChildren루트 또는 OU 하위의 자식 계정/OU 조회
ListAccountsForParent특정 OU 소속 계정 조회
DescribeOrganizationalUnit특정 OU의 상세 정보 조회

이들 API를 조합하면 전체 OU 구조와 계정 ID를 거의 완벽하게 수집할 수 있습니다.


결론: IAM 사용자도 조직 API 호출 가능하다

초기에는 단순히 “이 계정이 조직 정보를 어떻게 알고 있지?”라는 의문에서 시작했지만,

해당 계정이 Delegated Administrator였다는 사실로 모든 것이 명확히 설명되었습니다.

핵심 결론:

Delegated Administrator로 등록된 계정의 IAM 사용자도

organizations:* 권한이 있다면 조직 전체 정보를 직접 조회할 수 있다.


보안 및 거버넌스 측면에서의 교훈

  • 🛡 Delegated Administrator 계정은 강력한 권한을 갖는다. ⇒ 그 내부의 IAM 사용자에게도 반드시 최소 권한 원칙(Least Privilege) 을 적용해야 함
  • 🚫 조직 정보 노출을 방지하려면 ⇒ organizations:* 관련 권한은 명확한 목적과 범위로 제한할 것
  • 🔍 CloudTrail은 실제 호출 주체를 식별하는 데 필수 ⇒ 단순한 정책 검토가 아닌 이벤트 기반 감사(Audit) 가 필요함

마무리하며

AWS 환경의 보안 설계는 단순히 정책을 부여하는 차원을 넘어,

조직 구조와 위임된 권한의 범위까지 세심하게 고려해야 합니다.

이번 사례는 IAM 사용자라도 Delegated Administrator 환경에서는

조직 수준의 API를 직접 호출할 수 있다는 점을 보여주었고,

향후 보안 정책 및 역할 설계 시 보다 정교한 권한 제어가 필요하다는 중요한 교훈을 남겼습니다.


참고 자료

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다