본문으로 건너뛰기
김신건의 로그

[AWS] Organizations: 다중 계정 거버넌스

· 수정 · 📖 약 4분 · 1,472자/단어 #aws #cloud #organizations #governance #iam #multi-account
AWS Organizations, Organizations, AWS Org, Service Control Policy, Resource Control Policy, Organizational Unit, Consolidated Billing

정의

AWS Organizations여러 AWS 계정을 하나의 조직으로 통합 관리 하는 서비스. 계정을 계층 (OU) 으로 묶고, 정책 (SCP, RCP, Tag, Backup, AI opt-out) 으로 가드레일을 부여하며, 통합 결제로 비용을 합산.

핵심 3가지:

  1. 통합 결제 (Consolidated Billing) - 볼륨 할인 합산, RI/Savings Plans 공유
  2. OU (Organizational Unit) - 계층적 계정 그룹
  3. 정책 가드레일 - SCP (권한 상한), RCP (리소스 상한) 등

구성

Organization Root
├── Management Account (관리 계정, root user 소유)
│   └── (모든 정책 관리, SCP 적용 안 됨)

├── OU: Security
│   ├── LogArchive Account
│   └── Audit Account

├── OU: Prod
│   ├── prod-app-a Account
│   ├── prod-app-b Account
│   └── OU: Prod-Sandbox
│       └── prod-sandbox Account

└── OU: Dev
    ├── dev-team-a Account
    └── dev-team-b Account
  • Management Account: 조직 생성/정책 관리. SCP 미적용.
  • Member Account: SCP/RCP 등 정책 적용 대상.
  • OU: 최대 5단계 중첩 가능. 계정은 정확히 하나의 OU 에 속함.

SCP (Service Control Policy)

주체 (principal) 의 최대 권한을 정의하는 조직 정책.

// 특정 리전만 허용 (Deny list 전략)
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllOutsideAllowedRegions",
      "Effect": "Deny",
      "NotAction": [
        "iam:*", "sts:*", "organizations:*",
        "cloudfront:*", "route53:*", "waf:*",   // 전역 서비스 제외
        "support:*", "trustedadvisor:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": ["ap-northeast-2", "us-east-1"]
        }
      }
    }
  ]
}

중요 특성:

  • 권한을 부여하지 않는다 - 허용해도 IAM 허용이 별도로 필요
  • 관리 계정에는 적용 안 됨
  • 부착 대상: Root / OU / 계정
  • 두 전략:
    • Deny list (기본): FullAWSAccess + 특정 Deny
    • Allow list: 명시 허용만

대표 시나리오:

  • 특정 리전 사용 원천 차단 (aws:RequestedRegion)
  • 루트 사용자 특정 작업 금지
  • 특정 서비스 전면 차단
  • 태그 없는 리소스 생성 금지

RCP (Resource Control Policy)

리소스 (resource) 의 최대 권한을 정의하는 조직 정책 (2024 도입).

// 특정 계정 이외의 principal 이 버킷 정책으로 접근 못 하도록
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "EnforceOrgIdentities",
      "Effect": "Deny",
      "Principal": "*",
      "Action": ["s3:*"],
      "Resource": "*",
      "Condition": {
        "StringNotEqualsIfExists": {
          "aws:PrincipalOrgID": "o-xxx"
        }
      }
    }
  ]
}

SCP vs RCP:

  • SCP = 계정 안의 IAM principal (누가) 의 상한
  • RCP = 계정 안의 resource (무엇에) 의 상한

대표 시나리오:

  • OU 전체 S3 버킷이 실수로 퍼블릭 되지 않도록
  • 조직 밖 principal 의 KMS 키 사용 차단
  • 특정 리소스 태그 없이 접근 금지

정책 평가 로직 (핵심)

여러 정책이 얽힐 때 허용/거부 결정 순서:

① 명시적 Deny 확인 → 있으면 즉시 거부 (short-circuit)
② RCP (조직 리소스 상한) → 통과해야 함
③ SCP (조직 계정 상한) → 통과해야 함
④ 리소스 기반 정책 → 허용 확인
⑤ 자격 증명 기반 정책 → 허용 확인
⑥ 권한 경계 → 통과해야 함
⑦ 세션 정책 → 통과해야 함
→ 최종: Deny 없고 + 최소 하나의 Allow + 모든 상한 통과 → 허용

대원칙:

  • 명시적 Deny > 명시적 Allow > 암묵적 Deny
  • 부여 정책 (identity + resource-based) = 합집합
  • 상한 정책 (SCP, RCP, boundary, session) = 교집합

자세히: IAM 정책 평가.

정책 종류 비교

정책부착 대상권한 부여?범위
자격 증명 기반사용자/그룹/역할O개별 주체
리소스 기반S3, SQS, KMS 등O + 교차 계정리소스
권한 경계사용자/역할X (상한만)개별 주체
SCPRoot/OU/계정X (상한만)계정 내 모든 주체
RCPRoot/OU/계정X (상한만)계정 내 모든 리소스
세션 정책역할 수임 세션X (상한만)임시 세션

IMPORTANT

권한을 부여 하는 것은 자격 증명/리소스 기반 정책뿐. 나머지는 상한만 정하고 권한을 주지 않음.

조직 정책 종류

