---
title: "Authelia Traefik 연동: 5단계로 구축하는 완벽한 2FA & SSO 보안"
description: "# Authelia Traefik 연동을 통한 완벽한 2FA & SSO 보안 인증 구축 가이드 **Authelia Traefik** 연동은 자체 호스팅(Self-Hosted) 서비스를 운영하는 유저들에게 선택이 아닌 필수적인 보안 전략입니다. 본 가이드에서는 Traefik 리버스 프록시 환경에서 Authelia를 통해 모든 내부 서비스에 강력한 2단계 인증(2FA)과…"
url: "https://dsportal.io/docs/authelia-traefik-sso-2fa-setup-guide/"
updated: "2026-04-18"
category: 보안/인증
---

# Authelia Traefik 연동: 5단계로 구축하는 완벽한 2FA & SSO 보안

# Authelia Traefik 연동을 통한 완벽한 2FA & SSO 보안 인증 구축 가이드

**Authelia Traefik** 연동은 자체 호스팅(Self-Hosted) 서비스를 운영하는 유저들에게 선택이 아닌 필수적인 보안 전략입니다. 본 가이드에서는 Traefik 리버스 프록시 환경에서 Authelia를 통해 모든 내부 서비스에 강력한 2단계 인증(2FA)과 싱글 사인온(SSO) 기능을 추가하는 방법을 IT 블로거의 시선으로 상세히 다룹니다.

## 🛡️ 1. Authelia Traefik 보안 인증의 개요

Authelia는 오픈 소스 인증 및 권한 부여 서버로, 대시보드나 API가 없는 서비스들 앞단에 '보안 장벽'을 세워줍니다. 특히 Traefik과의 연동성이 뛰어나며, 한 번의 로그인으로 모든 도커 컨테이너에 접근할 수 있는 SSO 환경을 제공합니다. 본 가이드에서는 보안성을 극대화하기 위해 MariaDB를 백엔드 저장소로 활용하고, Docker Secrets를 사용하여 민감한 정보를 보호하는 방식을 채택합니다.

> "보안은 가장 약한 연결 고리만큼만 강합니다. 비밀번호 유출에 대비해 반드시 2FA(TOTP, Duo Push 등)를 활성화해야 합니다."

## 📂 2. 사전 준비: 디렉토리 구조 및 Docker Secrets 설정

먼저 Authelia가 사용할 데이터 저장소와 설정 파일 경로를 생성해야 합니다. 또한, 환경 변수에 비밀번호를 노출하지 않기 위해 Docker Secrets를 활용합니다.

```
# Authelia 설정 및 데이터 폴더 생성
mkdir -p $DOCKERDIR/appdata/authelia

# Secrets 파일 저장을 위한 폴더 생성
mkdir -p $DOCKERDIR/secrets
```

다음은 보안을 위한 필수 시크릿 파일 목록입니다. 각 파일을 `$DOCKERDIR/secrets/` 폴더 안에 생성하고 안전한 값을 입력하세요.

| 파일명 | 설명 | 권장 형식 |
| --- | --- | --- |
| authelia_jwt_secret | JSON Web Token 서명용 키 | 무작위 영숫자 조합 |
| authelia_session_secret | 쿠키 세션 암호화 키 | 무작위 영숫자 조합 |
| authelia_storage_mysql_password | MariaDB 접속 암호 | DB 설정값과 동일 |
| authelia_storage_encryption_key | DB 데이터 암호화 키 | 64자리 이상 랜덤 문자열 |

## 🚀 3. Authelia Docker-Compose 구성 및 배포

이제 **Authelia Traefik** 연동을 위한 핵심 `docker-compose.yml` 설정을 작성합니다. 아래 코드는 Docker Secrets를 통해 보안을 강화한 프로덕션 레벨의 설정입니다.

```
services:
  authelia:
    container_name: authelia
    image: authelia/authelia:latest
    restart: always
    networks:
      - t2_proxy
      - default
    depends_on:
      - mariadb
    volumes:
      - $DOCKERDIR/appdata/authelia:/config
    secrets:
      - authelia_jwt_secret
      - authelia_session_secret
      - authelia_storage_mysql_password
      - authelia_storage_encryption_key
    environment:
      - TZ=$TZ
      - AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE=/run/secrets/authelia_jwt_secret
      - AUTHELIA_SESSION_SECRET_FILE=/run/secrets/authelia_session_secret
      - AUTHELIA_STORAGE_MYSQL_PASSWORD_FILE=/run/secrets/authelia_storage_mysql_password
      - AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE=/run/secrets/authelia_storage_encryption_key
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.authelia-rtr.entrypoints=https"
      - "traefik.http.routers.authelia-rtr.rule=Host(`authelia.$DOMAINNAME0`)"
      - "traefik.http.routers.authelia-rtr.tls=true"
      - "traefik.http.routers.authelia-rtr.middlewares=chain-authelia@file"
      - "traefik.http.routers.authelia-rtr.service=authelia-svc"
      - "traefik.http.services.authelia-svc.loadbalancer.server.port=9091"
```

![Authelia Traefik 관련 설정 화면](https://picsum.photos/seed/tech/800/400)

## 🔑 4. 핵심 설정 포인트 상세 분석

위의 설정에서 주목해야 할 세 가지 핵심 포인트가 있습니다. 이 부분은 시스템의 안정성과 보안에 직결됩니다.

- **depends_on: mariadb** - Authelia는 사용자 세션 정보를 저장하기 위해 데이터베이스가 필요합니다. DB가 완전히 준비된 후 서비스가 시작되도록 보장합니다.
- **_FILE 접미사 환경 변수** - 암호화 키를 직접 환경 변수에 적는 것은 보안상 위험합니다. Docker Secrets 경로를 매핑함으로써 컨테이너 내부에서도 실제 비번이 노출되지 않도록 설계했습니다.
- **Traefik Middlewares** - `chain-authelia@file` 설정을 통해 다른 앱들이 Authelia의 인증을 거치도록 강제할 수 있습니다.

더 상세한 설정 방법은 [Authelia 공식 문서](https://www.authelia.com/docs/)에서 확인할 수 있습니다.

## 🔗 5. 타 서비스 연동 및 실무 활용 팁

**Authelia Traefik** 구축의 꽃은 바로 기존 서비스에 보안 레이어를 입히는 과정입니다. 예를 들어 Portainer나 Nextcloud 같은 서비스를 보호하려면 해당 서비스의 `docker-compose.yml` 라벨에 단 한 줄만 추가하면 됩니다.

```
# 예시: Portainer를 Authelia로 보호하기
labels:
  - "traefik.http.routers.portainer.middlewares=chain-authelia@file"
```

이 라벨이 적용된 컨테이너는 이제 외부에서 접속 시 로그인하지 않은 사용자를 자동으로 Authelia 로그인 페이지로 리다이렉트 시킵니다. 아이디와 패스워드뿐만 아니라 TOTP와 같은 2FA 인증을 통과해야만 실제 서비스 화면을 볼 수 있게 됩니다.

이것으로 강력한 보안 체계 구축이 완료되었습니다. 더 많은 정보와 팁이 필요하다면 아래 링크를 확인해 보세요.

[더 많은 가이드 보기](/docs/)
