Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

Kubernetes construit ? Essayez maintenant ces 5 outils RBAC pour auditer les autorisations

RBAC Kubernetes
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Kubernetes RBAC est une méthode d'autorisation basée sur les rôles efficace utilisée pour fournir un accès granulaire aux ressources d'un cluster Kubernetes.

Cependant, s'il n'est pas utilisé correctement, il peut facilement provoquer une catastrophe de conformité. C'est pourquoi nous avons besoin d'outils RBAC pour auditer et localiser les autorisations à risque dans Kubernetes.  

Dans cet article, nous discuterons de ce qu'est Kubernetes RBAC, pourquoi il est important d'auditer les autorisations à risque et découvrirons les outils qui peuvent nous aider au mieux à auditer les autorisations à risque !

Qu'est-ce que le RBAC ?

Le contrôle d'accès basé sur les rôles (RBAC) est un sécurité mécanisme dans lequel chaque autorisation d'accès est basée sur des rôles attribués à un utilisateur. Avec ce système, il est donc possible de restreindre l'accès aux ressources d'un cluster Kubernetes (espaces de noms, pods, jobs) aux applications ou aux utilisateurs.

In Kubernetes, les politiques RBAC permettent de gérer les droits d'accès d'un utilisateur système (Utilisateur ou Groupe) ainsi que ceux des comptes de service (Service Account).

