Traefik APIKey 미들웨어
본문
APIKey
Traefik Hub 기능
이 미들웨어는 Traefik Hub에서만 독점적으로 사용할 수 있어요. Traefik Hub의 고급 기능에 대해 자세히 알아보세요.
API Key 인증 미들웨어는 비밀 키가 HTTP 헤더, 쿠키 또는 쿼리 파라미터를 통해 전달되도록 요구해 API를 보호할 수 있게 해줘요. 이 비밀 키는 base64로 인코딩되어 있어도 되고 아니어도 돼요.
설정 예시
Middleware API Key
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: test-apikey
namespace: apps
spec:
plugin:
apiKey:
***
headerAuthScheme: Bearer
header: Authorization
secretNonBase64Encoded: true
secretValues:
- "urn:k8s:secret:apikey:***
- "urn:k8s:secret:apikey:***
Values Secret
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: apikey
namespace: whoami
stringData:
secret: $2y$05$D4SPFxzfWKcx1OXfVhRbvOTH/QB0Lm6AXTk8.NOmU4rPLX2t6UUuW # htpasswd -nbB "" foo | cut -c 2-
othersecret: $2y$05$HbLL.g5dUqJippH0RuAGL.RaM9wNS2cT7hp6.vbv5okdCmVBSDzzK # htpasswd -nbB "" bar | cut -c 2-
설정 옵션
| 필드 | 설명 | 기본값 | 필수 |
| keySource.header | 클라이언트가 보낸 비밀을 담고 있는 헤더 이름을 정의해요. keySource.header 또는 keySource.query 또는 keySource.cookie 중 하나는 반드시 설정해야 해요. | "" | 아니요 |
| keySource.headerAuthScheme | Authorization을 헤더 이름으로 사용할 때 스킴(scheme)을 정의해요. Authorization 헤더 문서를 확인하세요. | "" | 아니요 |
| keySource.query | 클라이언트가 보낸 비밀을 담고 있는 쿼리 파라미터 이름을 정의해요. keySource.header 또는 keySource.query 또는 keySource.cookie 중 하나는 반드시 설정해야 해요. | "" | 아니요 |
| keySource.cookie | 클라이언트가 보낸 비밀을 담고 있는 쿠키 이름을 정의해요. keySource.header 또는 keySource.query 또는 keySource.cookie 중 하나는 반드시 설정해야 해요. | "" | 아니요 |
| secretNonBase64Encoded | 클라이언트가 보낸 비밀이 base64로 인코딩되어 있는지 여부를 정의해요. | false | 아니요 |
| secretValues | API 키의 해시를 담고 있어요. 지원되는 해시 알고리즘은 Bcrypt, SHA1, MD5예요. 해시는 htpasswd로 생성해야 해요. URN 형식 urn:k8s:secret:[name]:[valueKey]으로 Kubernetes Secret을 참조할 수 있어요. | [] | 예 |
프로덕션에서 Traefik OSS를 사용 중이신가요?
직장에서 Traefik을 사용하고 있다면, 엔터프라이즈급 API 게이트웨이 기능이나 Traefik OSS용 상용 지원을 추가하는 걸 고려해 보세요.
-
API Gateway 데모 영상 보기
-
24/7/365 OSS 지원 요청하기
Traefik OSS에 API 게이트웨이 기능을 추가하는 건 빠르고 매끄러워요. rip-and-replace 방식이 없고 모든 구성이 그대로 유지돼요. 짧은 영상으로 직접 확인해 보세요.