본문 바로가기

AWS

AWS IAM을 통한 인증, 인가

반응형

IAM (Identity and Access Management)

: AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스이다. IAM을 사용하여 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어할 수 있다.

⇒ 인증 : 로그인

⇒ 인가 : 권한 확인

IAM Group

IAM User

IAM Role

IAM Policy

IAM 정책 소개

IAM에서 자격 증명에 대한 권한을 설정할 경우 AWS 관리형 정책, 고객 관리형 정책 또는 인라인 정책 중 어떤 것을 사용할지 결정해야 한다.

  • 자격 증명 기반 (Identity-based policies)
  • AWS 관리형 정책 : AWS에서 제공하는 글로벌 적용
  • AWS 고객 관리형 정책 : 계정에서 직접 생성하여 사용 및 관리

 

  • AWS 인라인 정책 : 단일 사용자, 그룹 역할에 직접(directly) 추가하여 사용 및 관리

 

  • 리소스 기반 정책 (Resource-based policies)
  • 권한 경계 기반 정책 (Permission boundaries)
  • 조직 SCP 기반 정책 (Organizations SCPs)
  • 세션 정책 (Session Policies)

정책 시뮬레이션

현재 적용된 정책이 어떤 권한을 가지고, 어떤 자원을 사용할 수 있는지를 평가해주는 도구이다.

⇒ 사용자 계정에서 직접 생성한 권한이 해당 리소스에 대한 특정 권한이 있는지를 파악할 때 사용하기 좋은 도구이다.

명시적 접근 거부

AmazonEC2FullAccess를 통해 현재 CloudWatch Logs에 대한 권한이 Allowed 상태이다.

 

인라인 정책에 CloudWatch Logs를 거부하여 명시적 거부를 시켜보겠다.

CloudWatch Dashboard로의 접근 실패

⇒ 명시적 거부가 있는 경우, 허용된 정책 권한이 있더라도 우선시함. test_user는 EC2FullAccess 권한으로 Cloudwatch에 대한 권한을 가지고 있지만, 사용자에 인라인정책을 적용하여 명시적 접근 거부 정책으로 Cloudwatch에 대한 접근을 제어할 수 있게 된다.

 

권한 경계(Permission Boundary)란?

자격 증명 기반 정책을 통해 IAM Entity에 부여할 수 있는 '최대 권한'을 설정하는 기능이다.

Entity에 대한 '최대 권한'을 설정하고 싶은 경우 1) 자격 증명 기반 정책 및 2) 권한 경계 모두에서 허용되는 작업만 수행할 수 있다.

아래 사진으로 설명을 하자면,

Identity-based policy와 Permission boundary의 교집합에 포함되는 정책만 Effective 된다.

test_user 유저에게 아래의 권한을 부여해주었다.

⇒ 여기서 추측할 수 있는 부분은 AdministratorAccess와 S3FullAccess의 교집합인 S3FullAccess 권만 가질 수 있을 것이라 추측할 수 있다.

결과

⇒ Administrator 권한을 가지고 있지만 권한 경계로 인해 EC2 Instance에 대한 권한이 없음을 확인할 수 있다.

 

반응형