LandingZone과 연계된 OU(Organization Units) 설계부터 확인이 필요하다.
ROOT 계정은 모든 AWS의 권한을 가지고 있기 때문에 이것만으로도 원하는 AWS 서비스를 생성하고 사용할 수 있지만 현업에서는 다양한 부서와 지사 등의 관계가 얽혀있기에 엔터프라이즈 환경에서 권한을 어떻게 부여하고 제어할지 잘 설계해야 한다.
특정 목적에 의해 AWS 계정을 묶어 관리하는 상위 개념을 OU(Organizational Unit)이라 한다. 개발사라면 개발팀/QA팀/운영팀으로 OU를 나눌 수도 있고 일반 회사라면 영업팀/마케팅팀/개발팀 이렇게 나눌 수도 있겠다. 이렇게 생성한 OU 밑에 하위 AWS 계정을 만들어 독립적으로 관리하고 사용할 수 있도록 한 것이 AWS 계정(account)다. 어카운트는 필요한 AWS 리소스를 생성하고 이에 대한 모니터링과 관리, 과금의 주체라 할 수 있다.
모든 OU를 관리하면서 전반적인 AWS의 쓰임새를 최상위에서 관리하는 어카운트를 관리 어카운트(management account) 혹은 ROOT 어카운트라 한다. - 이것을 account의 최상위 ROOT 어카운트 계정과 혼동하지 말자.
ROOT 어카운트는 각 OU의 정책을 설정하여 적용시킬 수 있는데 이를 SCP(Service Control Policies: 서비스 제어 정책)라 한다. SCP는 OU가 특정 서비스를 사용할 수 있는지 없는지, OU 하위의 각 어카운트가 어떤 서비스를 사용할 수 있는지 등의 정책을 생성하고 할당한 것이다.
1. OU/계정 설계
목적
- 여러 AWS 계정을 사용하여 비즈니스 애플리케이션과 데이터를 격리하고 관리하면 운영 우수성, 보안, 안정성, 비용 최적화를 비롯한 대부분의 AWS Well-Architected Framework 기반에서 최적화하는 데 도움이 될 수 있습니다. 이 문서는 전체 AWS 환경을 구성하기 위한 모범 사례를 기반으로 비즈니스 요구 사항에 따라 초기 계정들과 OU 구조에 대한 설계 가이드라인을 제공하고 결정 할 수 있도록 합니다.
- OU 구조화의 주된 목적은 AWS 계정 그룹별로 가드레일을 적용 및 OU별 거버넌스 적용을 위한 자동화이므로 기업 조직 구조를 그대로 반영할 필요는 없습니다.
Design Principles
- 보안과 운영 요구사항에 맞도록 OU 설계
- 보안 가드레일은 OU 단위로 정의
- 가급적 Chid OU 사용 최소화
- 필요에 따라 확장 가능하도록 작은 단위로부터 시작
- 관리 계정(Payer)에 워크로드용 자원 배포 금지
- Production 과 그 외 계정들의 OU 분리
- 각 Production 계정에는 가능한 작은 단위의 워크로드가 구성되도록 세분화(워크로드별 Owner가 다른 경우)
- Federated Access(SSO 또는 IAM Integration)을 통한 접근 제어
- 민첩성, 확장성을 고려한 자동화 가능하도록 설계
Centralized Management of Resources
Landing Zone 을 배포하기 위해서는 기본 3개의 계정이 필요(관리, 로그 아카이브, 감사)
관리 계정(Payer)에서 Control Tower를 Enable 할 경우 2개의 계정이 자동 생성(Security OU)
결정 사항 : AWS Organization 사용 vs Control Tower 사용(Recommend)
with Control Tower | w/o Control Tower |
KMS customer-managed Key 생성 | n/a |
관리자 권한을 위한 IAM role 사전 정의 | 관리자 권한을 위한 IAM role 사전 정의 |
랜딩존 Region 정의 | n/a |
자동 배포되는 필수 계정(로그 아카이브, 감사) 사용 | 로그 아카이브, 감사 계정 별도 생성 |
기본 가드레일 자동 적용 | 기본 가드레일 메뉴얼 적용 |
Customization Add-on 사용(추가 가드레일 및 자동화 요구 사항) | 추가 가드레일 및 자동화를 위한 파이프라인 별도 구성 |
계정 팩토리를 통한 계정 생성 | 메뉴얼 생성 후 조직에 초대 |
- *Control Tower 사용 가능 Region : AWS Region Table
AWS Organization Matrix
Root(Management, Payer) 계정
- Control Tower 서비스(또는 Organization) 관리 계정
- 하위 빌링 정보 통합
- 계정 생성
- CFCT(Customizations for AWS Control Tower)
Owner | CIO or LOB(Line of Business) head |
Components |
|
LogArchive(로그 아카이브) 계정
- 보안 및 컴플라이언스 관련 로깅 및 감사
- 모든 계정의 CloudTrail 로그를 집계(S3 Bucket)
- Centralized Logging Add-on 및 3'rd party 분석 툴등을 통해 분석
OwnerComponents
Owner | CISO(Security Compliance Team) |
Components |
|
Security(감사) 계정
- 보안 감사
- 하위 계정들의 리소스에 대한 View/Scan
- 보안 테스팅
- 보안 중앙 감사를 통한 도구 정의 및 감사
Owner | CISO(Security/Compliance Team) |
Components |
|
Optional - Shared Services 계정
- 공유 자원 관리
- 인증(AD 등) 도구
- CI/CD 도구 셋업
- Golden AMI 생성
- 서비스 카탈로그 생성 및 공유
- 인프라/워크로드 모니터링 도구
- 하위 계정들에 자원을 프로비저닝하기 위한 Hub 계정 역할로 사용
Optional-Network(네트워크) 계정
- 네트워크 Connectivity(DX, VPN, TGW 등) 관리
- Shared VPCs
기타
- 센드박스(PlayGround) 계정
- On-prem, VPN, Shared Services, 워크로드 등과 연결 하지 않고 독립적인 공간으로 활용
- 예산 제한
- 사용하지 않는 자원 삭제/정리
- Dev/Test 계정
- Production 계정
'고기 대신 SW 한점 > Public Cloud' 카테고리의 다른 글
[Public Cloud] Kyverno ? (0) | 2023.01.10 |
---|---|
[AWS] LandingZone - VPC Design (1) | 2023.01.06 |
[AWS] HPA - Horizontal Pod Autoscaler (0) | 2023.01.05 |
[AWS] Cluster Autoscaler (CA) (0) | 2023.01.04 |
[AWS] WAF Managed Rule Set 적용 예 (0) | 2023.01.04 |