본문으로 건너뛰기

1 AWS Organizations

  • AWS Organizations는 다중 AWS 계정을 중앙에서 관리할 수 있는 서비스로, 통합 결제, 정책 제어, 리소스 관리를 통해 효율적이고 안전한 계정 관리를 지원합니다.
  • 이를 통해 조직 내의 여러 계정을 중앙에서 관리하고, 보안 및 규정 준수 요구 사항을 일관되게 적용할 수 있습니다.

2 주요 기능

2.1 관리 계정과 멤버 계정

  • 관리 계정
    • AWS Organizations의 주 계정으로, 전체 조직을 관리합니다.
    • 통합 결제, 계정 생성 및 관리, 정책 적용 등 다양한 기능을 수행합니다.
    • 관리 계정은 모든 SCP의 영향을 받지 않으며, 전체 관리자 권한을 가집니다.
  • 멤버 계정
    • 조직 내에서 관리되는 개별 계정입니다.
    • 하나의 조직에만 속할 수 있으며, 관리 계정에 의해 관리 및 제어됩니다.
  • OrganizationAccountAccessRole
    • 멤버 계정에서 관리 계정에 전체 관리자 권한을 부여하는 IAM 역할입니다.
    • AdministratorAccess 관리형 정책이 연결되어 있어 멤버 계정의 모든 리소스에 대한 완전한 접근 권한을 제공합니다.
    • 즉, 관리 계정이 멤버 계정의 리소스에 대한 모든 작업을 수행할 수 있습니다.
    • 이를 통해 관리 계정은 멤버 계정의 리소스를 중앙에서 관리하고 제어할 수 있습니다.
    • 새로운 멤버 계정 생성 시 자동으로 생성되 별도의 수동 설정이 필요 없습니다.
    • 기존 계정 초대 시 수동 설정이 필요합니다.

2.2 통합 결제

  • 통합 결제
    • 모든 계정을 하나의 결제 방법으로 관리하여 비용을 중앙에서 통제할 수 있습니다.
    • 각 계정별로 발생하는 비용을 구체적으로 추적할 수 있으며, 이를 통해 비용 절감 방안을 모색할 수 있습니다.
  • 가격 혜택
    • EC2, S3 등 다양한 AWS 서비스에서 볼륨 할인 혜택을 받을 수 있습니다.
    • 모든 계정에서 예약 인스턴스 및 Savings Plans 할인 혜택을 공유할 수 있습니다.

2.3 계정 자동 생성 API

  • API
    • 조직 내에서 새로운 AWS 계정을 자동으로 생성할 수 있는 API를 제공합니다.
    • 이를 통해 새로운 프로젝트나 팀을 위한 계정 생성을 간소화하고 신속하게 수행할 수 있습니다.

3 AWS Organizations의 구성 요소

3.1 조직 유닛 (OU)

  • OU 정의
    • AWS Organizations에서 계정을 논리적으로 그룹화하여 관리하는 단위입니다.
    • 유사한 목적이나 요구 사항을 가진 계정을 함께 묶어 관리할 수 있습니다.
  • OU 계층 구조
    • OU는 계층 구조를 가질 수 있으며, 상위 OU에 적용된 정책은 하위 OU와 계정에도 자동으로 적용됩니다.
    • 예를 들어, 개발 환경, 테스트 환경, 프로덕션 환경을 각각의 OU로 구성할 수 있습니다.

3.2 서비스 제어 정책 (SCP)

3.2.1 SCP 개요

  • 정의
    • AWS Organizations의 계정이나 조직 단위(OU)에 적용되는 권한 제어 정책입니다.
    • IAM 정책과 유사한 JSON 문서 형식을 사용하지만, IAM이 "할 수 있는 작업"을 정의하는 반면, SCP는 "할 수 있는 작업의 최대 범위"를 제한합니다.
    • 예를 들어, IAM에서 S3 접근 권한을 부여해도 SCP에서 S3를 제한하면 접근할 수 없습니다.
  • 주요 특징
    • 기본적으로 아무것도 허용하지 않으며, 명시적인 Allow가 필요합니다.
    • Organizations의 최상위(Root) 조직부터 멤버 계정이 속한 모든 OU 단계에서 명시적 Allow가 필요합니다.
      • 예: Root OU → Production OU → 개발팀 계정으로 이어지는 경우, 각 단계마다 허용이 필요
    • 관리 계정(Management Account)에는 적용되지 않습니다.
    • 계정 내의 모든 사용자와 역할(Root 사용자 포함)에 적용됩니다.
    • 서비스 연결 역할(Service-linked roles)에는 영향을 주지 않습니다.
용어 설명

AWS Account (계정):

  • AWS 서비스를 사용하기 위한 가장 기본적인 컨테이너 단위입니다
  • 각각의 AWS 계정은 고유한 이메일과 결제 정보를 가집니다
  • 하나의 AWS 계정 안에 여러 사용자(User)들이 존재할 수 있습니다

