역할 전환 (Role Switch)
역할 (Role)
IAM 역할(Role)은 신뢰하는 개체에 권한(Permission)을 부여하는 안전한 방법입니다.특정 권한을 가진 계정에 생성할 수 있는 IAM 자격 증명, IAM 역할은 IAM 사용자와 몇 가지 점에서 유사합니다. 역할과 사용자 모두 AWS에서 자격 증명으로 할 수 있는 것과 할 수 없는 것을 결정하는 권한 정책을 포함하는 AWS 자격 증명입니다. 그러나 역할은 한 사람과만 연관되지 않고 해당 역할이 필요한 사람이라면 누구든지 맡을 수 있어야 합니다. 또한 역할에는 그와 연관된 암호 또는 액세스 키와 같은 표준 장기 자격 증명이 없습니다. 그 대신, 역할을 수임하면 역할 세션을 위한 임시 보안 자격 증명을 제공합니다.
역할(Role)은 하나 이상의 정책(Policy)을 기반으로 구성됩니다. 앞서 소개한 데로 정책(Policy)는 서비스 별로 할 수 있는 작업을 정의하고 있는 규칙들입니다.
역할은 다음의 주체들이 사용할 수 있습니다.
동일한 AWS 계정의 IAM 사용자
역할과 다른 AWS 계정의 IAM 사용자
Amazon Elastic Compute Cloud(Amazon EC2)와 같은 AWS가 제공하는 웹 서비스
SAML 2.0, OpenID Connect 또는 사용자 지정 구축 자격 증명 브로커와 호환되는 외부 자격 증명 공급자(IdP) 서비스에 의해 인증된 외부 사용자
Role Switch
1.RBAC(Role-Based Access Control)
RBAC을 사용하게 되면 그룹 또는 사용자에게 직접 권한을 주지 않고, 여러 권한의 논리적인 집합들을 역할(Role)로 만들고 그룹 또는 사용자에게 연결 할 수 있습니다. 이렇게 되면 필요에 따라 역할을 부여할 수 있으므로 복잡하고, 경직되게 권한을 관리하지 않아도 됩니다.
2. Role Switch 구성
Dev-Pro는 [Dev]사용자 그룹으로부터 상속받은 AmazonEC2FullAccess 권한만을 가지고 있습니다. Dev-Pro는 개발환경 구축을 위해 builders-s3-영어이름 버킷의 리소스 기반 정책을 삭제하고자 합니다.
모든 권한을 가진 SuperRole을 생성한뒤, SuperRole을 Dev-Pro에게 할당하여 Dev-Pro가 모든 권한을 수행할 수 있게 해주는 Role Switch를 구성해보도록 하겠습니다.

3. 새로운 역할 (SuperRole) 생성
Super-Pro로 로그인하여, IAM 좌측의 역할에서 역할 만들기 버튼을 클릭합니다.

4. 신뢰할 수 있는 엔터티 선택
AWS 계정 선택 후, AWS 계정이 이 계정(본인의 Account ID)인 것을 확인하고 다음 버튼을 클릭합니다.

5. 권한 추가
AdministratorAccess를 검색하여 선택한 후, 다음 버튼을 클릭합니다.

6. 이름 지정, 검토 및 생성
역할 이름에 builders-role 을 입력하고, 화면 하단의 역할 생성 버튼을 클릭합니다.

7. 생성된 역할 확인
생성된 역할을 확인하고, 역할 ARN을 복사해둡니다.

8. 위임을 위한 새로운 정책 생성
이제 사용자가 새로 만든 역할(Role)을 사용하기 위해, STS 기반의 위임(Assume) 정책을 생성합니다. 이 정책은 고객관리형 정책으로 해당 계정에서만 존재하게 됩니다.
IAM 좌측의 정책에서 정책 생성 버튼을 클릭합니다.

서비스: STS, 작업: AssumeRole 선택 후, 리소스에서 ARN 추가 글씨 선택.

위에서 저장해둔 builders-role의 ARN을 붙여넣은 후, 추가 버튼을 클릭합니다.

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::ACCOUNT-NUMBER:role/ROLE-NAME"
}
]
}
다음: 태그 버튼을 클릭 후, 다음: 검토 버튼을 누르고 정책 이름을 builders-policy로 입력 후 정책 생성 버튼을 클릭합니다.

9. 사용자에 권한 추가
Dev-Pro에서 지금 만든 권한을 추가해 줍니다.
IAM 좌측의 사용자에서 Dev-Pro를 선택하고 권한 추가 버튼을 클릭해줍니다.

기존 정책 직접 연결 선택 후, builders로 검색하셔서 바로 위에서 위임을 위해 만든 정책 (builders-policy)을 선택하고 다음:검토 버튼을 클릭하고 권한 추가 버튼도 클릭합니다.

10. Dev-Pro로 로그인하여 Role Switch
위임정책이 할당된 사용자 Dev-Pro로 로그인 합니다 로그인 후에 우측 상단의 사용자를 선택 후 아래쪽에 역할 전환 (Role Switch)을 선택 합니다. (그 전에 Account ID를 따로 복사해두세요.)
역할 전환 버튼을 클릭합니다.

계정: 현재 계정 ID 역할: builders-role
을 입력하신 후, 역할 전환 버튼을 클릭합니다.

11. 역할 전환 확인 및 S3 버킷 리소스 기반 정책 수정
우측 상단을 보시면 역할이름@Account ID로 역할이 전환된 것을 확인하실 수 있습니다. 이 상태에서는 기존에 Dev-Pro에게 주어진 권한은 모두 사라지고, 현재 역할인 builders-role에 할당된 AdministratorAccess 권한만 주어집니다.

S3로 가서 아까 생성한 버킷을 선택한 후, 권한에서 버킷 정책의 삭제 버튼을 클릭합니다.

확인창에서 '삭제'를 입력 후 삭제 버튼을 클릭합니다.

Dev-Pro는 [Dev]사용자 그룹에서 위임받은 AmazonEC2FullAccess권한만 있으므로, S3의 변경권한이 없습니다. 그러므로 S3에 대해 변경하려고 하면 권한이 없다는 경고문구가 떠야 합니다.
하지만 지금은 Dev-Pro는 AdministratorAccess정책이 적용된 builders-role을 위임받아, 모든 권한을 행사할수 있게 되었습니다.
Last updated
Was this helpful?