ControlTower(컨트롤타워)에 대한 설명을 보면 랜딩 존(Landing Zone)이라는 문구를 확인할 수 있다.
랜딩 존은 비행기가 착륙할 수 있도록 만들어진 착륙장을 의미한다.
비행기를 운용하기 위해 사전에 만들어둔 기반 시설이다.
이와 같이 AWS에서도 랜딩 존이라는 말은 비슷한 의미로 사용된다.
멀티 어카운트 환경에서 서비스를 운영하기 위한 잘 설계된 아키텍처를 구성하는 것.
그렇다.
컨트롤 타워는 이런 랜딩 존을 손쉽게 구성하기 위한 하나의 서비스를 제공한다.
컨트롤타워 서비스는 기존 서비스(Organizations, SSO, SCP, Config 등)을 활용하여 보다 편리하게 랜딩 존을 구성할 수 있도록 해주는 서비스이다.
계정 및 OU에 대한 생성 및 정책(ex. Guardrails)을 수립하고, 보다 편리하게 관리하고 컴플라이언스 준수 여부를 한 페이지에서 확인할 수 있도록 해준다.
※ 글을 포스팅하는 시점이 나도 공부를 하는 중인지라, 서비스에 대한 이해가 달라짐에 따라 문구는 언제든 수정될 수 있다.
※ 이 글은 AWS에서 제공하는 WorkShop을 하나하나 따라하면서 작성한 것임을 미리 밝힌다.
1. ControlTower 시작
- 랜딩 존 구성을 위한 신규 계정을 생성해본다.
- AWS는 메일 계정에서 '+'를 넣고 추가 문구를 넣으면 다른 계정이라고 인지한다.
- 구글 계정은 '+' 뒤의 문구를 무시한다. AWS는 다른 계정으로 인지하고, 관련된 모든 계정에 대한 정보를 하나의 메일로 받을 수 있다는 의미
- AWS ControlTower 서비스로 드가서 랜딩 존을 설정해보자.
- 랜딩 존에 대한 리전을 선택하고, 그 외의 리전을 금지하는 '리전 거부 설정'과, 추가 AWS리전을 설정 고고
- 기본 OU 구성을 해보자.
랜딩존을 위한 기본적인 OU들이다. 테스트는 기본 OU인 Security와 추가 OU인 Production으로 고고해보자.
- 컨트롤 타워에 대한 로그를 아카이빙할 계정과 감사용 계정을 입력해야함.
기존에 사용 중이 계정이 아니여야 하므로 '+' 이후에 새로운 명칭을 입력해보자.
- 여러 계정에 대한 감사 로그를 수집하기 위해 CloudTrail 구성을 활성화 해보자.
- 그리고 랜딩 존이 설정되어 활성화 될때까지 기다려본다.
2. ControlTower 관리
- 랜딩존 설정 과정에서 SSO에 대한 메일이 날라온다.
초대에 응해보자.
초반에 생성한 mgmt 계정으로 로그인을 고고해보자.
- 컨트롤타워에 대한 mgmt 계정이므로, ControlTower 계정의 AWSAdministratorAccess 권한으로 콘솔 접근을 해보자.
- AWS ControlTower에 드가면, 아래처럼 OU 및 계정 정보와 컴플라이언스 준수여부, 제어(GuardRail) 부분을 확인할 수 있는 대시보드가 여러분들을 맞이한다.
- 조직(OU) 탭을 클릭해보자 조직에 대한 정보와, 해당 조직에 속해있는 계정을 확인할 수 있다.
- 계정 하나를 클릭해보면 이렇게 세부정보를 확인해볼 수 있다.
Security OU에 속한 Audit이라는 계정이다.
3. Acount Factory
- 계정 팩토리 탭을 클릭해보자.
- 신규 계정 생성 및 기존 계정 연결이 가능하다.
- Default VPC를 통해 새로 생성되고, 연결되는 기존 계정이 속하게 될 VPC를 지정할 수 있다.
- 인터넷 액세스 가능 서브넷을 활성화 했다. 비활성화 할 경우 프라이빗 서브넷만 생성된다.
4. GuardRail
- 가드레일은 '제어'라는 한글 명칭으로 제공된다.
- AWS 사용자가 랜딩존에서 계정 작업을 수행하면 지침(Guidance), 동작(Behavior) 수준에 따라 OU 단위로 적용이 된다.
- 지침은 말 그대로 가이드를 제공하는 것이며, 필수/선택적/권고 등의 항목이 있다.
- 동작은 예방(Preventive), 탐지(Detective)가 있으며, 예방은 SCP로 동작하고 탐지는 AWS Config로 동작한다.
- 다만, 기본으로 제공하는 가드레일 리스트를 Enable, Disable만 가능할 뿐, 추가는 아직 못한다.
추가로 제어하거나 탐지하고 싶으면 SCP나 AWS config를 이용해서만 가능할뿐 ㅠㅠ
예시로 한개만 살펴 보겠다.
로그 아카이브를 삭제하는 것을 허용하지 않는 가드레일이다.
지침은 필수이며, 동작은 예방이다.
이름을 클릭하면 상세정보를 볼 수 있다.
SCP로 동작하며, Security OU에 적용되어 있다.
해당 OU에 속해있는 Audit, Log Archive 계정이 영향을 받는다.
SCP(서비스 제어 정책)을 클릭하면, 적용되는 정책을 확인 할 수 있다.
AWSControlTowerExecution이라는 role이 아닐때(Condition) aws-controltower로 시작하는 S3 버킷을 삭제(Action)하는 것을 거부(Effect)한다는 의미이다.
5. 신규 계정 생성
- production OU에 신규 계정을 생성해본다.
- 계정 팩토리에서 계정생성을 클릭해보자.
Commerce용 계정과 표시 이름을 지정하고, Identity Center 계정(계정 관리자 SSO 이메일)도 기입함
그리고 production OU인지 확인하자.
계정이 생성 중이고, 조금 지나면 등록(Enroll) 처리 된다.
생각보다 그 조금이 조금 길수도 있다.
등록이 되어 버렸다.
6. 리소스 배포
새로 생성한 Commerce 계정에 리소스(EC2)를 배포 해보려고 한다.
SSO 포털에서 새로 생성한 commere 계정의 AWSAdministratorAccess 권한으로 관리 콘솔에 접속 해보자.
ControlTower에서 디폴트 VPC를 편집하여, 프로비저닝 했던 VPC/Subnet 등을 확인해보자
Default VPC 세팅에서 인터넷 사용을 enable 했기 때문에 Public Subnet이 생성됐다.
당연한 얘기지만 disable 하면 private subnet만 생성된다.
클라우드포메이션에서 웹 서비스(PHP)를 수행하는 EC2를 배포해보자.
템플릿은 yaml 파일이며, 아래에 첨부해 두었다.
- 새 리소스 사용
- 준비된 템플릿> 템플릿 파일 업로드
- 스택 이름을 지정하고, VPC와 Subnet(Public)을 선택한다.
- 그 이후는 다음, 다음, 전송..
기다리다 보면 CREATE_COMPLETE가 뜬다.
- 출력 탭에서 해당 URL을 클릭해보자.
- 잘 열린다.
'네트워크 & 클라우드 > AWS' 카테고리의 다른 글
[AWS-16] ControlTower - 03.Customization (보류) (0) | 2022.11.21 |
---|---|
[AWS-16] ControlTower - 02.보안 규제 (0) | 2022.11.17 |
[AWS-15] EC2 프로세스가 죽으면 SLACK으로 알림받기 (0) | 2022.10.29 |
[AWS-14] KMS(Key Management Service) - 작성중 (0) | 2022.10.26 |
[AWS.13] Bastion Host (0) | 2022.09.29 |