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 로그를 중앙 로깅 계정으로 전송합니다.
- 애플리케이션의 상태와 성능을 중앙에서 모니터링할 수 있습니다.
참고 자료