AWS

[AWS][IAM] IAM ABAC(속성 기반 액세스 제어) 개념편

Always-Try 2022. 1. 31. 21:21
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction_attribute-based-access-control.html

 

1. 개요

  • 속성(태그)를 기반으로 권한을 정의하는 권한 부여 전략이다. IAM 엔터티(사용자 또는 역할)와 AWS 리소스에 태그를 연결할 수 있으며, 이러한 ABAC 정책은 보안 주체의 태그가 리소스 태그와 일치할 때 작업을 허용하도록 설계될 수 있다. 

 

2. 필요성 

  • 기존 RBAC 모델을 사용하면 직원이 새 리소스를 추가할 때 해당 리소스에 액세스할 수 있도록 정책을 업데이트해야 한다는 단점이 있다.

 

3. 장점

  • ABAC 권한은 혁신적으로 확장됩니다. 
    • 관리자가 새 리소스에 액세스할 수 있도록 기존 정책을 업데이트할 필요가 없습니다. 예를 들어, access-project 태그로 ABAC 전략을 설계했다고 가정합니다. 개발자는 access-project = Heart 태그와 함께 역할을 사용합니다. Heart 사용자에게 추가 Amazon EC2 리소스가 필요한 경우 개발자는 access-project = Heart 태그를 사용하여 새 Amazon EC2 인스턴스를 생성할 수 있습니다. 그러면 Heart 프로젝트의 모든 사용자가 태그 값이 일치하기 때문에 해당 인스턴스를 시작하고 중지할 수 있습니다.
  • ABAC를 사용하면 필요한 정책 수가 적어집니다. 
    • 각 직무에 대해 서로 다른 정책을 생성할 필요가 없기 때문에 생성해야 하는 정책이 더 적습니다. 그러므로 정책을 관리하기가 더 쉽습니다.
  • ABAC를 사용하여 팀은 빠르게 변화하고 성장할 수 있습니다. 
    • 새 리소스에 대한 권한이 속성에 따라 자동으로 부여되기 때문입니다. 예를 들어, 회사에서 이미 ABAC를 사용하여 Heart  Sun 프로젝트를 지원하는 경우 새 Lightning 프로젝트를 쉽게 추가할 수 있습니다. IAM 관리자는 access-project = Lightning 태그를 사용하여 새 역할을 생성합니다. 새 프로젝트를 지원하기 위해 정책을 변경할 필요는 없습니다. 역할을 맡을 권한이 있는 모든 사용자는 access-project = Lightning 태그가 지정된 인스턴스를 생성하고 볼 수 있습니다. 또한 팀 멤버가 Heart 프로젝트에서 Lightning 프로젝트로 이동할 수 있습니다. IAM 관리자는 사용자를 다른 IAM 역할에 할당합니다. 권한 정책을 변경할 필요가 없습니다.
  • ABAC를 사용하여 세분화된 권한을 사용할 수 있습니다. 
    • 정책을 생성할 때는 최소 권한을 부여하는 것이 가장 좋습니다. 기존 RBAC를 사용하는 경우에는 특정 리소스에 대한 액세스만 허용하는 정책을 작성해야 합니다. 그러나 ABAC를 사용하는 경우 리소스 태그가 보안 주체의 태그와 일치하는 경우에만 모든 리소스에 대한 작업을 허용할 수 있습니다.
  • ABAC를 사용하여 회사 디렉터리의 직원 속성을 사용합니다. 
    • 세션 태그를 전달하도록 SAML 기반 또는 웹 자격 증명 공급자를 구성할 수 있습니다. AWS 직원이 AWS에 연동되면 해당 속성이 AWS의 결과 보안 주체에 적용됩니다. 그런 다음 ABAC를 사용하여 이러한 속성에 따라 권한을 허용하거나 거부할 수 있습니다.