web-dev-qa-db-fra.com

comment vérifier si RBAC est activé, en utilisant kubectl

J'essaie d'installer un paquetage helm sur un cluster kubernetes sur lequel RBAC aurait été désactivé. J'obtiens une erreur d'autorisation mentionnant clusterroles.rbac.authorization.k8s.io, ce à quoi je m'attendrais si RBAC était activé .

Existe-t-il un moyen de vérifier avec kubectl si RBAC est vraiment désactivé?

Ce que j'ai essayé

  • kubectl describe nodes --all-namespaces | grep -i rbac: rien ne se présente
  • kubectl describe rbac --all-namespaces | grep -i rbac: rien ne se présente
  • kubectl config get-contexts | grep -i rbac: rien ne se présente
  • k get clusterroles il indique "Aucune ressource trouvée", pas un message d'erreur. Cela signifie-t-il que RBAC est activé ?
  • kuebctl describe cluster n'est pas une chose

Je suis conscient que c'est peut-être le problème x-y car il est possible que le paquetage de barre que j'installe s'attend à ce que RBAC soit activé. Mais j'aimerais quand même savoir comment vérifier si cela est activé ou non.

33
falsePockets

Vous pouvez le vérifier en exécutant la commande kubectl api-versions; Si RBAC est activé, vous devriez voir la version de l'API .rbac.authorization.k8s.io/v1.

Dans AKS, le meilleur moyen consiste à vérifier les détails des ressources du cluster à l’adresse resources.Azure.com . Si vous pouvez repérer "enableRBAC": true, votre cluster est activé par RBAC. Veuillez noter que les clusters AKS non compatibles RBAC existants ne peuvent actuellement pas être mis à jour pour une utilisation RBAC. (merci @DennisAmeling pour la clarification)

52
danielepolencic

Je souhaite qu'il y ait un meilleur moyen mais ce que j'utilise est:

$ kubectl cluster-info dump | grep authorization-mode

Si vous pouvez l'exécuter, vous devriez soit voir la liste RBAC répertoriée ou non, et si vous n'avez pas les autorisations pour le faire, il est fort probable que le contrôle d'accès basé sur les rôles soit activé.

12
Michael Hausenblas

Pour Azure (AKS), c'est un peu plus compliqué. Alors que la commande kubectl api-versions renvoie bien rbac.authorization.k8s.io/v1, la commande kubectl get clusterroles ne renvoie pas les rôles par défaut préfixés system:.

Le meilleur moyen de vérifier la présence d’AKS est de vérifier les détails des ressources du cluster, par exemple. à resources.Azure.com . Si "enableRBAC": true, votre cluster est activé par RBAC. Clusters AKS existants non activés par RBAC ne peut pas être mis à jour actuellement pour utilisation par RBAC. Donc, si vous voulez activer RBAC sur AKS, vous devrez créer un nouveau cluster.

6
Dennis Ameling

Option n ° 1: Si vous avez accès au noeud principal, connectez-vous et vérifiez ci-dessous

ps -aef | grep -i apiserver
The options should have --authorization-mode=RBAC otherwise RBAC not enabled.

Option 2:

kubectl get clusterroles | grep -i rbac

J'espère que cela t'aides

Rgds Sudhakar

4
Sudhakar MNSR

Pour Azure (AKS), je pense que Azure CLI fonctionne bien.

az resource show -g <resource group name> -n <cluster name> --resource-type Microsoft.ContainerService/ManagedClusters --query properties.enableRBAC

C'est fondamentalement la même chose que d'utiliser resources.Azure.com , mais je trouve qu'il est plus rapide d'utiliser le Azure CLI

3
Olav Nybø

ps -aef | grep -i apiserver est le moyen le plus simple de le savoir.

1
vin84