Ingress Nginx 添加 Basic Auth 安全认证

一、介绍

  • htpasswd 是Apache 的Web服务器内置的工具,用于创建和更新储存用户名和用户基本认证的密码文件
  • 一般用于页面可以没有安全认证页面,来做简单安全验证保证服务安全

1.1、httpd-tools 参数

|名称|介绍|
-c | 创建一个新的密码文件
-b | 在命令行中一并输入用户名和密码而不是根据提示输入密码
-D | 删除指定的用户
-n | 不更新密码文件,只将加密后的用户名密码输出到屏幕上
-p | 不对密码进行加密,采用明文的方式
-m | 采用MD5算法对密码进行加密(默认的加密方式)
-d | 采用CRYPT算法对密码进行加密
-s | 采用SHA算法对密码进行加密
-B | 采用bcrypt算法对密码进行加密(非常安全)

1.2、生成秘钥文件

#   安装 httpd-tools 服务
yum -y install httpd-tools

#   命令格式: 命令  指定生成密码文件 密码文件   用户名
#   输入2次密码
root@k8s-client:~$  htpasswd -c authfile aka
New password:
Re-type new password:
Adding password for user aka

#   查看生成好秘钥
root@k8s-client:~$ cat authfile
aka:$apr1$GBbFHqRa$/dKArgr/1eDEBJiXjdlPM/

1.3、创建 Secret 资源存储用户密码

kubectl 名称 -n 命名空间 create secret generic --from-file=文件名称
# 我这里放到 test 命名空间中
kubectl aka-basic-auth -n test create secret generic --from-file=authfile

1.4、创建 Ingress 资源

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/auth-secret: aka-basic-auth
    nginx.ingress.kubernetes.io/auth-type: basic
  labels:
    app: test-quark
  name: test-quark
  namespace: test
spec:
  rules:
    - host: test.akiraka.net
      http:
        paths:
          - backend:
              service:
                name: test-quark
                port:
                  number: 8080
            path: /
            pathType: Prefix

1.5、终端验证

# 未加上安全秘钥 返回 401
root@k8s-client:~$ curl -I http://test.akiraka.net
HTTP/1.1 401 Unauthorized
Date: Mon, 02 Aug 2021 03:32:31 GMT
Content-Type: text/html
Content-Length: 172
Connection: keep-alive
WWW-Authenticate: Basic realm=""
Server: elb

#   加上刚刚生成好的秘钥验证 返回 200
root@k8s-client:~$ curl -I http://test.akiraka.net -u "aka:123"
HTTP/1.1 200
Date: Mon, 02 Aug 2021 03:33:06 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 3382
Connection: keep-alive
Content-Language: en
Server: elb

版权声明:
作者:Akiraka
链接:https://www.akiraka.net/kubernetes/1159.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
Ingress Nginx 添加 Basic Auth 安全认证
一、介绍 htpasswd 是Apache 的Web服务器内置的工具,用于创建和更新储存用户名和用户基本认证的密码文件 一般用于页面可以没有安全认证页面,来做简单安全验……
<<上一篇
下一篇>>
文章目录
关闭
目 录