DevSecOps/AWS Security

AWS IAM 정책의 Action vs NotAction

S0NG 2025. 7. 1. 10:11
728x90
반응형

AWS IAM 정책을 설계할 때 자주 마주치는 키워드 중 하나가 Action입니다. 하지만 이와 짝을 이루는 개념인 NotAction은 의외로 많은 사람들이 잘 이해하지 못하거나, 오해한 채 사용하는 경우가 많습니다.

 

이 글에서는 Action과 NotAction의 개념적 차이부터 실무 설계 시 주의할 점, 보안 사고로 이어질 수 있는 잘못된 사용 사례까지 정리합니다.


1. 기본 개념

의미 허용 또는 거부할 특정 작업을 명시 허용 또는 거부에서 제외할 작업을 명시
작동 방식 이 작업들을 허용/거부한다 이 작업들을 제외한 나머지를 허용/거부한다
주 사용 위치 Effect: Allow 또는 Deny 주로 Effect: Deny에서 사용
전형적 목적 명시적 권한 부여 또는 제한 범용 거부 정책에서 특정 예외 허용 시 사용
 

2. 예제 비교

2-1. Action 사용 예시

{
  "Effect": "Allow",
  "Action": [
    "s3:GetObject",
    "s3:ListBucket"
  ],
  "Resource": "*"
}

→ S3에서 GetObject, ListBucket 작업만 허용.


2-2. NotAction 사용 예시

{
  "Effect": "Deny",
  "NotAction": [
    "cloudtrail:*",
    "s3:GetObject"
  ],
  "Resource": "*"
}

→ cloudtrail:*과 s3:GetObject를 제외한 모든 작업을 거부. 즉, 특정 작업만 허용하고 나머지는 모두 막는 효과.


3. 실무 설계에서의 쓰임새

Action: 권한 허용·거부 시 기본

  • 대부분의 정책은 Action을 중심으로 작성됩니다.
  • 어떤 서비스의 어떤 작업을 허용할지 명확하게 정의할 수 있어, Least Privilege 설계에 적합.

NotAction: 예외 기반 제어 또는 제한적인 허용

  • 특정 상황에서 모든 액션을 기본 거부하고 일부만 허용할 때 사용됩니다.
  • SCP, Permissions Boundary 또는 Deny 중심 정책 설계에 활용됩니다.

4. 잘못된 사용 사례와 보안 리스크

사례: NotAction을 Effect: Allow로 사용할 경우

{
  "Effect": "Allow",
  "NotAction": "iam:DeleteUser",
  "Resource": "*"
}

→ DeleteUser를 제외한 모든 IAM 작업을 허용. 즉, 거의 모든 작업이 허용되는 매우 위험한 정책이 됩니다.

 

주의: Effect: Allow와 NotAction은 매우 조합하기 까다롭고, 실수하면 과도한 권한 부여로 이어질 수 있습니다.

→ 실무에서는 Effect: Deny + NotAction 조합이 훨씬 안전하며 권장됩니다.


5. 전략적 활용 시나리오

 

최소 권한 모델 설계 Action으로 명시적 허용 중심 설계
민감 작업을 모두 차단하고 일부만 허용 Effect: Deny + NotAction
특정 OU 또는 계정에서 모든 서비스 사용 금지 SCP에서 Effect: Deny + NotAction 활용
IAM Role에서 예상치 못한 권한 승계를 차단 NotAction으로 간접적인 접근 경로 제한 가능
 

6. 정리

 

방향성 허용할 작업 정의 제외할 작업 정의
주 사용 방식 권한 허용/거부 권한 거부 시 특정 작업만 허용
실수 시 리스크 제한된 권한 부여 과도한 권한 부여 가능성 큼
권장 사용 대부분의 정책 Deny 중심의 보안 강화 용도에 한정
 

마무리

Action은 IAM 정책의 기본이고, NotAction은 예외적 상황에서만 신중하게 사용해야 하는 고급 기능입니다. 특히 NotAction은 Effect: Allow와 함께 쓰는 경우 과도한 권한 부여가 발생할 수 있기 때문에, 설계 목적이 명확하지 않다면 사용을 피하는 것이 안전합니다.

실무에서는 다음 원칙을 지켜야 합니다.

  • 가능한 한 Action 중심으로 명시적으로 설계
  • NotAction은 정말 필요한 최소한의 예외 제어에만 사용
  • CloudTrail, IAM Access Analyzer 등과 연계해 권한 검증 필수
728x90
반응형