SAABlog
보안중급

AWS Organizations & SCP: 멀티 계정 관리와 보안 가드레일

AWS Organizations로 멀티 계정을 관리하고 SCP(서비스 제어 정책)로 보안 가드레일을 설정하는 방법을 알아봅니다.

PHILOLAMB-
OrganizationsSCP멀티 계정보안 가드레일OU

관련 시험 도메인

  • Domain 1: Design Secure Architectures

핵심 요약 (BLUF)

AWS Organizations는 여러 AWS 계정을 중앙에서 관리하고, SCP(서비스 제어 정책)는 계정 수준의 권한 상한선(가드레일)을 설정합니다. SCP는 권한을 부여하지 않으며, IAM 정책이 허용한 범위 내에서 추가적인 제한만 합니다.

시험 팁

시험 핵심: "SCP는 권한을 부여하지 않는다. 최대 허용 범위를 제한할 뿐이다."

AWS Organizations란?

여러 AWS 계정을 하나의 조직으로 통합 관리하는 서비스입니다.

┌─────────────────────────────────────────────────┐
│                  Organization                    │
│                                                  │
│  ┌────────────────┐                              │
│  │ Management     │  ← 조직 관리, 결제 통합      │
│  │ Account        │     SCP 영향 받지 않음       │
│  └────────────────┘                              │
│         │                                        │
│  ┌──────┴──────────────────────────────┐         │
│  │              Root                    │         │
│  ├──────────────┬───────────────────────┤         │
│  │              │                       │         │
│  │  ┌───────┐  │  ┌─────────────┐      │         │
│  │  │ Prod  │  │  │   Dev       │      │         │
│  │  │ OU    │  │  │   OU        │      │         │
│  │  ├───────┤  │  ├─────────────┤      │         │
│  │  │Acct A │  │  │  Acct C     │      │         │
│  │  │Acct B │  │  │  Acct D     │      │         │
│  │  └───────┘  │  └─────────────┘      │         │
│  └─────────────┴────────────────────────┘         │
└─────────────────────────────────────────────────┘

핵심 기능

기능설명
통합 결제모든 계정의 비용을 하나로 합산
볼륨 할인합산 사용량으로 더 높은 할인 적용
SCP계정 수준 보안 가드레일
OU (조직 단위)계정을 그룹으로 분류
계정 생성API로 자동 계정 생성

시험 팁

통합 결제: Reserved Instance와 Savings Plans의 공유가 가능합니다. Prod 계정에서 구매한 RI를 Dev 계정에서도 활용할 수 있습니다.

OU(조직 단위) 설계

일반적인 OU 구조

Root
├── Security OU
│   ├── Log Archive 계정
│   └── Security Tooling 계정
├── Infrastructure OU
│   ├── Shared Services 계정
│   └── Networking 계정
├── Workloads OU
│   ├── Production OU
│   │   ├── App A Prod
│   │   └── App B Prod
│   └── Development OU
│       ├── App A Dev
│       └── App B Dev
└── Sandbox OU
    └── 개인 실험 계정

OU 설계 원칙

  1. 목적별 분리: 보안, 인프라, 워크로드, 샌드박스
  2. 환경별 분리: Production vs Development
  3. SCP 적용 편의: OU 단위로 정책 일괄 적용
  4. 최소 권한: 각 OU에 필요한 최소 권한만 허용

SCP(서비스 제어 정책) 이해하기

SCP의 역할

SCP는 권한을 부여하지 않습니다. 계정 내 IAM 정책이 허용하는 최대 범위를 제한합니다.

유효 권한 = IAM 정책 ∩ SCP

예시:
IAM 정책: S3, EC2, RDS 허용
SCP: S3, EC2만 허용
→ 유효 권한: S3, EC2 (RDS는 SCP에 의해 차단)

SCP 적용 규칙

규칙설명
관리 계정❌ SCP 영향 받지 않음
멤버 계정✅ SCP 적용
루트 사용자✅ SCP에 의해 제한됨
상속✅ 상위 OU → 하위 OU → 계정
최대 연결 수엔터티당 5개 SCP
최대 크기SCP당 5,120자

시험 팁

중요: SCP는 멤버 계정의 루트 사용자도 제한합니다. IAM 정책으로는 루트를 제한할 수 없지만 SCP로는 가능합니다.

SCP 전략: 거부 목록 vs 허용 목록

거부 목록 (Deny List) - 권장

기본 FullAWSAccess 정책을 유지하고, 특정 위험 작업만 차단합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyLeaveOrganization",
      "Effect": "Deny",
      "Action": "organizations:LeaveOrganization",
      "Resource": "*"
    }
  ]
}

장점:

  • 새로운 AWS 서비스 자동 허용
  • 구현이 간단하고 안전
  • 서비스 중단 위험 낮음

