CFAPPSEC HANDS-ON
현대오토에버 교육 과정Etevers Demo Account
Cloudflare Technical Workshop

AppSec & Traffic
Management Hands-on

Zone 생성부터 Pages 배포, WAF 보안 정책, Spectrum, Origin Port Rewrite, Dashboard SSO까지 직접 구성하고 검증하는 실습 과정입니다.

Onboard Deploy Protect Connect Control Identify

실습 환경

Etevers Disti Demo Account에서 진행합니다. 실습 Zone은 개인 이메일의 @ 앞부분을 사용해 [사용자명].secure-way.kr 형식으로 생성합니다.

계정 초대가 필요한가요?

ICT 계정 로그인이 어려운 경우 사용할 개인 이메일을 보내주세요.

00
Before class

POC 신청 및 사전 준비

실습에 필요한 POC 요청서를 작성하고 Demo Account 초대를 완료합니다.

완료 조건POC 요청서 전달 및 Cloudflare Demo Account 로그인 확인
  1. 아래 링크에서 POC 요청서를 다운로드합니다.
  2. 요청서의 고객사·대상 도메인·실습 목적 등 필수 내용을 작성합니다.
  3. 작성한 요청서를 shinwoo.lee@etevers.com으로 전달합니다.
  4. 초대 메일을 확인하고 Etevers Demo Account에 로그인합니다.
Cloudflare POC 요청서

ZIP 파일을 내려받아 작성 후 이메일로 회신해 주세요.

요청서 다운로드 ↗

진행 확인

01
Onboard

Zone Onboarding

CNAME Setup(Partial) 방식으로 Zone을 만들고 소유권과 인증서를 검증합니다.

완료 조건Zone Status가 Active이고 Edge Certificate가 발급된 상태

Zone 이름 규칙

[이메일 @ 앞부분].secure-way.kr 예시: shinwoo.secure-way.kr

설정 절차

  1. Cloudflare Dashboard에서 Add a domain을 선택하고 개인 실습 Zone을 등록합니다.
  2. Plan 선택 화면에서 Enterprise 플랜을 선택합니다.
  3. Overview → Convert to CNAME DNS Setup에서 CNAME Setup(Partial) 방식으로 전환합니다.
  4. 화면에 표시된 Zone Activation TXT 레코드를 확인합니다.
  5. SSL/TLS → Edge Certificates에서 인증서 발급을 요청하고 DCV CNAME 레코드를 확인합니다.
  6. 두 레코드를 담당자에게 전달한 뒤 Zone Active 및 인증서 발급 상태를 확인합니다.
  7. 활성화가 완료되면 실제 서비스 호스트를 Cloudflare가 안내한 CNAME 대상으로 전환합니다.

담당자에게 전달할 DNS 레코드 예시

Zone 소유권 검증cloudflare-verify.shinwoo.secure-way.kr
TXT → "a0be20c914b87763a0d8671535cc142b"
SSL 인증서 DCV_acme-challenge.shinwoo.secure-way.kr
CNAME → shinwoo.secure-way.kr.51eff1c2f32b8f94.dcv.cloudflare.com
두 레코드의 역할이 다릅니다.Verification TXT는 Zone 소유권을, DCV CNAME은 SSL 인증서 발급 권한을 검증합니다. Zone이 활성 상태인 동안 Verification TXT를 유지하세요.

진행 확인

02
Deploy

Cloudflare Pages 배포

제공된 정적 사이트 소스를 Pages에 배포하고 실습 호스트와 연결합니다.

완료 조건Pages 배포 URL과 Custom Domain에서 테스트 페이지 정상 응답
실습용 Pages 소스

main.zip을 다운로드한 뒤 압축을 해제합니다.

소스 다운로드 ↗

