본문 바로가기
홈 카탈로그 진단 항목 전체 ap-northeast-2 · 3820-1174-9265
클라우드 관리체계 보안 취약점 평가기준 (퍼블릭 클라우드) / 6. 접근통제 / 6.1 계정 및 권한 관리

PISM-041관리자 계정의 액세스 키 삭제 여부

위험도 5 기술적 보안 IAM 평가 구분: 스크립트
관리자 계정(root)의 액세스 키가 유출될 경우 프로그래밍 방식으로 접근하여 제약 없이 가상자원에 대한 제어가 가능해지는 위협이 존재하므로 관리자 계정의 액세스 키 삭제 여부를 점검합니다.
1. 점검 대상 확인
2. CLI 진단
3. 양호/취약 판정
4. 조치 · 재확인

방법 1AWS Management Console 경로

IAM → 자격 증명 보고서 → 보안 인증 보고서 다운로드 → 파일 내 <root_account> 행 확인
콘솔은 화면이 자주 바뀝니다. 실제 점검에서는 아래 CLI(방법 2) 로 증적을 남기는 편이 재현성이 높습니다.

방법 2AWS CLI 진단

아래 명령을 눌러 실행하거나, 직접 입력해 보세요. 응답은 실제 AWS CLI 출력 형식을 따릅니다.
$ aws sts get-caller-identity { "UserId": "AIDA4XQ7N2VZK3RJTPLWE", "Account": "382011749265", "Arn": "arn:aws:iam::382011749265:user/audit-readonly" } 진단 계정으로 로그인되었습니다. 아래 명령을 실행해 점검을 시작하세요.

판정이 환경은 양호합니까, 취약합니까?

평가기준의 판단 근거는 명령 출력입니다. 먼저 위에서 명령을 실행해 출력을 확인하세요.

🛠️ 조치 방법

바로 지우지 마세요. 최근 사용 기록이 있으므로 ① 무엇이 쓰는지 CloudTrail 로 특정 → ② 전용 IAM 역할로 대체 → ③ 키 비활성화(관찰) → ④ 삭제 순서로 진행합니다.
# 1) 누가 root 키를 쓰는지 CloudTrail 에서 특정 $ aws cloudtrail lookup-events \ --lookup-attributes AttributeKey=Username,AttributeValue=root \ --start-time 2026-08-01T00:00:00Z \ --query "Events[*].{Time:EventTime,Name:EventName,Src:CloudTrailEvent}" \ --max-results 20 # → sourceIPAddress 10.40.7.62 (fin-batch-worker) 에서 s3:PutObject 호출 확인 # 2) 대체 자격증명 마련 — 인스턴스 프로파일(키 없는 역할) $ aws iam create-role --role-name fin-batch-s3-writer \ --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{ "Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"}, "Action":"sts:AssumeRole"}]}' $ aws iam put-role-policy --role-name fin-batch-s3-writer \ --policy-name write-archive --policy-document '{"Version":"2012-10-17","Statement":[{ "Effect":"Allow","Action":["s3:PutObject"], "Resource":"arn:aws:s3:::fin-core-txn-archive/*"}]}' $ aws ec2 associate-iam-instance-profile \ --instance-id i-04e7b9c3d85a1f602 \ --iam-instance-profile Name=fin-batch-s3-writer # 3) root 키 비활성화 — 먼저 끄고 며칠 관찰 (되돌리기 쉬움) # ※ root 키 조작은 root 로 콘솔 로그인해야 한다 (IAM 사용자로는 불가) # IAM → 보안 자격 증명 → 액세스 키 → 비활성화 # 4) 이상 없으면 삭제 + root MFA 등록 + 사용 알림 설정

📐 IaC 로 고정하기

콘솔에서 한 번 고쳐도 다음 배포에서 되돌아갑니다. 코드로 고정해야 재발하지 않습니다.
# root 키는 IaC 로 만들 수도 지울 수도 없다 — 콘솔 수작업이다. # 대신 "다시 생기면 즉시 안다"를 코드로 만든다. resource "aws_cloudwatch_event_rule" "root_activity" { name = "detect-root-usage" event_pattern = jsonencode({ "detail-type" = ["AWS API Call via CloudTrail"], "detail" = { "userIdentity" = { "type" = ["Root"] } } }) } resource "aws_cloudwatch_event_target" "notify" { rule = aws_cloudwatch_event_rule.root_activity.name arn = aws_sns_topic.security_alert.arn } # 배치는 키가 아니라 역할로 (키 자체를 만들지 않는 것이 최선) resource "aws_iam_instance_profile" "batch" { role = aws_iam_role.batch_s3_writer.name }
주의 — root 액세스 키는 IAM 사용자 권한으로는 지울 수 없습니다. root 자격증명으로 콘솔에 직접 로그인해야 하며, 이때 MFA 부터 등록하는 것이 순서입니다. 그리고 "안 쓰는 것 같으니 바로 지우자"는 위험합니다 — key1_last_used 가 비어 있어도 분기 배치·연말 정산 같은 저빈도 작업이 쓰고 있을 수 있습니다. 최소 한 달은 비활성화 상태로 관찰한 뒤 삭제하세요.

📋 평가항목 정보

평가항목 IDPISM-041
구분기술적 보안
통제분야6. 접근통제
통제구분(대)6.1 계정 및 권한 관리
평가항목관리자 계정의 액세스 키 삭제 여부
위험도5
평가 구분 (AWS)스크립트
상세설명관리자 계정(root)의 액세스 키가 유출될 경우 프로그래밍 방식으로 접근하여 제약 없이 가상자원에 대한 제어가 가능해지는 위협이 존재하므로 관리자 계정의 액세스 키 삭제 여부를 점검합니다.

📎 확인 자료 (증적)

  • 자격증명 보고서의 <root_account> 행 (access_key_1/2_active, last_used)
  • SummaryMap.AccountAccessKeysPresent 값
  • root 키 사용 주체를 특정한 CloudTrail 조회 결과
  • 대체 자격증명(역할) 전환 내역
  • root 사용 시 알림 설정 및 비상 사용 절차 문서
평가에서는 화면 캡처보다 CLI 출력이 강한 증적입니다. 명령·실행시각·계정 ARN 이 함께 남기 때문입니다. 위 진단 탭의 출력을 그대로 보고서에 붙이면 됩니다.

🏦 금융 관점

root 액세스 키는 권한 분리 원칙의 정면 위반입니다. 금융회사는 시스템 접근 권한을 업무별로 최소화하고 상호 감시가 가능하도록 해야 하는데, root 키는 그 어떤 통제도 적용되지 않습니다. 평가에서 단일 항목으로 즉시 취약 판정되는 대표적인 지적 사항이며, 사고 시 "누가 했는지" 특정이 불가능해 책임 추적성까지 무너집니다.
「클라우드 관리체계 보안 취약점 평가기준(퍼블릭 클라우드)」의 평가항목을 교육용으로 재구성한 시뮬레이터입니다. 계정 ID·ARN·리소스 ID 는 형식만 실제와 같게 만든 가상 값이며, 어떤 AWS 환경에도 접속하지 않습니다. 실제 평가에서는 기관의 최신 평가기준 원문과 AWS 공식 문서를 따르십시오.