허용 목록 (Allow List)

기본 FullAWSAccess를 제거하고, 특정 서비스만 허용합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:*",
        "s3:*",
        "rds:*"
      ],
      "Resource": "*"
    }
  ]
}

주의: 새 서비스 출시 시 수동으로 추가해야 하고, 실수로 서비스가 차단될 수 있습니다.

시험 팁

시험에서는 거부 목록(Deny List) 전략이 권장 방식으로 출제됩니다.

자주 사용되는 SCP 예제

1. 리전 제한

특정 리전에서만 AWS 서비스 사용을 허용합니다:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllOutsideAllowedRegions",
      "Effect": "Deny",
      "NotAction": [
        "iam:*",
        "organizations:*",
        "sts:*",
        "support:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": [
            "ap-northeast-2",
            "us-east-1"
          ]
        }
      }
    }
  ]
}

시험 팁

NotAction 사용: IAM, Organizations 같은 글로벌 서비스는 리전 제한에서 제외해야 합니다.

2. 루트 사용자 작업 차단

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyRootUser",
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:PrincipalArn": "arn:aws:iam::*:root"
        }
      }
    }
  ]
}

3. CloudTrail 비활성화 방지

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyCloudTrailModification",
      "Effect": "Deny",
      "Action": [
        "cloudtrail:StopLogging",
        "cloudtrail:DeleteTrail"
      ],
      "Resource": "*"
    }
  ]
}

4. S3 퍼블릭 접근 차단 방지

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyS3PublicAccessBlockRemoval",
      "Effect": "Deny",
      "Action": [
        "s3:PutBucketPublicAccessBlock",
        "s3:PutAccountPublicAccessBlock"
      ],
      "Resource": "*"
    }
  ]
}

SCP vs IAM 정책

비교 항목SCPIAM 정책
적용 대상계정 전체 (OU/계정)사용자, 그룹, 역할
권한 부여❌ 불가✅ 가능
권한 제한✅ 가능✅ 가능
루트 사용자 제한✅ 가능❌ 불가
관리 계정 적용❌ 불가✅ 가능
JSON 구문IAM 정책과 동일-

AWS Control Tower

Organizations + SCP를 자동으로 설정해주는 멀티 계정 환경 자동화 서비스입니다.

Control Tower의 가드레일

유형구현 방식예시
예방적 (Preventive)SCP리전 제한, CloudTrail 보호
탐지적 (Detective)AWS Config암호화 미적용 탐지

시험 팁

Control Tower = Organizations + SCP + AWS Config + SSO를 자동으로 설정하는 "랜딩 존" 서비스

SAA-C03 시험 출제 포인트

  1. SCP 특성: "권한 부여 불가, 최대 허용 범위만 제한"
  2. 관리 계정: "SCP 영향을 받지 않음"
  3. 루트 사용자: "SCP로 멤버 계정의 루트 사용자 제한 가능"
  4. 리전 제한: "NotAction으로 글로벌 서비스 제외"
  5. 통합 결제: "볼륨 할인, RI/SP 공유"

시험 팁

시험 문제 예시: "멀티 계정 환경에서 모든 멤버 계정이 ap-northeast-2 리전만 사용하도록 제한하려면?" → 정답: Organizations SCP에서 허용 리전 제한 (NotAction으로 글로벌 서비스 제외)

자주 묻는 질문 (FAQ)

Q: SCP를 적용하면 기존 리소스에 영향이 있나요?

SCP는 새로운 API 호출에만 적용됩니다. 기존 리소스는 유지되지만, 해당 리소스를 수정하거나 새로 생성하는 작업은 차단될 수 있습니다.

Q: 관리 계정에 SCP를 적용할 수 있나요?

아니요. 관리 계정은 SCP의 영향을 받지 않습니다. 관리 계정은 조직 관리 목적으로만 사용하고, 워크로드는 멤버 계정에서 실행하는 것이 모범 사례입니다.

Q: SCP와 IAM 정책이 충돌하면 어떻게 되나요?

유효 권한은 SCP와 IAM 정책의 교집합입니다. SCP가 차단하면 IAM에서 허용해도 불가능합니다.

Q: Organizations에 가입하면 비용이 발생하나요?

AWS Organizations 자체는 무료입니다. 통합 결제로 볼륨 할인 혜택을 받을 수 있습니다.

Q: 계정을 조직에서 제거할 수 있나요?

네. 멤버 계정은 조직에서 제거할 수 있습니다. 단, 독립 계정으로 전환하려면 결제 방법 등이 설정되어 있어야 합니다. SCP로 LeaveOrganization 작업을 차단하여 무단 탈퇴를 방지할 수 있습니다.

관련 글

참고 자료