카테고리 없음

IAM 서비스 알고 쓰자 - 2 - 역할전환

엔지니어-여리 2023. 10. 7. 02:47
반응형

개요

AWS를 사용하다보면 하나의 IAM 사용자로만 서비스를 이용하는 게 여간 불편함이 아닐 수 없다. TF팀이 꾸려져서 다른 직무로 전환이 되거나 승진하여 권한이 확장되거나 기존에 하던 프로젝트가 종료되어 해당 프로젝트 접근 권한을 반납해야하는 경우가 있다. 이러한 경우에 관리자는 어떻게 권한을 관리해야할까 오늘 그 해답중에 하나인 역할을 활용해서 문제를 해결하는 방법을 소개하고자 한다.

 

 

본문

역할 전환

역할전환은 IAM 사용자로서 가지고 있는 권한을 사용하는 게 아니라 임시로(장기 혹은 단기) IAM 역할의 권한을 빌려와서 권한을 행사하는 것을 말한다. 

IAM 객체는 역할을 사용할 수 있는 권한이 있어야 하고, 역할에서도 어떤 대상(entity)이 해당 역할을 호출할 수 있는지 확인할 수 있는 체계가 필요하다. 

 

역할을 빌릴 수 있는 권한 

assume role 

assue role 권한은 사용자가 가지고 있는 권한이 아닌, 이미 정의된 역할의 권한을 빌려올 수 있는 권한을 뜻한다.

잠시만 빌린다는 관점을 생각해주시면 된다..

역할에서는 어떤 설정을 해주어야 할까 ?

역할에서는 trsut relationship이라고 하는 신뢰 관계를 설정할 수 있다.

신뢰 관계는 역할의 권한을 빌릴 수 있는 대상이 누군지 인증(authorize)할 수 있는 대상이라고 생각하면 더 쉬우리라 생각 된다.

 

결국, 역할을 빌리는 대상도 역할을 빌려주는 대상도 서로 검증하는 이중 잠금장치라고 생각하면 좋을 듯 싶다.

 

한 번, 실습을 통해서 동일 계정에서 역할 전환, 교차 계정에서 역할 전환을 실습해보겠다.

이 실습을 잘 해야 RBAC 를 잘 적용할 수 있으니 이전 글과 함께, 이번 글을 읽어보시기 바란다.

- 하나의 계정에서 역할 전환

  - 설정

이제 실습을 진행해보자.

AWS 계정에서 IAM 계정을 만든다. 계정에 할당되는 정책은 assume-role 정책을 할당한다.

assume role 정책의 리소스는 aws 계정 내 모든 역할에 대해 호출할 수 있도록 설정한다.

 

역할도 생성해줍니다.

역할의 정책은 EC2Full Access 정책을 할당해주고, Trust Relationships은 다음과 같이 설정해줍니다.

역할 전환을 위한 설정은 완료되었습니다.

 

- IAM User의 권한 확인

IAM 사용자로 로그인해보면 assume role 외에는 아무런 권한이 없으므로 EC2 서비스나 IAM 서비스에서 어떠한 정보도 확인할 수 없습니다.

EC2 서비스 화면
IAM 서비스 화면

 

 

- Role Switching

우측 상단에 메뉴를 활용하여, 역할 전환을 한다.

역할전환 이미지

- IAM Role의 권한 확인

역할 전환을 하게 되면 다음과 같이 우측 상단에 표기가 변경된다.

 

전환된 역할은 EC2 서비스의 모든 기능을 활용할 수 있다.

 

  - CLI

cli에서도 동일하게 활용할 수 있다.

aws cli를 사용할 때는 credentials을 설정해주어야 한다.  

aws configure 명령어를 통해 credentials을 설정한 다음,

~/.aws/credentials 파일을 열어보면, default profile에서 입력한 credentials를 확인할 수 있다. 

역할을 사용하기 위해서는 다음과 같이 설정하면 된다.

~/.aws/config 파일에서, 다음과 같이 입력한 다음 저장한다.

[profile yeoli]

source_profile = default
region = ap-northeast-2
role_arn = arn:aws:iam::[Account ID]:role/[Role Name]

 

이제 aws 명령어를 실행할 때마다 --profile [Profile Name] 을 포함하여 역할 전환된 명령을 실행할 수 있다.

 

 

 

정리

역할 전환에 필요한 구성요소

정책

  - assume role 권한 (@ IAM User, IAM Group, IAM Role)

신뢰 관계

  - trust relationship (@ role)

 

다음에 할 이야기

IAM 권한 확인 메커니즘

반응형