Il existe d'autres moyens d'autoriser les utilisateurs dans Kubernetes, tels que ABAC (contrôle d'accès basé sur les attributs), via Webhook ou Node Authorization, mais le mécanisme d'autorisation natif le plus largement utilisé disponible dans la version stable est RBAC.

Pratiquement toutes les interactions avec les ressources se font via son serveur API, ce qui signifie qu'au final, tout se limite à faire des requêtes HTTP audit serveur (composant essentiel du/des nœud(s) maître(s) ou Control Panel). 

Kubernetes possède quatre objets liés au RBAC qui peuvent être combinés pour définir les autorisations d'accès aux ressources du cluster. Il s'agit de Role, ClusterRole, RoleBinding et ClusterRoleBinding. Pour travailler avec ces objets, comme tous les objets Kubernetes, l'API Kubernetes doit être utilisée.

Rôles dans Kubernetes

In Kubernetes, il existe deux types de rôles appelés Role et ClusterRole. La plus grande différence entre les deux est que le rôle appartient à un espace de noms concret, tandis que le ClusterRole est global pour le cluster. Ainsi, dans le cas de ClusterRole, son nom doit être unique puisqu'il appartient au cluster. Dans le cas d'un rôle, deux espaces de noms différents peuvent avoir un rôle portant le même nom.

Une autre différence qu'il convient de mentionner est que le rôle permet d'accéder aux ressources qui se trouvent dans le même espace de noms, tandis que ClusterRole, en plus de pouvoir donner accès aux ressources dans n'importe quel espace de noms, peut également donner accès aux ressources dans le même espace de noms tels que les nœuds entre autres.

Maintenant que nous connaissons les types de rôles, la prochaine chose est de savoir à qui nous pouvons attribuer ces rôles. Dans ce cas, nous avons des comptes d'utilisateurs, des comptes de service et des groupes.

Les comptes d'utilisateurs sont des comptes attribués à un utilisateur particulier, tandis que les comptes de service sont utilisés par les processus. Par exemple, imaginons que notre application ait besoin d'accéder par programmation aux ressources du cluster, pour cela nous utiliserions un compte de service.

Enfin, nous avons besoin du « ciment » qui lie un rôle à un compte (utilisateur ou service) ou à un groupe. Il existe deux ressources dans Kubernetes pour cela : RoleBinding et ClusterRoleBinding. Le RoleBinding peut référencer un rôle qui se trouve dans le même espace de noms, tandis que le ClusterRoleBinding peut référencer n'importe quel rôle dans n'importe quel espace de noms et attribuer des autorisations globalement.

A noter, les permissions ne permettent que l'accès aux ressources, car "par défaut, tout est refusé" et il est possible d'attribuer plusieurs rôles à un même utilisateur

Le seul prérequis pour utiliser RBAC est qu'il soit activé sur notre cluster en utilisant le "–authorization-mode=RBAC" option. Nous pouvons vérifier cela en utilisant la commande :

kubectl api-versions

Quelles sont les autorisations RBAC à risque et comment les corriger ?

Toute autorisation qui autorise ou peut autoriser un accès non autorisé aux ressources du pod est considérée comme une autorisation risquée. Par exemple, si un utilisateur dispose d'une autorisation de modification, il peut modifier son propre rôle et accéder à des ressources auxquelles il n'est pas autorisé à accéder autrement. Cela peut entraîner un problème de conformité.

De même, si les anciennes autorisations ne sont pas cochées, certains utilisateurs peuvent accéder aux ressources dont ils n'ont plus besoin.

Il est difficile et fastidieux de trouver manuellement une telle autorisation risquée lorsque vous avez un grand nombre de rôles. Pour effectuer ce processus, il existe un certain nombre d'outils d'audit des autorisations RBAC qui aident à analyser l'ensemble de votre cluster pour localiser les autorisations à risque. Il est également important de comprendre que l'efficacité du RBAC dépend d'une politique RBAC à jour qui, à son tour, nécessite un audit régulier des autorisations.

Voici quelques-uns des meilleurs outils RBAC pour auditer les autorisations en fonction de différentes langues et interfaces utilisateur.

KubiScan

KubiScanName est un outil RBAC basé sur Python pour analyser les autorisations à risque dans un cluster Kubernetes. L'outil doit être exécuté dans le nœud maître, puis il peut être exécuté directement depuis le terminal pour donner une liste des autorisations à risque. Kubiscan peut être utilisé pour trouver des rôles à risque, des ClusterRoles, des RoleBindings, des ClusterBindings, des sujets, des pods et même des conteneurs.

Krane

Krane by Appvia est un outil d'analyse et de visualisation statique Kubernetes RBAC basé sur Ruby. Il peut être exécuté à la fois localement en tant que CLI ou dans un pipeline CI/CD. De plus, il peut également fonctionner en tant que service autonome dans un conteneur Kubernetes. Krane offre la possibilité d'analyser les autorisations RBAC via des vues de réseau arborescentes et graphiques à facettes. Il donne également des alertes pour toutes les autorisations risquées grâce à son intégration Slack. 

RBAC Tool

Outil RBAC by InsightCloudSec est un outil d'audit des autorisations autonome conçu avec Go. Il ne vous permet pas seulement d'analyser et de mettre en évidence les autorisations RBAC à risque, mais il vous permet également de générer une politique RBAC à partir de l'audit des autorisations via sa fonction Auditgen. L'outil RBAC offre également la fonctionnalité de visualisation RBAC.

Fairwinds

Perspicacité Fairwinds est un outil autonome qui fournit un certain nombre de fonctionnalités de sécurité et de conformité Kubernetes. Sa fonction d'application des politiques vous permet d'auditer les autorisations RBAC et de les analyser par rapport aux politiques standard et personnalisées. Fairwinds propose une démo à la demande.

Permission Manager

Gestionnaire des autorisations by Signup est un outil de gestion des autorisations Kubernetes basé sur Javascript. Il offre un moyen simple et innovant de gérer les autorisations des utilisateurs au sein d'un cluster Kubernetes. Permission Manager propose également une édition entreprise de l'outil qui vous permet d'effectuer un audit de base des autorisations RBAC.

Conclusion

Kubernetes RBAC est un moyen efficace de gérer l'accès aux ressources dans un cluster Kubernetes. Cependant, s'il n'est pas mis en œuvre correctement, il peut entraîner des problèmes de sécurité et de conformité. Ceci, cependant, peut être évité en auditant en continu les autorisations via les outils d'audit RBAC.

Vous pouvez également être intéressé par Bonnes pratiques Kubernetes.

Merci à nos commanditaires
Plus de bonnes lectures sur DevOps
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder