Autorisations des composants de diffusion Knative

Cette page vous permet de comprendre les autorisations RBAC détenues par les composants de diffusion Knative pour maintenir l'accès au cluster. Ces autorisations sont requises et activées par défaut pour la diffusion Knative. N'essayez pas de les désactiver.

Composants Namespace Compte de service
activator knative-serving controller
autoscaler knative-serving controller
controller knative-serving controller
webhook knative-serving controller
storage-version-migration-serving knative-serving controller
webhook knative-serving controller
cloud-run-operator cloud-run-system cloud-run-operator

Notez que le compte de service cloud-run-operator dispose du même ensemble d'autorisations que controller. L'opérateur est ce qui déploie tous les composants de diffusion Knative, y compris les contrôleurs et les définitions de ressources personnalisées.

RBAC pour les comptes de service de diffusion Knative

Utilisez les définitions apiGroup suivantes pour comprendre les autorisations de contrôle des accès dont dispose chaque ressource dans la diffusion Knative pour les comptes de service controller et cloud-run-operator.

- apiGroups:
  - ""
  resources:
  - pods
  - secrets
  verbs:
  - deletecollection
- apiGroups:
  - ""
  resources:
  - nodes
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - ""
  resources:
  - pods
  - namespaces
  - secrets
  - configmaps
  - endpoints
  - services
  - events
  - serviceaccounts
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - ""
  resources:
  - endpoints/restricted
  verbs:
  - create
- apiGroups:
  - ""
  resources:
  - namespaces/finalizers
  verbs:
  - update
- apiGroups:
  - apps
  resources:
  - deployments
  - deployments/finalizers
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - mutatingwebhookconfigurations
  - validatingwebhookconfigurations
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - apiextensions.k8s.io
  resources:
  - customresourcedefinitions
  - customresourcedefinitions/status
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - autoscaling
  resources:
  - horizontalpodautoscalers
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch
- apiGroups:
  - admissionregistration.k8s.io
  resources:
  - validatingwebhookconfigurations
  verbs:
  - get
  - list
  - create
  - update
  - delete
  - patch
  - watch

Le tableau suivant indique comment les autorisations RBAC sont utilisées dans la diffusion Knative, où:

  • view (afficher) inclut les verbes : get, list et watch (obtenir, lister et regarder).
  • modify (modifier) inclut les verbes : create, update, delete et patch (créer, mettre à jour, supprimer et corriger)
Autorisations Raisons
Peut afficher tous les secrets Le webhook doit lire le secret à partir de l'espace de noms knative-serving. Le contrôleur de mappage de domaine doit lire le secret de certificat généré par la fonctionnalité TLS automatique, puis le copier dans l'espace de noms gke-system.
Peut modifier pods Le contrôleur de mappage de domaine doit créer un pod permettant de diffuser les requêtes pour répondre au défi HTTP01.
Peut modifier secrets Le contrôleur de mappage de domaine doit créer ou mettre à jour le secret du certificat. Le webhook doit lire le secret à partir de l'espace de noms knative-serving.
Peut modifier configmaps Utilisé dans la fonctionnalité d'URL par défaut. Le contrôleur doit mettre à jour le ConfigMap "config-domain" dans l'espace de noms "knative-serving" pour ajouter l'URL "nip.io".
Peut modifier endpoints Le contrôleur ServerlessService doit créer, mettre à jour ou supprimer les points de terminaison. Le contrôleur de routes doit créer, mettre à jour ou supprimer les points de terminaison.
Peut modifier services Route Controller doit créer, mettre à jour ou supprimer un service. Le contrôleur sans serveur doit créer, mettre à jour ou supprimer un service. Le contrôleur de mappage de domaine doit créer un service pour traiter les requêtes de test HTTP01.
Peut modifier events Le contrôleur de diffusion Knative crée et émet des événements pour les ressources gérées par Knative.
Peut modifier serviceaccounts Knative Serving doit lire un compte de service indirectement.
Peut modifier endpoints/restricted La diffusion Knative doit créer des points de terminaison lorsque RestrictedEndpointsAdmission est activé.
Peut modifier deployments Le contrôleur de révision doit créer ou mettre à jour un déploiement pour le service Knative.
Peut modifier mutatingwebhookconfiguration Le webhook Knative ajoute caBundle aux configurations mutatingwebhookconfigurations appartenant à Knative.
Peut modifier validatingwebhookconfiguration Le webhook Knative ajoute caBundle aux configurations validatingwebhookconfigurations appartenant à Knative.
Peut modifier customresourcedifinitions customresourcedefinitions/status La tâche post-installation Knative doit mettre à niveau les CRD associées à Knative vers la version v1.
Peut modifier horizontalpodautoscalers Knative est compatible avec l'autoscaling basé sur l'AHP.
Peut modifier namespace/finalizer La diffusion Knative doit définir la référence propriétaire sur l'espace de noms de diffusion Knative.