Kf fournit un ensemble de rôles Kubernetes qui permettent à plusieurs équipes de partager un cluster Kf. Cette page décrit les rôles et les bonnes pratiques à suivre lors de leur utilisation.
Quand utiliser les rôles Kf ?
Les rôles Kf permettent à plusieurs équipes de partager un cluster Kubernetes sur lequel Kf est installé. Les rôles permettent d'accéder à des espaces Kf.
Utilisez les rôles Kf pour partager l'accès à un cluster si les conditions suivantes sont remplies :
- Le cluster est utilisé par les équipes de confiance.
- Les charges de travail sur le cluster partagent les mêmes hypothèses concernant le niveau de sécurité fourni par l'environnement.
- Le cluster existe dans un projet Google Cloud qui est étroitement contrôlé.
Les rôles Kf ne serviront pas à :
- Protéger votre cluster contre des développeurs ou des charges de travail non approuvés. Pour en savoir plus, consultez le modèle de responsabilité partagée de GKE.
- Isoler vos charges de travail. Pour plus d'informations, consultez le guide de renforcement de la sécurité des clusters.
- Empêcher la définition de rôles Kubernetes supplémentaires interagissant avec Kf.
- Empêcher l'accès aux administrateurs ayant accès au projet ou au cluster Google Cloud.
Rôles Kf
Les sections suivantes décrivent les rôles RBAC Kubernetes disponibles avec Kf et leur interaction avec les rôles IAM de Google Kubernetes Engine (GKE).
Rôles prédéfinis
Kf met à disposition plusieurs rôles Kubernetes prédéfinis pour vous aider à accéder à différents sujets exécutant des rôles différents. Chaque rôle prédéfini peut être lié à un sujet d'un espace de noms Kubernetes géré par un espace Kf.
Lorsqu'un sujet est associé à un rôle dans un espace de noms Kubernetes, son accès est limité aux objets qui existent dans l'espace de noms correspondant aux autorisations répertoriées dans le rôle. Dans Kf, certaines ressources sont définies au niveau du cluster. Kf surveille les modifications apportées aux sujets de l'espace de noms et accorde des rôles supplémentaires, limités au niveau du cluster.
Rôle | Titre | Description | Champ d'application |
---|---|---|---|
space-auditor |
Auditeur de l'espace | Donne l'accès en lecture seule à un espace. | Espace |
space-developer |
Développeur de l'espace | Permet aux développeurs d'applications de déployer et de gérer des applications dans un espace. | Espace |
space-manager |
Gestionnaire de l'espace | Autorise l'administration et la gestion d'auditeurs, de développeurs et de responsables dans un espace. | Espace |
SPACE_NAME-manager |
Gestionnaire de l'espace dynamique | Fournit un accès en écriture à un seul objet Space, automatiquement accordé à tous les sujets auxquels le rôle space-manager est attribué dans l'espace nommé. |
Cluster |
kf-cluster-reader |
Lecteur de cluster | Donne un accès en lecture seule aux objets Kf à l'échelle du cluster, automatiquement accordé à tous les space-auditor , space-developer et space-manager . |
Cluster |
Pour en savoir plus sur les règles qui composent chaque rôle prédéfini, consultez la documentation de référence sur les rôles Kf.
Rôles IAM
Les rôles Kf permettent de contrôler les accès aux objets d'un cluster Kubernetes. Il convient également d'attribuer un rôle IAM aux sujets afin de permettre l'authentification auprès du cluster.
Les administrateurs de la plate-forme doivent disposer du rôle IAM
roles/container.admin
. Cela leur permettra d'installer, de mettre à niveau et de supprimer Kf, ainsi que de créer et de supprimer des objets Kf définis à l'échelle du cluster, tels que Spaces ou ClusterServiceBrokers.Les utilisateurs Kf end-users doivent disposer du rôle IAM
roles/container.viewer
. Ce rôle leur permet de s'authentifier auprès d'un cluster avec des autorisations limitées pouvant être étendues à l'aide des rôles Kf.
IAM met à disposition des rôles prédéfinis supplémentaires pour permettre à GKE de résoudre des cas d'utilisation plus avancés :
Role | Title | Description | Lowest resource |
---|---|---|---|
roles/ |
Kubernetes Engine Admin |
Provides access to full management of clusters and their Kubernetes API objects.
To set a service account on nodes, you must also have the Service Account User role
( |
|
roles/ |
Kubernetes Engine KMS Crypto Key User | Allow the Kubernetes Engine service agent in the cluster project to call KMS with user provided crypto keys to sign payloads. | |
roles/ |
Kubernetes Engine Cluster Admin |
Provides access to management of clusters.
To set a service account on nodes, you must also have the Service Account User role
( |
|
roles/ |
Kubernetes Engine Cluster Viewer |
Provides access to get and list GKE clusters. |
|
roles/ |
Kubernetes Engine Default Node Service Account | Least privilege role to use as the default service account for GKE Nodes. | |
roles/ |
Kubernetes Engine Developer |
Provides access to Kubernetes API objects inside clusters. |
|
roles/ |
Kubernetes Engine Host Service Agent User |
Allows the Kubernetes Engine service account in the host project to configure shared network resources for cluster management. Also gives access to inspect the firewall rules in the host project. |
|
roles/ |
Kubernetes Engine Viewer |
Provides read-only access to resources within GKE clusters, such as nodes, pods, and GKE API objects. |
|
Mapper des rôles Cloud Foundry avec Kf
Les rôles fournis par Cloud Foundry sont semblables aux rôles prédéfinis de Kf. Cloud Foundry possède deux types de rôles principaux :
- Rôles attribués par le sous-système de comptes utilisateur et d'authentification (UAA) qui fournissent des champs d'application OAuth détaillés applicables à tous les points de terminaison de l'API Cloud Foundry.
- Rôles attribués dans l'API Cloud Controller (CAPI) qui permettent un accès précis aux ressources de l'API.
Rôles UAA
Les rôles fournis par le sous-système UAA s'apparentent davantage aux rôles IAM à l'échelle du projet :
- Les administrateurs de Cloud Foundry peuvent effectuer des activités administratives pour toutes les organisations et tous les espaces de Cloud Foundry. Le rôle s'apparente davantage au rôle IAM
roles/container.admin
. - Les administrateurs en lecture seule dans Cloud Foundry peuvent accéder à tous les points de terminaison de l'API Cloud Foundry. Le rôle s'apparente davantage au rôle IAM
roles/container.admin
. - Les auditeurs globaux de Cloud Foundry disposent d'un accès en lecture à tous les points de terminaison de l'API Cloud Foundry, à l'exception des secrets. Il n'existe pas de rôle IAM équivalent, mais vous pouvez créer un rôle personnalisé présentant des autorisations similaires.
Rôles de l'API Cloud Controller
Les rôles fournis par CAPI s'apparentent davantage aux rôles Kf attribués dans un cluster aux sujets qui disposent du rôle IAM roles/container.viewer
sur le projet propriétaire :
- Les auditeurs de l'espace dans Cloud Foundry disposent d'un accès en lecture aux ressources dans un espace CF.
Le rôle s'apparente davantage au rôle Kf
space-auditor
. - Les développeurs de l'espace de Cloud Foundry ont la possibilité de déployer et de gérer des applications dans un espace CF.
Le rôle s'apparente davantage au rôle Kf
space-developer
. - Les gestionnaires de l'espace dans Cloud Foundry peuvent modifier les paramètres de l'espace CF et attribuer des utilisateurs aux rôles.
Le rôle s'apparente davantage au rôle Kf
space-manager
.
Étape suivante
- Apprenez-en davantage sur la sécurité de GKE dans la présentation des fonctionnalités de sécurité.
- Assurez-vous de bien comprendre le modèle de responsabilité partagée de GKE.
- Apprenez-en plus sur le contrôle des accès dans GKE.
- Consultez la présentation de l'architecture de cluster mutualisée de GKE.
- Découvrez comment renforcer votre cluster GKE.
- Familiarisez-vous avec les autorisations Kubernetes qui composent chaque rôle prédéfini Kf.