Cette page décrit les niveaux d'accès par défaut accordés aux nœuds des clusters Google Kubernetes Engine (GKE).
Que sont les niveaux d'accès ?
Les niveaux d'accès représentent l'ancienne méthode utilisée pour accorder des autorisations aux nœuds et aux charges de travail s'exécutant sur les nœuds si celles-ci utilisent des identifiants par défaut d'application (ADC). Les niveaux d'accès définissent les champs d'application OAuth utilisés dans les appels d'API à partir de bibliothèques clientes ou de gcloud CLI.
Nous vous recommandons de ne pas spécifier vos propres niveaux d'accès. Utilisez plutôt des autorisations IAM ou le contrôle des accès basé sur les rôles (RBAC) Kubernetes pour accorder l'accès à des comptes de service IAM ou Kubernetes spécifiques.
Niveaux d'accès par défaut
Lorsque vous créez un cluster GKE, Google Cloud attribue aux nœuds un ensemble de niveaux d'accès par défaut en fonction du compte de service utilisé par les nœuds. Ces niveaux d'accès activent des fonctionnalités spécifiques pour GKE.
Vous pouvez également définir des niveaux d'accès manuellement à l'aide de l'option --scopes
lorsque vous créez des clusters standards,
des clusters Autopilot ou des pools de nœuds. Vous ne pouvez pas modifier les niveaux d'accès sur des pools de nœuds existants. Pour y remédier, vous devez créer un pool de nœuds avec les nouveaux niveaux d'accès, puis migrer les charges de travail vers ce pool de nœuds.
Les sections suivantes décrivent les niveaux d'accès par défaut que GKE ajoute aux nœuds selon que vous spécifiez un compte de service personnalisé et que vous spécifiez manuellement les niveaux d'accès.
Clusters Autopilot
Compte de service | Avez-vous spécifié manuellement des niveaux d'accès ? | Niveaux d'accès ajoutés par GKE |
---|---|---|
Compte de service Compute Engine par défaut | Non |
|
Oui | Niveaux d'accès spécifiés manuellement | |
Compte de service personnalisé | Non | https://www.googleapis.com/auth/cloud-platform |
Oui | Niveaux d'accès spécifiés manuellement |
Clusters standards
Compte de service | Niveaux d'accès spécifiés manuellement ? | Niveaux d'accès GKE |
---|---|---|
Compte de service Compute Engine par défaut | Non |
|
Oui |
|
|
Compte de service personnalisé | Non |
|
Oui |
|
Configurer un compte de service personnalisé pour les charges de travail
IAM est le système de contrôle d'accès permettant d'accorder des rôles autorisés aux utilisateurs et aux comptes de service au sein de votre projet Google Cloud. Un compte de service est un compte Google spécial qui effectue des tâches, telles que le déploiement d'applications, en votre nom. Vous utilisez IAM pour créer un compte de service, puis des liaisons de stratégie IAM pour sécuriser le compte.
Si vos charges de travail nécessitent un accès à Compute Engine, accordez au compte de service le rôle d'administrateur Compute Engine. Si vos charges de travail doivent extraire des images privées d'Artifact Registry, consultez la section Configurer le contrôle des accès pour les dépôts Artifact Registry.
Créer un compte de service
Pour créer un compte de service personnalisé nommé kubernetes-engine-node-sa
, exécutez les commandes suivantes :
export NODE_SA_NAME=kubernetes-engine-node-sa
gcloud iam service-accounts create $NODE_SA_NAME \
--display-name "GKE Node Service Account"
export NODE_SA_EMAIL=`gcloud iam service-accounts list --format='value(email)' \
--filter='displayName:GKE Node Service Account'`
Accorder des rôles minimaux
Pour configurer le compte de service avec les autorisations et rôles minimaux nécessaires au fonctionnement de votre nœud GKE, exécutez les commandes suivantes, où $PROJECT
est votre ID de projet :
export PROJECT=`gcloud config get-value project`
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/monitoring.metricWriter
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/monitoring.viewer
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/logging.logWriter
Accorder des rôles supplémentaires
Pour attribuer le rôle Administrateur Compute Engine au compte de service, exécutez la commande suivante :
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/compute.admin
Pour savoir comment accorder aux comptes de service l'accès aux images privées stockées dans Artifact Registry, consultez la section Accorder l'accès aux clusters Google Kubernetes Engine.
Créer un cluster ou un pool de nœuds avec le compte de service personnalisé
Pour créer un cluster qui utilise le compte de service personnalisé, exécutez la commande suivante :
gcloud container clusters create --service-account=$NODE_SA_EMAIL
Pour créer un pool de nœuds dans un cluster existant :
gcloud container node-pools create --service-account=$NODE_SA_EMAIL