설정 절차

  1. Workers & Pages → Create application → Pages로 이동합니다.
  2. Upload assets를 선택하고 제공된 사이트 파일을 업로드합니다.
  3. Deploy를 실행한 뒤 생성된 *.pages.dev 주소에서 페이지가 열리는지 확인합니다.
  4. Pages Project → Custom domains → Set up a domain에서 개인 실습 호스트를 등록합니다.
  5. Custom Domain의 인증서 상태가 Active가 된 뒤 최종 URL에 접속합니다.
순서가 중요합니다.DNS에 CNAME만 먼저 만들지 말고 Pages 프로젝트에서 Custom Domain을 먼저 등록하세요. Pages가 호스트 연결과 인증서 발급을 함께 준비합니다.

진행 확인

03
Protect

Application Security 구성

Managed WAF를 활성화하고 Custom Rule과 Rate Limiting의 차단 결과를 확인합니다.

완료 조건보안 기능 활성화 후 Security Events에서 탐지·차단 로그 확인

Managed Security 기능

Security → Settings에서 아래 기능을 활성화합니다.

Cloudflare Managed RulesetCloudflare가 관리하는 알려진 웹 공격 탐지 규칙
OWASP Core RulesetOWASP ModSecurity Core Rule Set 기반 취약점 공격 탐지
Leaked Credentials Detection유출된 사용자 자격 증명 사용 여부 탐지

Custom Rule 실습

  1. Security → WAF → Custom rules에서 새 규칙을 만듭니다.
  2. 실습 호스트와 테스트 조건을 지정하고 초기 Action을 Block으로 설정합니다.
  3. 조건에 맞는 요청을 발생시키고 차단 페이지 또는 응답 코드를 확인합니다.
  4. Security Events에서 Rule Name, Action, Source IP를 확인합니다.

Rate Limiting 실습

  1. Security → WAF → Rate limiting rules에서 새 규칙을 만듭니다.
  2. 테스트 경로, 요청 임계값, 평가 주기, Mitigation Timeout을 지정합니다.
  3. 연속 요청을 발생시켜 임계값 초과 후 HTTP 429 또는 차단 응답을 확인합니다.
운영 환경 적용 전 권장가능하면 먼저 Log 또는 Managed Challenge로 탐지 범위를 확인한 뒤 Block으로 강화하세요. 실습 계정에서는 교육 담당자가 지정한 조건을 따릅니다.

진행 확인

04
Connect

Cloudflare Spectrum

지정된 포트의 TCP/HTTPS 서비스를 Cloudflare Anycast 네트워크를 통해 연결합니다.

완료 조건Spectrum 호스트의 9443 포트로 접속하여 Origin 응답 확인
Application TypeHTTPS
Edge Port9443
Origin IP13.125.138.114
Origin Port9443
테스트 URLhttps://<Spectrum-Host>:9443

설정 절차

  1. Spectrum → Create an application을 선택합니다.
  2. Application Type을 HTTPS로 선택하고 실습용 Domain을 지정합니다.
  3. Edge Port와 Origin의 IP·Port를 표의 값으로 설정합니다.
  4. 배포 상태를 확인한 뒤 브라우저 또는 curl로 응답을 테스트합니다.
curl -vk https://<Spectrum-Host>:9443/

진행 확인

05
Control

Origin Rules — Port Rewrite

사용자는 표준 HTTPS 443으로 접속하고 Cloudflare는 Origin의 9443 포트로 연결하도록 재작성합니다.

완료 조건클라이언트는 443으로 접속하고 Origin 로그에는 9443 요청이 확인됨
ClientHTTPS :443
CloudflareOrigin Rule
OriginHTTPS :9443

규칙 설정

메뉴Rules → Origin Rules → Create rule
If 조건Hostname equals <개인 실습 호스트>
Then 설정Destination Port → Rewrite to 9443
  1. Origin Rules에서 개인 실습 호스트를 대상으로 하는 규칙을 생성합니다.
  2. Destination Port를 9443으로 재작성하도록 설정하고 Deploy합니다.
  3. 포트를 생략한 표준 HTTPS URL로 접속합니다.
  4. 정상 응답과 Origin 측 9443 포트 접속 로그를 함께 확인합니다.
