IAM 계정/권한 최종 정리IAM 계정/권한 최종 정리

IAM 계정/권한 최종 정리

생성 일시
Sep 11, 2026 01:17 AM
최종 편집 일시
Last updated September 11, 2026
태그
AWS
IAM
terraform
Infra
작성자
@장혜리
Date
graph TD
  subgraph Users["IAM Users (identity/members.yaml)"]
    U_byungeun[byungeun]
    U_hyemin[hyemin]
    U_hyeri[hyeri]
    U_jaewon[jaewon]
    U_jinhyuk[jinhyuk]
    U_junhwan[junhwan]
    U_taehyung[taehyung]
    U_yunha[yunha]
  end

  subgraph Groups["IAM Groups (identity/groups.yaml)"]
    G_Attack[WHS4_Attack]
    G_Infra[WHS4_Infra]
    G_SIEM[WHS4_SIEM_Detect]
  end

  subgraph UserPolicies["사용자 개별 정책 (identity/users.tf, 8명 전원)"]
    P_SelfSvc["self-service-credentials<br/>본인 비번/키/MFA 관리"]
    P_MFA["require-mfa<br/>MFA 미인증시 전체 Deny (guardrail)"]
  end

  subgraph GroupPolicies["그룹 부착 정책"]
    P_EC2[AmazonEC2FullAccess]:::broad
    P_IAMFull[IAMFullAccess]:::broad
    P_S3[AmazonS3FullAccess]:::broad
    P_CTFull[AWSCloudTrail_FullAccess]:::broad
    P_CWLogs[CloudWatchLogsFullAccess]
    P_CWRO[CloudWatchReadOnlyAccess]
    P_GDRO[AmazonGuardDutyReadOnlyAccess]
    P_IAMRO[IAMReadOnlyAccess]
    P_CTRO[AWSCloudTrail_ReadOnlyAccess]
    P_SelfMgmt["WHS4_SelfAccountManagement<br/>(코드에 정의 없음, 외부/수동)"]:::external
    P_Login["aws-login (platform)<br/>로컬 브라우저 로그인 전용<br/>⚠ platform 코드상 attach 리소스 삭제됨"]:::external
    P_PortFwd["wazuh-ssm-port-forwarding (platform)<br/>Wazuh EC2 한정<br/>⚠ platform 코드상 attach 리소스 삭제됨"]:::external
  end

  subgraph Roles["IAM Roles"]
    R_plan["github-actions-plan<br/>(bootstrap/oidc.tf)"]
    R_apply["github-actions-apply<br/>(bootstrap/oidc.tf)"]
    R_wazuh["wazuh-role<br/>(platform/wazuh/iam.tf)"]
  end

  subgraph RolePolicies["Role 부착 정책"]
    P_RO[ReadOnlyAccess]
    P_TFState["kintoun-tfstate-access<br/>state버킷 키 한정"]
    P_PUA[PowerUserAccess]:::broad
    P_WazuhSSM["ec2-ssm-role<br/>(구 wazuh-ec2-ssm-role, 이름 변경됨)"]
  end

  U_byungeun --> G_SIEM
  U_hyemin --> G_SIEM
  U_hyeri --> G_Infra
  U_hyeri --> G_SIEM
  U_jaewon --> G_SIEM
  U_jinhyuk --> G_SIEM
  U_junhwan --> G_Infra
  U_taehyung --> G_Attack
  U_taehyung --> G_SIEM
  U_yunha --> G_Attack

  U_byungeun -.-> P_SelfSvc & P_MFA
  U_hyemin -.-> P_SelfSvc & P_MFA
  U_hyeri -.-> P_SelfSvc & P_MFA
  U_jaewon -.-> P_SelfSvc & P_MFA
  U_jinhyuk -.-> P_SelfSvc & P_MFA
  U_junhwan -.-> P_SelfSvc & P_MFA
  U_taehyung -.-> P_SelfSvc & P_MFA
  U_yunha -.-> P_SelfSvc & P_MFA

  G_Attack --> P_EC2 & P_IAMFull & P_S3 & P_SelfMgmt & P_Login & P_PortFwd
  G_Infra --> P_IAMFull & P_CWLogs & P_S3 & P_CTFull & P_SelfMgmt & P_Login & P_PortFwd
  G_SIEM --> P_CWRO & P_GDRO & P_CWLogs & P_IAMRO & P_CTRO & P_SelfMgmt & P_Login & P_PortFwd

  R_plan --> P_RO
  R_plan --> P_TFState
  R_apply --> P_PUA
  R_apply --> P_IAMFull
  R_apply --> P_TFState
  R_wazuh --> P_WazuhSSM

  classDef broad fill:#ffdddd,stroke:#cc0000,stroke-width:2px,color:#900
  classDef external fill:#eeeeee,stroke:#999999,stroke-dasharray: 4 3,color:#555

