如何用HTTP基本认证保护Gateway API的HTTPRoute?求支持实现
用HTTP基本认证保护Gateway API的HTTPRoute
实现步骤
由于Gateway API核心未内置认证能力,需依赖网关实现提供的自定义Policy扩展,通用流程如下:
创建存储认证凭证的Secret
将用户名与密码(需按username:password格式整体做base64编码)存入Kubernetes Secret,示例:apiVersion: v1 kind: Secret metadata: name: basic-auth-secret type: Opaque data: users: dXNlcjE6cGFzc3dvcmQx # 对应明文user1:password1创建认证Policy资源
根据具体网关实现的CRD定义创建Policy,以Envoy Gateway的BasicAuthPolicy为例:apiVersion: authentication.gateway.envoyproxy.io/v1alpha1 kind: BasicAuthPolicy metadata: name: basic-auth-policy spec: targetRef: group: gateway.networking.k8s.io kind: HTTPRoute name: my-httproute credentials: secret: name: basic-auth-secret关联Policy与HTTPRoute
多数网关实现通过Policy的targetRef字段直接指定目标HTTPRoute,或用标签选择器批量关联,确保认证规则生效。
支持该策略的Gateway API实现
以下是已知支持通过自定义Policy扩展实现HTTP基本认证的网关:
- Envoy Gateway:提供
BasicAuthPolicyCRD,原生支持与HTTPRoute绑定,凭证存储在Kubernetes Secret中。 - Kong Gateway:可通过自定义Policy或结合
KongConsumer、KongCredential资源实现基本认证,直接关联HTTPRoute。 - Istio:通过Gateway API扩展将Istio的
RequestAuthentication和AuthorizationPolicy与HTTPRoute绑定,完成基本认证校验。 - GKE Gateway:Google Kubernetes Engine的网关实现提供
AuthenticationPolicyCRD,支持配置HTTP基本认证并关联到HTTPRoute。 - Apache APISIX Ingress Controller:支持通过自定义Policy资源配置基本认证,与HTTPRoute关联生效。
内容的提问来源于stack exchange,提问作者oldhomemovie
相关产品推荐
相关产品推荐

