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
| 그룹 | 소속 인원 | 부여 정책 | 비고 |
|---|---|---|---|
| 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 | 읽기 전용 위주 |
+) ⚠: 이 정책은 필요 이상으로 넓은 권한이라 주의 대상
| 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 정책 추가 예정? |
IAMFullAccess → 권한 상승 경로 가능AWSCloudTrail_FullAccess → 감사 로그 자체를 끄거나 삭제 가능PowerUserAccess + IAMFullAccess → 준-관리자급, CI 시크릿이 곧 최고 권한