À propos de l'auteur
Xie Zeqin, ingénieur de support technique de SUSE Rancher, est chargé de souscrire aux services de maintenance et de support technique après-vente des clients et de fournir les solutions techniques associées. Il a la certification officielle de CKA et CKS, et a de nombreuses années d'expérience dans le domaine du cloud computing. Il a connu des changements techniques d'OpenStack à Kubernetes, et possède une riche expérience pratique dans le système d'exploitation sous-jacent, la virtualisation KVM, les conteneurs Docker et d'autres technologies cloud natives connexes.
Introduction à la surveillance des éleveurs
Sur la plate-forme de gestion Rancher, nous pouvons facilement activer Rancher Monitoring sur n'importe quel cluster Kubernetes qui prend en charge la gestion pour mettre en œuvre des fonctions de surveillance et d'alerte. Rancher Monitoring utilise Prometheus par défaut pour assurer la surveillance des systèmes et des services d'application associés, et utilise l'outil de visualisation du tableau de bord de Grafana pour surveiller et afficher les statistiques de données.
pense
Par défaut, Rancher n'impose pas trop de restrictions aux utilisateurs qui accèdent à Grafana, et nous pouvons utiliser l'utilisateur anonyme pour afficher n'importe quelle interface d'affichage de tableau de bord par défaut déployée par Rancher. Mais dans la plupart des cas, nous devons développer des tableaux de bord personnalisés via Grafana.Pour le moment, l'autorisation ReadOnly de l'utilisateur anonyme ne peut pas répondre à nos besoins, mais la connexion à l'utilisateur administrateur entraînera certains risques de sécurité pour Grafana. À l'heure actuelle, un tel système de gestion des utilisateurs est nécessaire pour gérer les utilisateurs de Grafana et pour restreindre et contrôler l'accès des utilisateurs à certaines autorisations.
Bien que nous puissions utiliser la liste de gestion des utilisateurs fournie avec Grafana pour gérer les utilisateurs d'accès dans une certaine mesure, cela nécessite la maintenance d'un ensemble supplémentaire de listes d'utilisateurs. Alors, est-il possible de se connecter directement au système LDAP interne de l'entreprise, réduisant ainsi le coût de maintenance des utilisateurs ?
La réponse est oui. À partir de Rancher 2.5, l'architecture de surveillance a été ajustée pour permettre aux utilisateurs de personnaliser la configuration de composants plus connexes. Cet article explique comment connecter Grafana à l'authentification LDAP en configurant Rancher Monitoring sur Rancher 2.6.
conditions préalables
- Éleveur:2.6.4
- k8s:1.20.11
- surveillance:100.1.2+up19.0.3
- OpenLDAP:1.5.0
Fonctionnement détaillé
Grafana se connecte à LDAP
Modifier Monitoring Yaml pour configurer LDAP
- Accédez à l'interface utilisateur de l'explorateur Rancher, accédez à Apps & Marketplace, sélectionnez Monitoring, puis sélectionnez Edit YAML dans les options de configuration :
- Activer la configuration de l'authentification LDAP
grafana.grafana.ini
Ajoutez les auth.ldap
informations de configuration suivantes sous la hiérarchie pour activer LDAP :
grafana:
grafana.ini:
auth.ldap:
allow_sign_up: true
config_file: /etc/grafana/ldap.toml
enabled: true
éleveur-2
3. Sous grafana
Hiérarchie, ajoutez des paramètres d'authentification LDAP
grafana:
ldap:
config: |
[[servers]]
host = "test.zerchin.xyz"
port = 389
use_ssl = false
start_tls = false
ssl_skip_verify = true
bind_dn = "cn=admin,dc=rancherldap,dc=com"
bind_password = 'Rancher123'
search_filter = "(cn=%s)"
search_base_dns = ["cn=group,ou=rancher,dc=rancherldap,dc=com"]
[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email = "email"
enabled: true
Descriptif paramètre :
host
: Adresse du serveur LDAP (IP/Domaine, spécifiez plusieurs adresses séparées par des espaces).
port
: port LDAP, la valeur par défaut est 389, ou 636 si use_ssl=true.
use_ssl
: s'il faut utiliser des connexions TLS cryptées.
start_tls
: STARTTLS est une extension du protocole de communication en clair, qui permet de crypter directement la connexion de communication en clair (à l'aide du cryptage SSL/TLS) sans utiliser un autre port spécial pour la communication cryptée.
ssl_skip_verify
: Indique s'il faut ignorer la vérification du certificat SSL.
bind_dn
: nom d'utilisateur du compte de service LDAP.
bind_password
: mot de passe (si le mot de passe contient #, il doit être entouré de trois crochets, par exemple : """#password;""").
search_filter
: Champs de filtre de requête utilisateur, tels que "(cn=%s)"
, "(sAMAccountName=%s)"
, "(uid=%s)"
.
search_base_dns
: Point de départ de la recherche d'utilisateurs.
- Après la configuration, démarrez la surveillance.
Après avoir attendu que la surveillance démarre avec succès, ouvrez l'interface utilisateur Grafana, le mot de passe du compte par défaut est : admin/prom-operator
grafanar-1Authentification LDAP
Une fois connecté, accédez à Server Admin - LDAP sur la gauche et vous pouvez voir l'hôte connecté sous LDAP Connection.
Sous Tester le mappage des utilisateurs, recherchez les utilisateurs LDAP existants pour trouver des informations sur les utilisateurs.
grafana-2Et l'interface utilisateur Grafana est accessible à l'aide d'une connexion utilisateur LDAP.
grafana-3Grafana se connecte à LDAP basé sur SSL
La méthode ci-dessus est connectée au port 389 de LDAP, et nous pouvons utiliser ce port pour la connexion LDAP.
Cependant, ce port est une connexion non sécurisée et non chiffrée, qui peut facilement causer des problèmes de sécurité et exposer des informations relatives à l'utilisateur. Il est généralement recommandé d'utiliser le port 389 uniquement dans l'intranet ou l'environnement de test.
Pour les environnements avec des exigences de sécurité élevées, nous pouvons utiliser un autre port crypté SSL de LDAP pour se connecter au service LDAP : le port 636.
Créer un secret de certificat
Sous l' espace de cattle-monitoring-system
noms, créez un nouveau certs
secret nommé ca.pem
certificat CA, tls.crt
écrivez le certificat du serveur LDAP et tls.key
écrivez la clé du certificat du serveur LDAP.
Le certificat concerné peut également être importé via la ligne de commande :
kubectl create secret generic certs -n cattle-monitoring-system --from-file=ca.pem --from-file=tls.crt --from-file=tls.key
Configuration de l'authentification SSL LDAP
Modifier la configuration yaml de surveillance
- Sous
grafana
Hiérarchie, ajoutez leextraSecretMounts
certificat secret de montage :
grafana:
extraSecretMounts:
- defaultMode: 440
mountPath: /opt/certs
name: certs
readOnly: true
secretName: certs
- LDAP active l'authentification SSL :
grafana:
ldap:
config: |
[[servers]]
host = "test.zerchin.xyz"
port = 636
use_ssl = true
start_tls = false
ssl_skip_verify = false
root_ca_cert = "/opt/certs/ca.pem"
client_cert = "/opt/certs/tls.crt"
client_key = "/opt/certs/tls.key"
bind_dn = "cn=admin,dc=rancherldap,dc=com"
bind_password = 'Rancher123'
search_filter = "(cn=%s)"
search_base_dns = ["cn=group,ou=rancher,dc=rancherldap,dc=com"]
[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email = "email"
enabled: true
port
Définir sur le port crypté SSL 636use_ssl
Définir sur vrai,ssl_skip_verify
définir sur faux, activer l'authentification SSLroot_ca_cert
,client_cert
,client_key
configurer le chemin du certificat
- Après la configuration, démarrez la surveillance.
Authentification SSL LDAP
Connectez-vous à Grafana, entrez Server Admin - LDAP sur la gauche, et vous pouvez voir sous Connexion LDAP que le port crypté SSL 636 a été connecté.
Et sous Tester le mappage des utilisateurs, recherchez les utilisateurs LDAP existants pour trouver des informations sur les utilisateurs.
grafana-ssl-1Essayez de vous connecter avec un utilisateur LDAP, vous pouvez vous connecter normalement pour afficher les données.
grafana-ssl-2Résumer
Grâce à la configuration ci-dessus, nous pouvons connecter avec succès LDAP au sein de l'entreprise en tant que système de gestion des utilisateurs Grafana, afin que nous puissions utiliser directement le système de gestion des utilisateurs existant pour la gestion unifiée des utilisateurs et l'authentification des autorités. Bien sûr, nous pouvons également nous connecter à d'autres systèmes de gestion des utilisateurs, tels que okta, saml, github, basic, etc. Nous pouvons nous référer à la documentation officielle de Grafana pour une configuration en fonction de besoins spécifiques.
Référence de configuration Grafana : https://grafana.com/docs/grafana/next/setup-grafana/configure-security/configure-authentication/ldap/