정책 유형목적
SCP주체 권한 상한
RCP리소스 정책 상한 (2024+)
Tag Policy태그 표준화 (강제 태그, 값 형식)
Backup PolicyAWS Backup 정책 중앙 관리
AI Services Opt-outAI 서비스가 데이터를 학습에 사용 못하게
Chatbot PolicyAWS Chatbot 사용 제어 (2024+)
DeclarativeEC2 IMDSv2 강제 등 서비스별 선언 (2024+)

통합 결제 (Consolidated Billing)

  • 모든 멤버 계정 청구서 통합
  • 볼륨 할인 자동 합산 (S3 등 계층 할인)
  • RI (Reserved Instance)Savings Plans 자동 공유
  • 세금 목적 개별 계정 청구서도 확인 가능

AWS Control Tower

Organizations 기반으로 랜딩 존 (landing zone) 을 모범 사례대로 자동 구성.

포함:

  • Organizations + OU 계층 (Security, Prod, Sandbox 등)
  • CloudTrail 조직 전체 활성화
  • AWS Config 규칙 배포
  • LogArchive 계정 + Audit 계정 자동 프로비저닝
  • 가드레일 (Preventive = SCP / Detective = Config Rule) 세트

결과: 신규 계정 (Account Factory) 을 요청하면 자동으로 표준 규칙 적용된 상태로 생성.

서비스 활성화 (Trusted Access)

조직 안에서 여러 서비스가 계정 간 통합되도록 위임:

서비스조직 통합 시
CloudTrail조직 전체 trail 생성 (모든 계정 이벤트 수집)
Config조직 전체 규칙/aggregator
AWS Backup정책 중앙 관리
GuardDutyDelegated Admin 이 조직 전체 관리
Security Hub조직 전체 통합 대시보드
IAM Identity Center중앙 SSO
AWS RAM조직 내 리소스 공유 자동 승인
Service Catalog조직 전체 포트폴리오 공유

Delegated Administrator (위임 관리)

관리 계정을 최소한으로 유지하기 위해, 서비스별 관리를 다른 계정에 위임.

Management Account (관리 계정)
   └── Delegated Admin
       ├── Security Hub → Audit Account
       ├── GuardDuty → Audit Account
       ├── Config Aggregator → Audit Account
       └── Cost & Usage → Finance Account

일상 운영을 관리 계정에서 안 해도 되어 보안 위험 감소.

계정 라이프사이클

  • Account Factory (Control Tower) / CreateAccount API 로 프로비저닝
  • Root 이메일/이름 지정
  • 자동으로 조직 가입, 지정된 OU 로 이동
  • SCP/RCP 자동 상속
  • 삭제/이관은 별도 API + 이관 절차

함정

WARNING

SCP 는 관리 계정에 적용 안 됨. 관리 계정에서 위험한 작업이 가능. 관리 계정은 최소 사용, 위임 관리자 활용.

CAUTION

SCP 는 권한을 부여하지 않는다. Allow 만 있는 SCP 는 아무 일도 안 일어남 (가드레일일 뿐, IAM Allow 별도 필요).

WARNING

명시적 Deny 는 무엇으로도 못 뒤집는다. SCP/RCP/경계/리소스/자격 증명 어디든 Deny 가 있으면 그대로 거부.

IMPORTANT

전역 서비스 (IAM, CloudFront, Route53) 는 리전 제약 SCP 에서 예외 처리 필요. 안 하면 IAM 조작 자체가 막힐 수 있음.

CAUTION

OU 최대 5단계 중첩. 지나치게 깊은 계층은 관리 부담. 보통 2-3 단계 (Environment / Business Unit).

WARNING

RCP 는 신규 (2024+). 지원 서비스 목록 확인 필수 (S3, SQS, KMS, Secrets Manager, STS 부터 확장 중).

IMPORTANT

Control Tower 로 만든 랜딩 존을 임의 수정 = 다음 업데이트에서 롤백. 커스터마이징은 Account Factory Customization Framework (AFT) 로.

관련 위키

이 글의 용어 (7개)
[AWS] CloudTrail (API Activity Logging)cloud
정의 AWS CloudTrail 은 AWS 계정의 API 호출 및 사용자 활동을 기록 하는 감사 로깅 서비스입니다. "누가, 언제, 어디서, 어떤 API 를, 어떤 리소스에 대해…
[AWS] Config (Resource Configuration Tracking)cloud
정의 AWS Config 는 AWS 계정 안 리소스의 구성 (configuration) 상태를 지속 기록 하고, 정책 규칙 (Config Rules) 위반을 자동 감지하는 서비스…
[AWS] IAM: User, Role, Policy, STScloud
정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy 로 구성. "누가 어떤 리소…
[AWS] KMS: 암호화 키 관리, envelope encryptioncloud
정의 KMS (Key Management Service) = 암호화 키 중앙 관리. envelope encryption + IAM 통합 + 감사 로그. 키 종류 | 종류 | 의미…
[AWS] S3: object storage, storage classes, lifecyclecloud
정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability (99.999999999%), 무한 확장. 2026…
[AWS] SQS: managed queue, FIFO, DLQcloud
정의 SQS (Simple Queue Service) = AWS 의 완전 관리형 메시지 큐. infinite scale, no provisioning, pay-per-reques…
[AWS] STS / AssumeRole: 임시 자격, cross-accountcloud
정의 STS (Security Token Service) = 임시 자격 증명 발급. short-lived (15분-12시간) credentials. 장기 access key 없이…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기