AWS User (사용자):

  • AWS 계정 내에서 생성되는 Identity입니다
  • IAM(Identity and Access Management)을 통해 생성/관리됩니다
  • 각 User는 고유한 자격 증명(credentials)을 가집니다

Root User (루트 사용자):

  • AWS 계정을 처음 생성할 때 만들어지는 특별한 사용자입니다
  • 해당 AWS 계정에 대한 완전한 권한을 가집니다
  • AWS 계정당 단 하나의 Root User만 존재합니다

3.2.2 SCP 전략

SCP는 크게 두 가지 전략으로 구현할 수 있습니다:

차단 목록(Blocklist) 전략
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowsAllActions",
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Sid": "DenyDynamoDB",
"Effect": "Deny",
"Action": "dynamodb:*",
"Resource": "*"
}
]
}
  • 모든 서비스를 기본적으로 허용하고 특정 서비스나 작업을 명시적으로 차단합니다.
  • 대부분의 서비스 사용을 허용하고 일부만 제한하고 싶을 때 유용합니다.
허용 목록(Allowlist) 전략
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:*",
"cloudwatch:*"
],
"Resource": "*"
}
]
}
  • 명시적으로 허용된 서비스나 작업만 사용할 수 있도록 제한합니다.
  • 보안이 중요한 환경에서 더 엄격한 제어가 필요할 때 사용합니다.

3.2.3 SCP 상속 구조

  • 계층적 적용
    • Root OU에서 시작하여 하위 OU를 거쳐 개별 계정까지 SCP가 계층적으로 적용됩니다.
    • 상위 OU의 제한은 하위 OU와 계정에 모두 적용됩니다.
    • 예를 들어, Sandbox OU에서 S3를 제한하면 그 아래의 모든 계정에서 S3 사용이 제한됩니다.

3.2.4 주요 활용 사례

  • 서비스 제한

    • 특정 AWS 서비스(예: EMR)의 사용을 완전히 차단
    • 고비용 서비스나 보안에 민감한 서비스 제한
  • 컴플라이언스 적용

    • PCI DSS 같은 규정 준수를 위해 특정 서비스 비활성화
    • 리전 제한을 통한 데이터 주권 요구사항 충족
  • 비용 관리

    • 고비용 인스턴스 유형 사용 제한
    • 특정 리전에서만 리소스 생성 허용

3.2.5 모범 사례

  • 단계적 구현

    • 처음에는 로깅 모드로 시작하여 영향 분석
    • 점진적으로 제한 적용
  • 정기적인 검토

    • SCP 정책의 효과성 주기적 검토
    • 비즈니스 요구사항 변화에 따른 업데이트
  • 문서화

    • 각 SCP의 목적과 영향 범위 문서화
    • 예외 처리 프로세스 정의

4 AWS Organizations의 장점

  • 효율적인 계정 관리
    • 여러 AWS 계정을 중앙에서 효율적으로 관리할 수 있습니다.
    • 조직 내의 다양한 계정을 관리하고, 정책을 일관되게 적용할 수 있습니다.
  • 비용 절감
    • 통합 결제와 볼륨 할인으로 비용을 절감할 수 있습니다.
    • 모든 계정에서 예약 인스턴스와 Savings Plans 할인 혜택을 공유하여 비용 효율성을 극대화할 수 있습니다.
  • 보안 및 규정 준수
    • 중앙에서 보안 정책과 규정 준수 요구 사항을 관리할 수 있습니다.
    • SCP를 통해 계정별로 세밀한 권한 제어를 할 수 있으며, 이를 통해 보안 리스크를 최소화할 수 있습니다.

5 AWS Organizations의 활용 사례

5.1 멀티 계정 vs 하나의 계정 멀티 VPC

  • 멀티 계정
    • 보안, 비용 관리, 접근 제어를 각 계정 단위로 독립적으로 관리할 수 있습니다.
    • 중앙에서 각 계정의 리소스와 비용을 통합 관리할 수 있습니다.
  • 하나의 계정 멀티 VPC
    • 단일 계정 내에서 VPC를 분리하여 리소스를 관리합니다.
    • 멀티 계정의 장점인 계정 간 격리를 활용하지 못하는 경우에도 유용합니다.

5.2 중앙 로깅

  • CloudTrail 로그
    • 모든 계정에서 CloudTrail을 활성화하고 중앙 S3 계정으로 로그를 전송합니다.
    • 중앙에서 모든 계정의 활동을 모니터링하고 감사할 수 있습니다.
  • CloudWatch 로그
    • 모든 계정에서 CloudWatch 로그를 중앙 로깅 계정으로 전송합니다.
    • 애플리케이션의 상태와 성능을 중앙에서 모니터링할 수 있습니다.

참고 자료