K8s Nginx Ingress 配置 Basic Auth 访问
status
Published
type
Post
slug
nginx-ingress-basic-auth-config
date
Mar 4, 2021
tags
K8s
Config
summary
为 K8s Nginx Ingress Controller 配置 HTTP Basic Auth,增强安全。首先使用
htpasswd
或 openssl
命令创建认证文件,然后创建 Secret,并将认证文件作为其值。最后,通过在 Ingress 中设置相应的注解来启用基本认证。成功应用后,访问 Ingress 对应的 URL 将需要输入用户名和密码。扩展:在 Nginx 配置文件中增加 auth_basic
和 auth_basic_user_file
指令以配置 Basic 认证。创建认证文件
可选的命令行工具有 `htpasswd` 和 `openssl`
- htpasswd
- openssl
创建 Secret
创建 Ingress
Nginx Ingress配置通过注解(annotations)来实现,基本认证主要有以下三个配置项
- nginx.ingress.kubernetes.io/auth-type 认证类型
- nginx.ingress.kubernetes.io/auth-secret 即上一步创建的Secret名称
- nginx.ingress.kubernetes.io/auth-realm 当认证的时候显示一个合适的上下文信息
ingress-auth.yaml内容如下
成功应用后,此时我们再访问对应的url入口时,就会提示需要输入用户名和密码了
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F700cb05b-a25d-42b4-a8ef-95d0739e97f3%2FUntitled.png?table=block&id=9a6e2057-d54c-4dc4-baab-77358a8a7635&cache=v2)