如何为Azure Kubernetes NGINX Ingress特定路径配置Azure Front Door访问限制
限制Azure Front Door仅访问特定API路径的NGINX Ingress配置
要将你的校验逻辑应用到指定API路径,只需把配置片段绑定到仅针对该路径的Ingress规则即可。NGINX Ingress的configuration-snippet注解会在匹配路径对应的NGINX location块中插入校验逻辑,实现精准控制。
完整Ingress配置示例
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: protected-api-ingress annotations: # 插入Front Door ID校验逻辑 nginx.ingress.kubernetes.io/configuration-snippet: | if ($http_x_azure_fdid !~* "xxxxx-xxx-xxx-xxxxxx") { return 403; } # 指定使用NGINX Ingress控制器 kubernetes.io/ingress.class: nginx spec: rules: - host: your-domain.com http: paths: # 仅对该路径启用校验 - path: /api/protected/* pathType: Prefix backend: service: name: your-api-service port: number: 80
关键说明
- 替换
your-domain.com为你的实际域名,your-api-service为后端API服务的名称,端口号根据服务配置调整 - 该配置仅对
/api/protected/*路径生效,其他路径不受此校验限制(若需保护多个路径,可在paths下添加更多条目) - 校验逻辑会检查请求头
X-Azure-FDID是否匹配你指定的Front Door ID,不匹配则返回403 Forbidden - 确保Azure Front Door转发请求时保留了
X-Azure-FDID头(这是Front Door的默认行为,若有自定义规则需确认未移除该头)
应用配置
执行以下命令部署Ingress:
kubectl apply -f protected-api-ingress.yaml
验证配置是否生效:
kubectl describe ingress protected-api-ingress
内容的提问来源于stack exchange,提问作者Abhishek Singh
相关产品推荐
相关产品推荐

