
지난 시간에는 IAM User를 통해 관리자 권한을 가진 계정을 만들었다.
이 방식은 소규모 환경에서는 효율적이지만,
팀 단위나 프로젝트 단위로 운영하는 업무 환경에서 하나의 계정으로 모든 리소스를 관리하는 것이 제한적이다.
이번 시간에는 AWS에서 다계정을 운영할 때, 어떻게 리소스를 관리하고 계정 간 권한을 연동하는지에 대해 정리했다.
AWS 계정 생성 후 초기 설정
https://velog.io/@go_sbchi/account-management
환경 구축 - AWS 계정 관리(IAM을 이용해 관리자 계정 만들기)
https://velog.io/@go_sbchi/env-aws-iam
각 목적별, 용도별로 팀단위로 묶어서 관리하기 위해서이다.
보안과 안정성
하나의 계정으로 모든 것을 관리하게 되면 보안에 취약해지고, 계정을 사용하는 여러 개의 팀중에 하나의 팀만 문제가 생겨도, 전체 시스템에 문제가 생길 수 있기 때문에 분리하여 안정성과 보안을 높인다.
비용 관리
비용 청구가 계정 각각에 발생하기 때문에 계정을 사용하는 팀은 다른 팀의 비용청구 내용을 알 필요가 없어서 관리하기 좋다.
관리 효율성
각각의 계정별로 리소스나 권한 등을 관리하기 때문에 관리가 편하다.
팀 단위로 계정을 분리하더라도,
계정 간에 리소스를 공유하거나 접근해야 하는 상황이 발생한다.
이때 사용하는 기능이 Assume Role이다.
Assume Role이란?
다른 계정의 역할을 임시로 해당 계정의 권한을 사용하는 기능
내 계정의 사용자가 다른 계정의 권한을 일시적으로 빌려서 그 계정의 리소스를 사용할 수 있도록 해주는 기능
👉 운영 계정에 로그인한 내가, 개발 계정의 S3 버킷을 잠깐 보고 싶을 때 ,
개발 계정에서 운영 계정에서 사용할 수 있게 역할을 설정해 놓으면 운영 계정에서 나는 개발 계정의 역할을 잠깐 빌려와서 S3를 볼 수 있다.
이후 원래 계정의 사용자는 다른 계정의 역할이 허용한 범위 내에서 권한 행사
AWS 콘솔 UI에서 스위칭 가능
AWS 서비스 중 하나인 멀티 세션을 이용하면 세션 만료없이 두개 이상의 계정을 관리할 수 있다.
A계정에서 로그인 후 역할 생성
멀티 세션을 이용해 A,B 계정 세션 만료 없이 사용
역할 전환으로 B계정으로 A계정 접근
B계정으로 접속중인 상태로 A계정에 S3 버킷 생성해보기
💡 계정 구분
A계정 ID : 05**********
B계정 ID : 00**********
- A계정 접속

- 세부 정보 구성하기(역할 생성)

- 권한 부여

- 역할 이름 주기 후 완료 클릭


이제 B계정에 만들어진 역할만 넘겨주면 A계정에 접근해 동작시킬 수 있다.
- 멀티 세션 키기



서로 다른 세션이 켜진게 확인된다.
동시에 여러 개의 세션에 접속 유지 시켜주는 AWS 기능
켜져 있지 않으면 브라우저창을 두 개 띄워놓고 각각 다른 계정으로 로그인 해도, 제일 최근에 로그인한 계정으로 두 개다 바뀐다.
- 역할 전환

- 구성하기(역할 전환)
Account ID : A계정 ID
IAM role name : aws-multi-account-management
Display name - optional : login-beom-account ➡️ 선택사항(별명)
Display color - optional : Blue ➡️ 선택사항(역할이 무슨 색으로 표시될 것인가)
완료되면 Switch Role 클릭


B계정으로 A계정에 접속이 된게 확인된다.
- S3 생성해보기
A 계정에 접근했으니, 아까 주어진 AdministratorAccess 권한을 활용해 S3 버킷이 A계정에 만들어지는지 확인해보자
Region : ap-northeast-2 , Seoul로 변경
간단한 S3버킷 생성
이름 : test-bucket-beom



A계정에 돌아가 확인해 봐도 잘 만들어진게 확인된다.
| 항목 | 설명 |
|---|---|
| 계정 분리의 장점 | 보안 강화, 비용 관리 등등 |
| Assume Role 기능 | 계정 간 권한 위임을 위한 역할 전환 |
| A 계정 | 역할을 생성하고 B 계정의 접근을 허용 |
| B 계정 | A 계정의 역할을 위임받아 임시 권한 획득 후 리소스 접근 |
| 멀티 세션 기능 | 여러 계정 간 전환의 간편화 |
| 테스트 | B 계정이 A 계정의 S3 버킷에 접근 후 버킷 생성 |