메뉴

문서정보

목차

AWS Organization

AWS 클라우드는 하나 이상의 어카운트로 구성될 수 있다. 프로젝트 별로 어카운트를 만들 수 있으며, 각 프로젝트는 다시 개발팀, QA, 운영팀, 보안팀 과 같은 역할별로 어카운트를 만들 수 있을 것이다. AWS Organization을 이용해서 여러 개의 계정을 통합해서 관리 할 수 있다. 여기에는 예산, 보안과 규정 준수 요건을 충족하기 위한 계정 관리, 통합 결제 기능등을 포함한다.

AWS Oragnization의 주요 요소들

아래 다이어 그램은 4개의 OU(Organizational unit)을 가지는 7개의 계정으로 구성된 기본 조직을 묘사하고 있다.

Organization

여러 계정을 통합하기 위한 엔티티다. AWS Organization 콘솔을 사용해서 조직 내의 모든 계정을 중앙에서 관리 할 수 있다. 조직에는 하나 이상의 마스터 계정과 0개 이상의 멤버 어카운트(member account)를 가지고 있다. 최상위에 루트가 있고 루트 아래에 중첩 된 조직을 구성하는 것으로 계층적인 조직 구조를 만들 수 있다. 각 계정은 루트가 되거나 계층 구조의 OU 중 하나에 배치될 수 있다.

Root

조직(Organization)에 있는 모든 계정의 최상위 컨테이너다. 루트에 정책(Policy)를 적용하면 조직의 모든 OU(Organizational units)및 계정에 정책이 적용된다. 현재 AWS는 하나의 루트만 가질 수 있다.

OU(Organization Unit)

루트 내에 있는 계정을 위한 컨테이너다. OU는 다른 OU를 포함 할 수 있으므로 트리와 유사한 계층을 만들 수 있다. 계층 구조의 노드 중 하나에 정책을 연결하면 아래의 모든 OU 및 그 나래에 있는 계정에 영향을 준다. OU는 정확히 하나의 부모가 있을 수 있다. 현재 계정은 하나의 OU의 구성원이 될 수 있다.

Account

AWS 리소스를 포함하는 표준적인 AWS 계정이다. AWS 웹 콘솔에 접근하는 바로 그 계정을 생각하면 된다. 하나의 계정에만 적용되는 정책을 만들어서 연결 할 수 있다.

조직에는 단일 마스터 계정멤버 계정 두 가지 타입의 계정이 있다.

Invitation

다른 계정을 조직에 포함하도록 초대하는 프로세스다. 초대는 조직의 마스터 계정으로만 발행 할 수 있다. 초대 요청을 받은 계정이 초대를 수락하면 조직의 멤버 계정이 된다.

Handshake

두 당사자간 정보를 교환하는 프로세스다. AWS Organizations의 주요 목적중 하는 초대를 구현하는 것이다. 핸드 셰이크 메시지는 수신자 사이에서 전달하고 응답된다. 메시지는 양 당사자가 항상 현재 상태를 알 수 있도록 전달 된다. 핸드 셰이크는 통합 결제 기능만을 지원하는 것에서 AWS Organizations이 제공하는 모든 기능을 지원하는 것으로 변경할 때 사용한다.

Service control policy (SCP)

SCP는 영향을 주는 계정에서 유저와 역할(roles)이 사용 할 수 있는 서비스와 작업의 설정 정책을 가지고 있다. SCP는 권한을 부여하지 않는다는 점을 제외하면 IAM 권한 정책과 유사하다.

SCP는 "해당 OU 혹은 계정은 최대 이러한 제한을 가진다"라는 일종의 가이드라인이다. 각 계정의 사용자와 역할에 대해서는 IAM 정책을 이용해서 SCP가 허용한 경계안에서 실제 권한을 부여해야 한다.

Tag Policy

조직의 계정의 전체 리소스에 대해서 태그를 표준화하는데 도움이 되는 정책 유형이다. 특정 리소스에 대한 태그 규칙을 지정 할 수 있다.

Allow lists, deny lists

허용, 거부 목록은 SCP가 계정에 사용가능한 권한을 필터링 하기 위해서 사용하는 보완적인 기능이다.

조직 만들기 테스트

AWS 웹 콘솔에 로그인해서 AWS Organizations 서비스로 넘어가자.

 AWS Organization 화면 - 1

Organization 생성 화면에서 많은 정보를 얻을 수 있다. 모은 다음에 그룹화해서 나눈다는 조직관리 개념을 그대로 따르고 있다.

그리고 Organization 설정 프로세스도 설명하고 있다. 아래 그림은 이 과정을 묘사하고 있다.

 Organization 생성 프로세스

  1. Organization 만들기 : AWS 마스터 계정으로 조직을 생성한다. AWS 계정을 조직에 초대하고, 다른 계정들을 멤버 계정으로 만드는 일을 한다.
  2. Oranization Units 만들기 : Organization 내에 OU를 만들고 OU에 멤버 계정을 배치한다.
  3. SCP 제어 정책 설정 : SCP를 이용해서 멤버 계정 사용자와 역할에 위임할 수 있는 작업 제한정책을 만든다.
  4. Organization 정책 테스트 : 우리가 설정한 SCP 정책이 설계대로 작동하는지 테스트 한다.
Create organization을 클릭해보자.

 Create Oranization Email finish verifying

Organization을 만드는 어카운트는 스스로가 마스터 어카운트로 등록된다. Organization 생성 권한을 확인하기 위한 메일이 전송된다.

 AWS Organization email verificaton request

이제 AWS Organization 에서 Account를 초대(Invitation)하는 등의 작업을 수행 할 수 있다.

Account 초대

Account를 초대해 보자.

 Invite Account

Invite account를 클릭하면 Account 초대 페이지로 넘어간다.

 Invite Account

이미 만들어진 어카운트을 초대하거나 지금 만든 Organization에 소속되는 어카운트를 만들 수 있다. 일단 Invite Account가 어떻게 진행되는지 확인해 보기로 했다. 테스트를 위해서 AWS 어카운트를 하나 더 만들었다.

새로만든 AWS 어카운트 ID로 invite 요청을 보낸다. Invite 요청은 메일로 전송된다. 링크를 클릭하면 아래와 같이 초대 관리를 위한 웹 페이지로 넘어간다. 적용을 선택하면 초대가 완료된다.

 Invite 관리 화면

마스터 계정으로 가면 아래와 같이 멤버 계정을 확인 할 수 있다.

 Member Account 확인

OU 만들기

이렇게 2개의 계정을 가진 Organization을 만들었다. 이제 OU를 만들어서 Account를 배치해 보자.
  1. Develop OU를 만든다. 이 OU에는 개발과 관련된 어카운트들을 배치한다. Dev, Staging, Product 와 같은 어카운트를 배치 할 수 있을 것이다.
  2. 앞서 초대한 멤버 어카운트를 Develop OU에 배치한다.
AWS Organizations > Organize accounts 페이지로 이동하자. 마스터 계정과 하나의 멤버 계정만 존재하는 상태다.

4

New organizational unit를 클릭해서 OU를 추가 할 수 있다. Develop OU를 추가했다.

 Creaste organization unit

이제 멤버 어카운트를 Develop에 이동하면 OU 배치가 끝난다.

 OU 배치 완료

정리