Ssoon

AWS IAM Workshop - 역할 전환(Role Switch) 본문

AWS Hacking & Security Study

AWS IAM Workshop - 역할 전환(Role Switch)

구구달스 2023. 9. 10. 08:03
CloudNet@가시다님이 진행하는 "AWS Hacking & Security Study" 1기 스터디입니다.
# AWS IAM Workshop 를 참조하였습니다.

IAM 역할(Role)

AWS 리소스 간 및 AWS 리소스와 외부 엔터티 간의 권한을 관리하는 데 사용

출처 : https://aws.amazon.com/ko/blogs/security/now-create-and-manage-aws-iam-roles-more-easily-with-the-updated-iam-console/

  1. 임시 보안 자격 증명: IAM 역할을 사용하면 AWS 리소스에 대한 엑세스를 위해 임시 보안 자격 증명을 제공할 수 있습니다. 이것은 특히 EC2 인스턴스, Lambda 함수 등과 같이 애플리케이션에서 AWS 서비스에 엑세스해야 할 때 유용합니다.
  2. 권한 할당: IAM 역할은 AWS 리소스에 할당되는 권한을 정의합니다. 역할 정책(Policy)을 사용하여 어떤 작업이 수행될 수 있는지, 어떤 리소스에 접근할 수 있는지 제어합니다. 역할에 할당된 권한은 다른 역할 또는 사용자에게 직접적으로 부여되지 않으므로 역할을 사용하면 보안과 권한 관리를 향상시킬 수 있습니다.
  3. 크로스 계정 액세스: IAM 역할은 다른 AWS 계정 또는 외부 엔터티와의 상호 운용성을 지원합니다. 이를 통해 다른 AWS 계정의 사용자나 AWS 서비스가 역할을 사용하여 귀하의 리소스에 액세스할 수 있습니다.
  4. 신뢰 관계: 역할은 하나 이상의 신뢰 관계(Trust Relationship)를 가질 수 있습니다. 이 신뢰 관계는 어떤 엔터티(예: 다른 AWS 계정, AWS 서비스)가 역할을 언제 사용할 수 있는지를 정의합니다.
  5. 크로스 서비스 액세스: IAM 역할은 여러 AWS 서비스 간에 연결을 형성하는 데 사용됩니다. 예를 들어, AWS Lambda 함수에서 S3 버킷에 액세스하거나 EC2 인스턴스에서 AWS RDS 데이터베이스에 액세스할 때 IAM 역할을 사용할 수 있습니다.

 

역할 전환(Role Switch) 

💠 RBAC(Role-Based Access Control)

  • 그룹 또는 사용자에게 직접 권한을 주지 않고, 여러 권한의 논리적인 집합들을 역할(Role)로 만들고 그룹 또는 사용자에게 연결 할 수 있습니다
  • 필요에 따라 역할을 부여할 수 있습니다.

 

💠 Role Switch 구성

Dev-Pro는 [Dev]사용자 그룹으로부터 상속받은 AmazonEC2FullAccess 권한만을 가지고 있습니다.

Dev-Pro는 개발환경 구축을 위해 builders-s3-영어이름 버킷의 리소스 기반 정책을 삭제하고자 합니다.

  • 모든 권한을 가진 SuperRole을 생성
  • SuperRoleDev-Pro에게 할당
  • Dev-Pro가 모든 권한을 수행할 수 있게 해주는 Role Switch를 구성

 

 새로운 역할 (SuperRole) 생성

  • Super-Pro로 로그인

  • AWS account 선택 후, AWS 계정이 본인의 Account ID인 것을 확인

권한 추가

  • AdministratorAccess 선택

이름 지정, 검토 및 생성

  • role 이름에 builders-role 입력하고 `create role` 을 클릭 > role 생성

생성된 Role 역활 확인

  • 생성된 Role 확인

  • ARN 정보 복사

 

위임을 위한 새로운 정책 생성

  • 사용자가 새로 만든 역할(Role)을 사용하기 위해, STS 기반의 위임(Assume) 정책을 생성
  • 고객관리형 정책으로 해당 계정에서만 존재

 

  • 서비스: STS
  • 작업: AssumeRole 
  • 리소스에서 ARN 추가 선택.

  • 앞서 복사한 ARN 정보를 붙혀넣습니다..

  • JSON 형식으로도 확인할 수 있습니다.

  • 정책 이름을 builders-policy로 입력 후 정책 생성

✔ 사용자에 권한 추가  

  • Dev-Pro에서 지금 만든 권한을 추가

  • Attach policies directly 직접 정책 연결 선택
  • 위에서 위임을 위해 만든 정책 builders-policy 을 선택

  • 정책 연결

  • Dev-Pro 사용자에 연결된 정책 확인

✔ Dev-Pro로 로그인하여 Role Switch

  • 위임정책이 할당된 사용자 Dev-Pro로 로그인
  • 로그인 후에 우측 상단의 사용자를 선택 후 아래쪽에 역할 전환 Switch role 선택
  • (그 전에 Account ID를 따로 복사)

  • 계정: 현재 계정 ID (앞서 복사해둔 Account ID) 
  • 역할: builders-role

  • 역할 전환

 역할 전환 확인 및 S3 버킷 리소스 기반 정책 수정

  • 우측 상단 역할이름@Account ID로 역할이 전환된 것을 확인
  • 기존에 Dev-Pro에게 주어진 권한은 모두 사라지고, 현재 역할인 builders-role에 할당된 AdministratorAccess 권한만 부여
  • S3로 가서 아까 생성한 버킷을 선택 

  • Permissions 에서 Bucket policy 을 삭제

  • Dev-Pro는 [Dev]사용자 그룹에서 위임받은 AmazonEC2FullAccess권한만 있으므로, S3의 변경권한이 없습니다.            ->    그러므로 S3에 대해 변경하려고 하면 권한이 없다는 경고문구가 떠야 합니다.

지금은 Dev-ProAdministratorAccess정책이 적용된 builders-role을 위임받아, 모든 권한을 행사 가능

 

 

 

 

 

Comments