트래픽 흐름브라우저 주소에는 9443을 넣지 않습니다. 클라이언트 연결은 443을 유지하고 Cloudflare와 Origin 사이의 목적지 포트만 9443으로 바뀝니다.

진행 확인

06
Identify

Cloudflare Dashboard SSO — Email OTP

개인 실습 도메인의 이메일 주소를 실제 메일함으로 전달하고, 해당 이메일 도메인을 Cloudflare Dashboard SSO Domain으로 등록합니다.

완료 조건실습용 이메일 주소로 OTP를 받아 Cloudflare Dashboard SSO 로그인 성공

실습 구성

로그인 대상Cloudflare Dashboard
Dashboard SSO Domain[사용자명].secure-way.kr
SSO 로그인 방식Cloudflare One One-time PIN
실습용 이메일login@[사용자명].secure-way.kr
전달 대상본인이 실제로 사용하는 이메일 주소
login@shinwoo.secure-way.kr → my-real-email@example.com

A. Email Routing 설정

  1. Cloudflare Dashboard에서 본인의 [사용자명].secure-way.kr Zone을 선택합니다.
  2. Email → Email Routing으로 이동하여 Email Routing을 활성화하고 안내된 MX 레코드를 확인합니다.
  3. Destination address에 본인이 실제로 사용하는 이메일 주소를 추가합니다.
  4. 실제 메일함으로 도착한 확인 메일을 열어 Destination address 인증을 완료합니다.
  5. Routing rule에서 Custom address를 login으로 만들고 인증한 실제 이메일 주소로 전달되도록 설정합니다.
  6. login@[사용자명].secure-way.kr로 테스트 메일을 보내 실제 메일함에 도착하는지 확인합니다.
DNS 구성 확인Email Routing을 사용하려면 해당 실습 Zone의 MX 레코드를 Cloudflare Email Routing용으로 설정할 수 있어야 합니다. 기존 메일 서비스가 있거나 외부 DNS를 유지하는 CNAME Setup(Partial) 환경이라면 교육 담당자가 안내한 방식으로 MX 레코드를 등록하세요.

B. Cloudflare Dashboard SSO 설정

  1. Zero Trust → Integrations → Identity providers → Add new identity provider에서 One-time PIN을 로그인 방식으로 추가합니다.
  2. Manage account → Members에서 login@[사용자명].secure-way.kr을 계정 멤버로 초대하고 실습에 필요한 역할을 지정합니다.
  3. 실제 메일함으로 전달된 초대 메일을 열어 멤버 초대를 수락합니다.
  4. Manage account → Members → Settings → Dashboard SSO로 이동해 새 SSO Domain을 추가합니다.
  5. SSO Domain에 [사용자명].secure-way.kr을 입력하고 Login method로 One-time PIN을 선택합니다.
  6. 기존 세션과 분리된 시크릿 창에서 Cloudflare Dashboard 로그인 화면을 열고 login@[사용자명].secure-way.kr을 입력합니다.
  7. 실제 메일함으로 전달된 OTP를 입력하여 Cloudflare Dashboard 로그인을 완료합니다.
실습 핵심Pages 애플리케이션을 보호하는 Access Application 실습이 아닙니다. 개인 실습 이메일의 도메인을 Dashboard SSO Domain으로 등록하고, Cloudflare Dashboard 자체의 로그인을 One-time PIN으로 인증하는 과정입니다.
잠금 방지SSO 설정을 변경하는 동안 기존 관리자 세션은 로그아웃하지 마세요. 새 시크릿 창에서 OTP 로그인이 성공한 것을 확인한 후 실습을 종료합니다. 메뉴가 보이지 않으면 계정 관리자에게 Dashboard SSO 설정 권한을 요청하세요.

진행 확인

Finish

최종 검증 체크리스트

모든 구성 요소가 연결되어 정상 동작하는지 마지막으로 확인합니다.

복사했습니다.