본문 바로가기

Cloud Study/AWS

[AWS] IAM 의 Policy (정책) 및 Permission (권한)

AWS를 이용하면서 가장 중요하고, 가장 어려운 부분이 IAM 이라고 생각합니다.

서비스 구축할때 보안은 절대적으로 중요한 요소이기도 합니다.

IAM의 Policy 와 Permission 에 대해서 정리해 보고자 합니다.

 

AWS IAM이란 무엇인가?

AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 서비스입니다.
IAM을 사용하여 리소스를 사용하도록 인증(로그인) 하거나 권한 부된 대상을 제어할 수 있습니다.

 

IAM 용어

  • IAM 리소스
    - IAM에 저장된 사용자, 그룹, 정책 및 자격 증명 공급자 객체
  • IAM 자격증명
    - 사용자를 식별하거나 그룹화에 사용되는 IAM 리소스 객체입니다. 
  • IAM 엔터티 
    - AWS가 인증에 사용하는 IAM 리소스를 의미합니다. (User, Group, Role...)
  • IAM 보안주체
    - AWS 계정 루트 사용자, IAM 사용자 또는 IAM 역할을 사용하여 로그인하고 AWS에 요청하는 사용자

 

IAM 을 사용하기 전에 개념에 대해 정리해 보고자 합니다.

Role (역할) vs Policy  (정책) vs Permission (권한)

Role (역할)

AWS 리소스에 액세스할 수 없는 사용자나 애플리케이션 또는 서비스에 액세스 권한(Permission) 을 정의하는 IAM 엔터티입니다. IAM 역할은 특정 사용자나 그룹에 연결되어 있지 않습니다. 대신 IAM 사용자, EC2와 같은 AWS가 제공하는 서비스에 IAM Role(역할)을 부여하여 해당 서비스에 대해 신뢰할 수 있는 엔터티입니다.

역할(Role)의 경우 하나 이상의 정책(Policy)을 기반으로 구성하게 됩니다.

 

Policy  (정책) 

AWS 서비스에 하나 또는 다수의 Permissions (권한) 을 부여하여 Resource 에 액세스 할수 있게 정의하거나, 접근하지 못하도록 정의할 수 있습니다. 

 

Policy Type 의 경우 아래와 같이 6가지로 분류할 수 있습니다.

중요하게 생각하는 생각되는 Identity-based policies (자격 증명 기반 정책), Resource-based policies (리소스 기반 정책), Permissions boundaries (권한 경계) 에 대해서 알아보도록 하겠습니다.

 

Identity-based policies (자격 증명 기반 정책)  

AWS 관리형 정책 및  AWS 인라인 정책을 사용자(User), 그룹(Group), 역할(Role)에 연결합니다.

 

AWS 관리형 정책 - AWS에서 제공해주는 Policy
AWS 고객 관리형 정책 - 사용자가 직접 생성하고 관리하는 Policy 
AWS 인라인 정책 - 사용자, 그룹, 역할에 One To One  정책으로 명시적으로 할당하는 방식.


Resource-based policies (리소스 기반 정책) 

인라인 정책을 리소스에 연결합니다. 리소스 기반 정책의 가장 일반적인 예제는 Amazon S3 버킷 정책 및 IAM 역할 트러스트 정책입니다. ( IAM Role trust policy: Role에 연결되는 정책으로 역할을 수임할 수 있는 보안 주체 Entity를 정의)
리소스 기반 정책은 정책에 지정된 보안 주체에 권한을 부여합니다. 보안 주체는 리소스와 동일한 계정 또는 다른 계정에 있을 수 있습니다.

Permissions boundaries (권한 경계) 

관리형 정책을 IAM 엔터티(사용자 또는 역할)에 대한 권한 경계로 사용합니다. 해당 정책은 자격 증명 기반 정책을 통해 엔터티에 부여할 수 있는 최대 권한을 정의하지만, 권한을 부여하지는 않습니다. 권한 경계는 리소스 기반 정책을 통해 엔터티에 부여할 수 있는 최대 권한을 정의하지 않습니다.

Organizations SCP (조직 SCP) 

AWS Organizations 서비스 제어 정책(SCP)을 사용하여 조직 또는 조직 단위(OU)의 계정 멤버에 대한 최대 권한을 정의합니다. SCP는 자격 증명 기반 정책이나 리소스 기반 정책을 통해 계정 내 엔터티(사용자나 역할)에 부여하는 권한을 제한하지만, 권한을 부여하지는 않습니다.

Access control lists (액세스 제어 목록 ACL)

ACL을 사용하여 ACL이 연결된 리소스에 액세스할 수 있는 다른 계정의 보안 주체를 제어합니다. ACL는 리소스 기반 정책과 비슷합니다. 다만 JSON 정책 문서 구조를 사용하지 않은 유일한 정책 유형입니다. ACL은 지정된 보안 주체에 권한을 부여하는 교차 계정 권한 정책입니다. ACL은 동일 계정 내 엔터티에 권한을 부여할 수 없습니다.

Session policies (세션 정책)

AWS CLI 또는 AWS API를 사용하여 역할이나 연합된 사용자를 수임할 때 고급 세션 정책을 전달합니다. 세션 정책은 역할이나 사용자의 자격 증명 기반 정책을 통해 세션에 부여하는 권한을 제한합니다. 세션 정책은 생성된 세션에 대한 권한을 제한하지 않지만, 권한을 부여하지도 않습니다. 자세한 정보는 세션 정책을 참조하세요.

 

 

'Cloud Study > AWS' 카테고리의 다른 글

[AWS] EC2에 Private IP지정하여 사용하기  (0) 2022.01.17
[AWS] VPC 엔드포인트  (0) 2021.07.15
[AWS] VPC 란  (0) 2021.01.29