☸️ Взаимная аутентификация на основе сертификатов с NGINX Ingress Kubernetes. — Information Security Squad
☸️ Взаимная аутентификация на основе сертификатов с NGINX Ingress Kubernetes.

Вступление

В этом руководстве вы узнаете, как настроить двустороннюю взаимную аутентификацию с контроллером NGINX Ingress в Kubernetes.

Получение сертификатов

Первым шагом во взаимной аутентификации является защита вашей конечной точки, которая в данном случае является контроллером NGINX Ingress.

Вам понадобится сертификат и ключ от доверенного органа.

Создание входного ресурса NGINX

Входной контроллер NGINX создается с использованием файла YAML.

И сертификат и ключ будут включены.

apiVersion: v1
kind: Ingress
metadata:
  name: myapp-ingress
spec:
  rules:
  - host: app.serverlab.ca
    http:
      paths:
      - backend:
          serviceName: myapp
          servicePort: 80
        path: /
  tls:
  - hosts:
    - app.serverlab.ca
    secretName: my-certs

tls: Этот ключ предоставляет ключи конфигурации для включения HTTPS на входном контроллере NGINX.

hosts: используется для определения множества имен хостов, для которых будет включен TLS.

Подстановочные знаки не поддерживаются, поэтому каждое имя хоста, добавляемое в сертификат, также должно быть задано явно.

Создайте новый входной ресурс с помощью команды kubectl apply.

kubectl apply -f nginx-ingress.yml

Включение взаимной аутентификации на основе сертификатов

Взаимная аутентификация включается добавлением аннотации к вашему входному контроллеру.

Аннотация устанавливает конфигурацию NGINX для проверки сертификата клиента.

Обновите существующий YAML-файл NGINX Ingress, добавив annotations

apiVersion: v1
kind: Ingress
metadata:
  name: myapp-ingress
  annotations:
    nginx.ingress.kubernetes.io/auth-tls-verify-client: "on"
    nginx.ingress.kubernetes.io/auth-tls-secret: "default/my-certs"
spec:
  rules:
  - host: app.serverlab.ca
    http:
      paths:
      - backend:
          serviceName: myapp
          servicePort: 80
        path: /
  tls:
  - hosts:
    - app.serverlab.ca
    secretName: my-certs
Verify-client: поручает NGINX проверить сертификат, представленный клиентом, убедившись, что он от доверенного органа.

 

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40