안녕하세요! 베스핀글로벌 클라우드 기술지원팀입니다! 🖐

이번 주제는 태그(TAG)를 사용하여 IAM 사용자 및 역할에 대한 엑세스 제어하는 방법”에 관해 소개해 드릴게요!

먼저 주요 컨텐츠는 다음과 같습니다.

* IAM의 정의와 정책, 권한에 대해선 간략하게 소개하겠습니다.

IAM이란

IAM(Identity and Access Management)는 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다.

생성 순서 : AWS -> IAM -> 사용자 추가 -> 권한 설정 -> 태그(TAG) 추가 -> 설정 검토 -> 설정 확인

IAM 태그(TAG)기반 관리

  1. ABAC란

ABAC(Attribute-based access control 속성 기반 액세스 제어)는 속성을 기반으로 권한을 정의하는 권한 부여 방법입니다.

=> AWS에서는 이러한 속성을 “태그(TAG)“라고 합니다. IAM 사용자 또는 역할이나 AWS 리소스에 태그(TAG)를 연결할 수 있습니다. 그런 다음 태그(TAG) 조건 키를 사용하여 해당 태그(TAG)를 기반으로 IAM 사용자 또는 역할에 권한을 부여하는 정책을 정의할 수 있습니다. 태그를 사용하여 AWS 리소스에 대한 액세스를 제어하면 AWS 정책에 대한 변경 사항이 줄어들면서 관리의 편의성과 보안강화를 함께 가져올 수 있습니다.

2. 태그(TAG)기반 액세스 권한 정의

실습 순서 : EC2 인스턴스 생성 -> 위임 정책 구성 -> 역할(Role)을 위한 정책 구성 -> 역할 만들기 ->그룹에 정책 연결 ->태그 기반의 정책 확인

1) EC2 인스턴스 생성

다음의 태그를 가진 인스턴스를 생성합니다.

2) 부여할 정책 구성하기

Team prd와 dev 2개의 정책을 구성하고 이 때 사용되는 리소스의 ARN은 다음과 같습니다.

arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME

생성 순서 : IAM -> 정책 -> 정책 생성 ->각 항목에 맞는 정책을 아래와 같이 JSON 파일로 직접 생성합니다.

위임 정책의 이름은 “prd-sts-assume”로 정합니다.

앞서 생성한 정책과 동일하게 dev 정책을 만듭니다.

결과 확인)

3)역할을 위한 정책을 구성합니다.

EC2 인스턴스에 접근하기 위한 정책을 구성합니다. 미리 생성된 4개의 인스턴스는 이미 2개의 그룹으로 나누어져 있습니다. 1개는 prd 그룹 엔지니어들이 EC2에 접속할 수 있도록 정책을 구성하고 다른 하나는 dev 그룹 엔지니어들이 EC2에 접속할 수 있도록 정책을 구성합니다.

아래 JSON 파일은 prd 그룹이 앞서 생성한 정책을 통해 역할에 접근할 때, 연결될 정책입니다. EC2 인스턴스의 “tag key -team, value – prd”, “tag key – project, value – A” 태그가 있는 경우 접속을 허용합니다. 정책 이름은 prd-role-policy입니다.

같은 방법으로 dev 그룹도 이 위임정책을 통해 Role에 접근할 때, 연결될 정책입니다. 마찬가지로 EC2인스턴스의 “tag key -team, value – dev”, “tag key – project, value – B” 태그가 있는 경우 접속을 허용합니다. 정책 이름은 dev-role-policy입니다.

2개(Prd와 Dev)의 정책 생성이 완료되면 아래와 같이 모든 정책의 구성이 완료되었습니다.

4) 역할 만들기

이제 역할을 정의합니다. 앞서 역할을 위한 정책 구성 단계에서 이미 정책을 생성하였습니다. 모든 단계를 건너뛰고 검토 단계에서 역할 이름을 정의합니다. 역할 이름을 각각 prd-role, dev-role로 정합니다.

이미 생성된 각 prd-role과 dev-role에 정책을 연결해 줍니다.

각 그룹에 맞는 정책을 연결합니다.

6) 태그 기반의 정책 확인

사용자 “yujin-tag-prd”가 EC2 인스턴스 태그 A-prd를 포함하는 인스턴스에 정상적으로 접속되는지 확인합니다.
또한 사용자 “yujin-tag-dev” 가 EC2 인스턴스 태그 B-dev를 포함하는 인스턴스에 정상적으로 접속되는지 확인합니다.


먼저 prd그룹의 사용자를 통해 로그인합니다. 사용자 메뉴에서 “역할 전환”을 선택합니다. 역할 전환에서 현재 계정ID와 역할 만들기에서 생성한 역할 이름을 선택하고 역할 전환을 진행합니다.

정상적으로 역할 전환(Role Switch)가 이루어졌습니다.

이제 “prd-role”을 통해서 prd 인스턴스만 연결이 가능한지 확인합니다. bespin-A-01나 bespin-A-02를 선택하고 연결을 진행합니다.

아래와 같이 정상적으로 연결 가능합니다.

이제 dev-role의 역할 정책에 정의되어 있지 않은 dev 인스턴스를 연결해 봅니다.

dev의 역할에는 접속 권한이 없으므로 접속되지 않습니다.

이와 같이 태그를 사용하여 IAM 사용자 및 역할에 액세스 해보는 테스트를 알아볼 수 있었습니다.

감사합니다.