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

PISM-001통신구간 암호화 적용 여부

위험도 5 기술적 보안 S3 평가 구분: 스크립트
HTTP 요청을 허용할 경우 중요정보가 평문으로 노출될 위협이 존재하므로, HTTP 요청 거부 설정을 활성화하여 통신구간 암호화 적용 여부를 점검합니다.
1. 점검 대상 확인
2. CLI 진단
3. 양호/취약 판정
4. 조치 · 재확인

방법 1AWS Management Console 경로

S3 진입 → 버킷 클릭 → 목록에서 대상 버킷 선택 → 권한 클릭 → 버킷 정책에서 aws:SecureTransport 조건으로 HTTP 를 거부하는 Deny 문이 있는지 확인
콘솔은 화면이 자주 바뀝니다. 실제 점검에서는 아래 CLI(방법 2) 로 증적을 남기는 편이 재현성이 높습니다.

방법 2AWS CLI 진단

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

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

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

🛠️ 조치 방법

버킷 정책에 SecureTransport 가 false 이면 모든 S3 작업을 Deny 하는 문장을 추가합니다. Allow 문을 고치는 것이 아니라 Deny 문을 덧붙이는 것이 핵심입니다 — 명시적 Deny 는 어떤 Allow 보다 우선합니다.
$ cat > deny-insecure.json <<'EOF' { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAppRead", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::382011749265:role/fin-core-app"}, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::fin-core-txn-archive/*" }, { "Sid": "DenyInsecureTransport", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::fin-core-txn-archive", "arn:aws:s3:::fin-core-txn-archive/*" ], "Condition": {"Bool": {"aws:SecureTransport": "false"}} } ] } EOF $ aws s3api put-bucket-policy --bucket fin-core-txn-archive \ --policy file://deny-insecure.json

📐 IaC 로 고정하기

콘솔에서 한 번 고쳐도 다음 배포에서 되돌아갑니다. 코드로 고정해야 재발하지 않습니다.
# Terraform — 버킷을 새로 만들 때마다 같은 Deny 가 붙도록 모듈에 넣는다 data "aws_iam_policy_document" "deny_insecure" { statement { sid = "DenyInsecureTransport" effect = "Deny" actions = ["s3:*"] resources = [ aws_s3_bucket.txn_archive.arn, "${aws_s3_bucket.txn_archive.arn}/*", ] principals { type = "*" identifiers = ["*"] } condition { test = "Bool" variable = "aws:SecureTransport" values = ["false"] } } } resource "aws_s3_bucket_policy" "txn_archive" { bucket = aws_s3_bucket.txn_archive.id policy = data.aws_iam_policy_document.deny_insecure.json }
주의 — Deny 문의 Resource 에 버킷 ARN 과 /* 을 둘 다 넣어야 합니다. /* 만 넣으면 객체 작업은 막히지만 ListBucket 같은 버킷 수준 작업은 여전히 HTTP 로 가능합니다. 또한 Principal: "*" 이므로 VPC 엔드포인트 경유 내부 트래픽도 HTTPS 여야 합니다 — 사내 배치 스크립트가 HTTP 를 쓰고 있지 않은지 먼저 확인하고 적용하세요.

📋 평가항목 정보

평가항목 IDPISM-001
구분기술적 보안
통제분야5. 운영 관리
통제구분(대)5.3 정보처리시스템 보호대책
평가항목통신구간 암호화 적용 여부
위험도5
평가 구분 (AWS)스크립트
상세설명HTTP 요청을 허용할 경우 중요정보가 평문으로 노출될 위협이 존재하므로, HTTP 요청 거부 설정을 활성화하여 통신구간 암호화 적용 여부를 점검합니다.

📎 확인 자료 (증적)

  • 대상 버킷 목록 (aws s3 ls 출력)
  • 버킷별 정책 전문 (get-bucket-policy 출력) — aws:SecureTransport 조건 포함 여부
  • 조치 후 HTTP 요청이 AccessDenied 로 거부되는 것을 보인 curl 결과
평가에서는 화면 캡처보다 CLI 출력이 강한 증적입니다. 명령·실행시각·계정 ARN 이 함께 남기 때문입니다. 위 진단 탭의 출력을 그대로 보고서에 붙이면 됩니다.

🏦 금융 관점

전자금융감독규정은 이용자 정보와 거래정보를 송·수신 구간에서 암호화하도록 요구합니다. 클라우드에서는 이 요구가 "TLS 를 지원한다"가 아니라 "평문 접근을 거부한다"로 구현되어야 합니다. 거래원장·마이데이터 동의 로그처럼 보존 의무가 있는 객체가 담긴 버킷은 우선순위로 처리하세요.
「클라우드 관리체계 보안 취약점 평가기준(퍼블릭 클라우드)」의 평가항목을 교육용으로 재구성한 시뮬레이터입니다. 계정 ID·ARN·리소스 ID 는 형식만 실제와 같게 만든 가상 값이며, 어떤 AWS 환경에도 접속하지 않습니다. 실제 평가에서는 기관의 최신 평가기준 원문과 AWS 공식 문서를 따르십시오.