본문 바로가기

⭐ AWS/IAM

교차 계정 접근 (AWS STS - Security Token Service)

728x90
반응형

# AWS 계정 교차접근 하기

1. AWS 교차 계정 접근이란?

- 보통은 AWS 계정의 IAM 사용자는 하나의 IAM 계정에 AWS 리소스에 접근이 기본이다.

그런데 한 AWS 계정의 IAM 사용자가 다른 AWS 계정의 IAM 사용자의 AWS 리소스에 엑세스 해야할 때가 있다.

그럴때 AWS 계정 교차 접근을 해야한다.

(한 AWS 계정의 IAM 사용자가 다른 AWS 계정의 IAM 사용자의 AWS 리소스에 엑세스 하는것.)

예시는 아래와 같다.

아래의 AWS Account를 보면 (2)라고 표시된것을 확인 할 수 있다. 현재 계정이 접근 가능한 AWS Account계정은 2개라는 뜻이다.

2. 교차 계정 접근이 필요한 이유?

- 첫째는 보안 때문이다. AWS는 보안을 최우선으로 하며, 사용자 권한관리는 IAM이라는 서비스를 통해 구성하고 관리한다. IAM은 다양한 기능을 가지고 AWS리소스의 접근 제어를 수행한다.

- 둘째는 사용성 측면에서 유리하다. IAM 기능을 잘 활용하면 운영 중인 서비스의 사용자나 관리자 또는 개발자의 권한을 모두 구분하여 제어할 수 있다. 그러므로 잘못된 운영이나 실수를 권한 제어를 통해 막을 수 있고, 제한적인 기능만을 수행하도록 할 수 있다.

- 예를들면, 개발자에게 운영 환경에 데이터베이스의 CRUD권한을 부여하는것은 올바른 권한을 부여한것이라고 볼 수 없다. 일단 dev환경에서는 CRUD 권한을 부여하는 것은 맞지만 운영 환경에 대한 접근은 제한을 해야할 것이다.

3. 교차 계정 엑세스 작업 수행하기 (Slave 계정 작업)

- 일단 Slave와 Master 계정을 나눠야 한다.

AWS 교차 계정 접근을 적용하는 방법을 알아보면 아래와 같다.

2개의 AWS 계정이 존재해야한다. (Slave, Master)

1. Slave계정에서 Master 계정으로 접근을 해보자.

- Slave계정 정보를 보면 아래와 같다.

계정 아이디를 확인하면 끝자리가 1인것을 확인할 수 있다. 1로 끝나는 계정을 Slave계정이라고 하겠다.

2. Slave 계정에서 IAM역할 세팅하기

- Slave계정에서 IAM 서비스로 이동한다. 역할(Role)로 이동하여 역할을 생성한다.

역할 만들기를 클릭하여 아래와 같이 AWS 계정을 클릭하고 다른 AWS 계정을 선택 후 Master 계정의 계정 ID를 입력 후 다음을 클릭한다.

- 다음은 아래의 화면처럼 Slave계정의 권한을 설정한다.

테스트를 위해서 Admin권한을 준다.

- 다음으로 넘어가면 해당 역할의 세부 정보를 입력한다. 여기서는 이름과 설명 그리고 태그 등을 설정할 수 있다.

역할이름은 SwitchRole이라고 짓자.

- 1단계: 신뢰할수 있는 엔터티 선택에서 신뢰 정책을 보면 아래와 같다.

"역할 생성"을 클릭하여 해당 역할을 생성한다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": "{Account_Number}"
            },
            "Condition": {}
        }
    ]
}

3. 생성된 역할 확인하기

- 아래와 같이 생성된 역할을 확인한다.

신뢰할 수 있는 개체에는 Master 계정의 계정 어카운트 정보가 들어가 있다.

Master 계정에서 Slave계정의 리소스를 자유롭게 생성하고 수정하고 삭제할 수 있는 권한을 의미한다.

4. 교차 계정 엑세스 작업 수행하기 (Master 계정 작업)

- Master 계정으로 이동하여 아래의 작업을 수행한다.

IAM으로 이동한다. 정책을 클릭하고 정책 생성을 클릭한다.

서비스에서 STS를 검색 후 모든 STS 작업에 대한 권한을 부여한다. 그리고 해당 정책을 생성한다.

- 아래와 같이 STS 서비스를 선택하고 작업을 클릭하여 AssumeRole을 클릭한다.

엑세스 수준은 전체 엑세스 권한이 부여 되어 있어야 한다.

- 최종적으로 정책을 생성한다.

정상적으로 정책이 생성되면 아래와 같이 STSPolicy라는 정책을 확인 할 수 있다.

5. 이제 생성한 정책을 User와 연결한다.

User와 Role 그리고 Policy의 관계는 아래의 링크를 통해서 확인한다.

2023.09.26 - [⭐ AWS/IAM] - ✈ AWS IAM 정책과 역할을 정리

 

✈ AWS IAM 정책과 역할을 정리

# 정책과 역할의 정리 - 위의 내용을 토대로 정책과 역할을 간단하게 설명하자면 역할은 사용자, 그룹, 역할 등을 정의한다. 그리고 정책은 사용자, 그룹, 역할에 대한 서비스에 대한 접근을 관리

may9noy.tistory.com

- 위에서 생성한 정책을 특정 User와 연결한다.

IAM → 사용자 탭으로 이동하여 User에 정책을 할당한다.

- 여기서는 신규로 SwitchUser라는 계정을 생성하여 진행을 하였다.

SwitchUser계정을 생성하고 해당 계정에게 STSPolicy 정책을 부여한다.

- 이제 SwitchUser로 로그인 하여 롤 전환을 해보자.

로그인을 하면 아래의 화면과 같이 "역할 전환" 이라는 아이콘이 보일것이다. 역할 전환을 해보자.

- 역할전환을 클릭 후 아래의 화면이 나온다.

아래에 화면에 계정 정보와 Slave계정에서 생성한 Role 이름을 입력 후 "역할 전환"을 클릭하면 해당 계정의 역할로 전환인 된다. 계정* 에는 Slave 계정번호를 입력한다. 그리고 역할도 Slave IAM에서 생성한 역할을 입력해준다.

- 결과

Slave계정의 IAM 계정의 Admin 권한을 부여 했으므로 "역할 변환"으로 Master 계정에서 Slave계정으로 역할을 변경해도 모든 서비스에 접근이 가능하고 생성 및 삭제가 가능하다.

- 정리

슬레이브 계정에서 역할과 해당 역할을 사용할 어카운트 넘버를 입력하고 역할을 생성한다.

마스터 계정에서 STS를 선택 계정에서 역할 전환으로 계정 넘버는 슬레이브 계정 넘버를 입력 역할을
슬레이브 계정에서 생성한 역할 이름을 넣어주면 역할 전환이 된다.

 

- 끝 -

 

728x90
반응형

'⭐ AWS > IAM' 카테고리의 다른 글

AWS 사용자 계정 부여 프로세스?  (0) 2023.10.05
✈ AWS IAM 정책과 역할을 정리  (0) 2023.09.26
IAM 정책 예제 사이트  (0) 2022.12.14
사용자 리전별 제한  (0) 2022.12.13
AWS가 권장하는 IAM BestPractice 10가지  (0) 2022.10.27