본문 바로가기
클라우드 서비스

[클라우드 서비스] Access Control _ 20241202

by 황오독 2024. 12. 4.

** 계정 보안이 필요한 이유

- 권한이 없는 사용자의 클라우드 접근 및 요청을 차단

- 관리자에게만 모든 서비스에 대한 완전한 액세스를 허용

- 대부분의 사용자는 자신의 역할(직무)에 따라 제한된 접근 권한만을 부여하는 것이 바람직함.

(가상머신 생성권한, 데이터 읽기 권한, 결제 정보 엑세스 권한 등)

- 리소스나 서비스간에 접근을 허용하고 제한

 

=> 클라우드 서비스 및 리소스에 액세스 할 수 있는 주체와 작업수행 권한을 관리

 

1. Root user & IAM user

- AWS 계정을 생성하면 루트 사용자로 시작하며 루트 사용자는 모든 AWS 서비스 및 리소스에 대한 전체 엑세스 권한을 가짐

- 따라서 루트 사용자보다는 IAM 사용자를 생성한 후 최소한의 권한(Least Privilege)을 할당하여 사용하는 것이 바람직함

 

(1) IAM User

- IAM 사용자 생성 후 권한을 정의하는 개체인 정책(Policy)을 설정하여 권한 부여

- 사용자는 정책에 적용된 권한에 따라 클라우드 상에서 특정 작업을 수행할 수 있음

 

① IAM 그룹

- IAM 그룹을 활용하면 동일한 업무를 수행하는 다수의 사용자들에 대한 권한을 좀 더 쉽게 관리할 수 있음

 

② IAM ROLE

* 임시 자격증명의 필요성

- 사용자에게 일시적으로 임시 접근권한을 부여해야 할 경우 혹은 AWS 리소스와 서비스 간의 접근은 어떻게 관리해야 할까?

- IAM Role을 사용하여 사용자 또는 AWS 서비스(리소스)간에 액세스하기 위한 임시 접근권한 집합을 정의할 수 있음

- IAM Role을 수임하면 역할에 정의된 권한 내에서 특정 시간동안 정해진 작업을 수행할 수 있음

  (사용자에게 있던 기존 권한은 역할을 수임한 기간동안 회수됨)

③ IAM 정책

자격증명 기반 정책 리소스 기반 정책
- 사용자, 그룹 또는 역할 등에 적용하여 특정 주체가 리소스에 접근하여 수행할 수 있는 권한을 지정
- 예를 들어 특정 IAM 사용자에게 EC2 인스턴스에 접근하여 모든 작업을 수행하도록 허용하는 정책을 정의
- 리소스에 정책을 적용하여 액세스할 수 있는 주체 및 리소스에서 수행할 수 있는 작업을 지정
- 리소스 기반 정책을 활용하는 일반적인 사례는 S3 버킷 정책으로 정책에 지정된 주체에 데이터 접근 권한을 부여
사용자 A는 Resource X에 대한 List, Read 권한
그룹 B는 Resource B에 대한 List, Read, Write 권한
Resource X는 List, Read 권한 (사용자 A)
Resource B는 List, Read, Write 권한 (그룹 B)

 

** IAM 정책 구조

코드 정책 내용
{
 "Statement":[{
    "Effect":"Allow or Deny",
    "Principal":"principal",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
       "condition":{
          "key":"value"}
         }
       }
     ]
 }
Effect 명시된 정책에 대한 허용 혹은 차단
Principal 접근을 허용 혹은 차단하고자 하는 대상
Action 허용 혹은 차단하고자 하는 접근 타입
Resource 요청의 목적지가 되는 서비스
Condition 명시된 조건이 유효하다고 판단될 수 있는 조건

 

④ IAM 권한 경계

- IAM 권한 경계(Permission boundary)는 권한을 부여하는 목적이 아닌 사용자 권한을 제한하는 목적으로 활용

- 조직 내 보안 정책 범위를 벗어난 잘못된 정책 적용 시 필터링 역할을 할 수 있음