본문 바로가기
홈 카탈로그 진단 항목 전체 ap-northeast-2 · 3820-1174-9265
클라우드 관리체계 보안 취약점 평가기준 (퍼블릭 클라우드) / 5. 운영 관리 / 5.3 정보처리시스템 보호대책

PISM-005가상자원에 대한 퍼블릭 액세스 허용

위험도 5 기술적 보안 S3 · EC2 · RDS 평가 구분: 스크립트
가상자원에 대한 퍼블릭 액세스를 차단하지 않을 경우 중요정보 노출 등의 위협이 존재하므로 가상자원의 퍼블릭 액세스 차단 설정 활성화 여부를 점검합니다.
1. 점검 대상 확인
2. CLI 진단
3. 양호/취약 판정
4. 조치 · 재확인

방법 1AWS Management Console 경로

S3 → 버킷 → 권한 → 퍼블릭 액세스 차단 4개 항목 확인  /  EC2 → 인스턴스 → 퍼블릭 IPv4 주소 유무  /  Aurora and RDS → 데이터베이스 → 연결 및 보안 → 퍼블릭 액세스 가능 확인
콘솔은 화면이 자주 바뀝니다. 실제 점검에서는 아래 CLI(방법 2) 로 증적을 남기는 편이 재현성이 높습니다.

방법 2AWS CLI 진단

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

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

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

🛠️ 조치 방법

세 자원을 각각 닫습니다. 순서가 중요합니다 — RDS 는 퍼블릭 해제 시 재시작 없이 적용되지만 엔드포인트 IP 가 바뀌므로, 앱의 연결 풀을 먼저 확인하세요.
# 1) S3 — 퍼블릭 액세스 차단 4개 모두 활성화 $ aws s3api put-public-access-block --bucket fin-mydata-consent-logs \ --public-access-block-configuration \ "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true" # 2) EC2 — 퍼블릭 IP 회수 (배치 서버는 NAT 게이트웨이 경유로 전환) $ aws ec2 describe-addresses --filters "Name=instance-id,Values=i-0c81d5fa27e93b146" $ aws ec2 disassociate-address --association-id eipassoc-0b17f9c26d43a8e51 $ aws ec2 release-address --allocation-id eipalloc-0f92c7ab35de16704 # 3) RDS — 퍼블릭 액세스 해제 $ aws rds modify-db-instance --db-instance-identifier fin-core-db \ --no-publicly-accessible --apply-immediately

📐 IaC 로 고정하기

콘솔에서 한 번 고쳐도 다음 배포에서 되돌아갑니다. 코드로 고정해야 재발하지 않습니다.
# 계정 단위로 한 번에 잠그는 것이 가장 확실하다 (신규 버킷까지 자동 적용) resource "aws_s3_account_public_access_block" "this" { block_public_acls = true ignore_public_acls = true block_public_policy = true restrict_public_buckets = true } resource "aws_db_instance" "fin_core" { identifier = "fin-core-db" publicly_accessible = false # 기본값이지만 명시해 둔다 db_subnet_group_name = aws_db_subnet_group.private.name } # SCP 로 조직 전체에서 퍼블릭 해제를 금지 (되돌림 방지) # Effect: Deny / Action: s3:PutBucketPublicAccessBlock / Condition: 값이 false 인 경우
주의 — S3 퍼블릭 차단은 계정 수준과 버킷 수준이 따로 있습니다. 버킷만 잠그면 다음에 만들어지는 버킷은 다시 열린 채로 시작합니다. 계정 수준(put-public-access-block on account)으로 거는 것이 정석입니다. EC2 퍼블릭 IP 는 Elastic IP 와 auto-assign 이 별개라, EIP 를 회수해도 서브넷의 MapPublicIpOnLaunch=true 가 남아 있으면 다음 인스턴스가 또 퍼블릭 IP 를 받습니다.

📋 평가항목 정보

평가항목 IDPISM-005
구분기술적 보안
통제분야5. 운영 관리
통제구분(대)5.3 정보처리시스템 보호대책
평가항목가상자원에 대한 퍼블릭 액세스 허용
위험도5
평가 구분 (AWS)스크립트
상세설명가상자원에 대한 퍼블릭 액세스를 차단하지 않을 경우 중요정보 노출 등의 위협이 존재하므로 가상자원의 퍼블릭 액세스 차단 설정 활성화 여부를 점검합니다.

📎 확인 자료 (증적)

  • 버킷별 get-public-access-block 출력 (4개 항목 모두 true 인지)
  • 퍼블릭 IP 보유 인스턴스 목록 및 업무상 필요성 소명
  • RDS 인스턴스별 PubliclyAccessible 값
  • 조치 후 재확인 출력 및 서브넷 MapPublicIpOnLaunch 설정
평가에서는 화면 캡처보다 CLI 출력이 강한 증적입니다. 명령·실행시각·계정 ARN 이 함께 남기 때문입니다. 위 진단 탭의 출력을 그대로 보고서에 붙이면 됩니다.

🏦 금융 관점

금융회사는 중요 정보처리시스템을 인터넷과 분리하도록 요구받습니다. 클라우드에서 이 요구는 물리적 망분리가 아니라 퍼블릭 경로의 부재로 증명됩니다. "보안그룹으로 막았다"는 단일 방어선이며, 평가에서는 자원 자체가 퍼블릭이 아닐 것을 먼저 봅니다.
「클라우드 관리체계 보안 취약점 평가기준(퍼블릭 클라우드)」의 평가항목을 교육용으로 재구성한 시뮬레이터입니다. 계정 ID·ARN·리소스 ID 는 형식만 실제와 같게 만든 가상 값이며, 어떤 AWS 환경에도 접속하지 않습니다. 실제 평가에서는 기관의 최신 평가기준 원문과 AWS 공식 문서를 따르십시오.