1. 그룹별 소속 인원 및 권한

그룹
소속 인원
부여 정책
비고
WHS4_Attack
yunha, taehyung
AmazonEC2FullAccess ⚠, IAMFullAccess ⚠, AmazonS3FullAccess, aws-login, wazuh-ssm-port-forwarding
공격 실습용, 권한 넓음
WHS4_Infra
hyeri, junhwan
IAMFullAccess ⚠, CloudWatchLogsFullAccess, AmazonS3FullAccess, AWSCloudTrail_FullAccess ⚠, aws-login, wazuh-ssm-port-forwarding
감사 로그 삭제 가능 권한 포함
WHS4_SIEM_Detect
hyemin, hyeri, byungeun, jaewon, jinhyuk, taehyung
CloudWatchReadOnlyAccess, GuardDutyReadOnlyAccess, CloudWatchLogsFullAccess, IAMReadOnlyAccess, CloudTrailReadOnlyAccess, aws-login, wazuh-ssm-port-forwarding
읽기 전용 위주
+) ⚠: 이 정책은 필요 이상으로 넓은 권한이라 주의 대상
  • 전 인원 공통 개별 부착: self-service-credentials(본인 계정 관리), require-mfa(MFA 미인증 시 전체 차단 가드레일)
  • WHS4_SelfAccountManagement 정책은 팀원 전원에게 붙어있지만 레포 코드엔 정의 없음(콘솔 등 외부에서 수동 생성 추정)

2. Role 별 권한

Role
용도
부여 정책
비고
github-actions-plan
CI plan 단계
ReadOnlyAccess, kintoun-tfstate-access
조회 전용
github-actions-apply
CI apply 단계
PowerUserAccess ⚠, IAMFullAccess ⚠, kintoun-tfstate-access
CI 자격증명 탈취 시 사실상 계정 전체 장악 가능
wazuh-role
Wazuh EC2 assume role
ec2-ssm-role (구 wazuh-ec2-ssm-role)
platform/wazuh/iam.tf로 이동, 정책명 변경으로 재생성 예정 (아래 4번 참고) PR #35(feat/logging) 머지 시 guardduty_logging_wazuh, wazuh_waf_read 정책 추가 예정?
plan 단계
  • terraform plan은 이렇게 바뀔 예정이라고 미리 보여주는 단계
  • 실제로 아무것도 안 바꾸고 조회만 함
    • → 그래서 ReadOnlyAccess로 충분
apply 단계
  • terraform plan에서 확인한 대로 실제로 AWS에 반영하는 단계
  • 리소스 생성/수정/삭제가 실제로 일어남
    • → 그래서 PowerUserAccess(거의 전체 관리) + IAMFullAccess 같은 넓은 권한이 필요한 거고 동시에 이게 CI 자격증명 탈취 시 가장 위험한 이유이기도 함

3. ⚠ 과다 권한 플래그

  • WHS4_Attack / WHS4_Infra의 IAMFullAccess → 권한 상승 경로 가능
  • WHS4_Infra의 AWSCloudTrail_FullAccess → 감사 로그 자체를 끄거나 삭제 가능
  • github-actions-apply의 PowerUserAccess + IAMFullAccess → 준-관리자급, CI 시크릿이 곧 최고 권한