brief.ing.gg

WIKI

서브도메인

서브도메인

하나의 도메인 아래 여러 서비스를 분리할 때 서브도메인을 사용하는 이유는 무엇인가.

Scope

핵심 질문

서브도메인은 하나의 도메인 아래 여러 서비스를 어떻게 논리적으로 분리하고 운영하게 하는가?

Research

핵심 근거

  • DNS에서 서브도메인은 부모 도메인 아래 별도의 hostname namespace를 만든다.
  • 서로 다른 서브도메인은 독립적인 DNS record, TLS, reverse proxy routing과 보안정책을 가질 수 있다.
  • 브라우저 origin 관점에서는 scheme, host, port가 달라지면 별도 origin이 된다.

Draft

서브도메인은 example.com 아래의 app.example.com, api.example.com처럼 같은 등록 도메인 아래 서비스를 나누는 hostname 구조다.

왜 사용하는가

서비스별로 독립적인 주소를 만들 수 있고 DNS record와 reverse proxy 설정을 따로 관리할 수 있다. API, 문서, 사용자 콘텐츠처럼 역할이 다른 서비스를 분리하기 좋다.

보안 경계

서브도메인은 URL 구조만의 문제가 아니다. 브라우저의 same-origin policy에서 서로 다른 host는 별도 origin이므로 cookie, CORS, CSP 설계에도 영향을 준다.

사용자가 만든 HTML처럼 신뢰하기 어려운 콘텐츠를 메인 앱과 다른 서브도메인에 두면 브라우저 origin은 분리된다. 다만 부모 도메인의 Domain 속성으로 설정한 cookie는 하위 도메인에도 전달될 수 있으므로 이것만으로 완전한 보안 경계가 되지는 않는다. 인증 cookie는 가능한 host-only 범위로 제한하고 CORS·CSRF·CSP를 함께 검토한다. 완전히 비신뢰 콘텐츠라면 별도의 등록 도메인을 검토할 수 있다.

핵심

서브도메인은 브랜드를 유지하면서 서비스 주소, DNS, TLS와 브라우저 보안 경계를 나누는 도구다.