arrow_back

Comptes de services et rôles : principes de base

Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

Comptes de services et rôles : principes de base

Atelier 1 heure 15 minutes universal_currency_alt 1 crédit show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

GSP199

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Les comptes de service sont un type particulier de comptes Google qui accordent des autorisations à des machines virtuelles plutôt qu'à des utilisateurs finaux. Les comptes de service servent principalement à établir des connexions gérées et sûres vers des API et des services Google Cloud. Tout projet Google Cloud se doit de disposer d'une fonctionnalité de sécurité autorisant uniquement l'accès aux connexions approuvées. Cet atelier pratique vous présente les tenants et les aboutissants des comptes de service.

Points abordés

Dans cet atelier, vous allez apprendre à :

  • Créer et gérer des comptes de service
  • Créer une machine virtuelle et l'associer à un compte de service
  • Utiliser les bibliothèques clientes pour accéder à BigQuery depuis un compte de service
  • Exécuter une requête sur un ensemble de données public BigQuery à partir d'une instance Compute Engine

Prérequis

Cet atelier ne suppose aucune connaissance particulière des comptes de service, mais une certaine expérience de Cloud IAM est recommandée. Si vous recherchez des exercices pratiques plus poussés dans ce domaine, consultez les ateliers suivants :

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google Cloud
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).

    L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.

    {{{user_0.username | "Username"}}}

    Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.

  4. Cliquez sur Suivant.

  5. Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.

    {{{user_0.password | "Password"}}}

    Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.

  6. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  7. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas à des essais gratuits.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Définir la région de votre projet

Exécutez la commande suivante pour définir la région de votre projet :

gcloud config set compute/region {{{project_0.default_region | Region}}}

Qu'est-ce qu'un compte de service ?

Un compte de service est un compte Google spécial qui appartient à votre application ou à une machine virtuelle (VM) plutôt qu'à un utilisateur final individuel. Il permet à votre application d'appeler l'API Google d'un service sans impliquer directement les utilisateurs.

Par exemple, une VM Compute Engine peut s'exécuter en tant que compte de service, et ce compte peut recevoir les autorisations requises pour accéder aux ressources dont il a besoin. Dans ce cas, le compte de service constitue l'identité du service, tandis que les autorisations qui lui sont accordées déterminent les ressources auxquelles il peut accéder.

Un compte de service est identifié par son adresse e-mail, qui est unique à ce compte.

Types de comptes de service

Comptes de service gérés par l'utilisateur

Lorsque vous créez un projet Cloud avec la console Google Cloud, si l'API Compute Engine est activée pour ce projet, un compte de service Compute Engine est créé par défaut. Ce compte est identifiable par le schéma d'adresse e-mail suivant :

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Si votre projet comporte une application App Engine, le compte de service App Engine par défaut est d'office créé dans votre projet. Ce compte est identifiable par le schéma d'adresse e-mail suivant :

PROJECT_ID@appspot.gserviceaccount.com

Comptes de service gérés par Google

Outre les comptes de service gérés par l'utilisateur, des comptes de service supplémentaires peuvent apparaître dans la stratégie IAM de votre projet ou dans la console. Ces comptes de service sont créés et détenus par Google. Ils représentent différents services Google, et chacun se voit automatiquement attribuer des rôles IAM lui permettant d'accéder à votre projet Google Cloud.

Compte de service des API Google

Un exemple de compte de service géré par Google est le compte de service des API Google, identifiable par le schéma d'adresse e-mail suivant :

PROJECT_NUMBER@cloudservices.gserviceaccount.com

Ce compte de service est spécifiquement conçu pour exécuter des processus Google internes en votre nom. Il n'apparaît pas dans la section Comptes de service de la console. Par défaut, ce compte reçoit automatiquement le rôle d'éditeur de projet. Il apparaît dans la section IAM de la console. Ce compte de service n'est supprimé que lors de la suppression du projet.

Remarque : Les services Google s'appuient sur l'accès de ce compte à votre projet. Par conséquent, vous ne devez ni supprimer, ni modifier le rôle attribué à ce compte de service sur votre projet.

Présentation des rôles IAM

Lorsqu'une identité appelle une API Google Cloud, Google Cloud Identity and Access Management exige qu'elle dispose des autorisations appropriées pour accéder à la ressource. Vous pouvez accorder des autorisations en attribuant des rôles à un utilisateur, à un groupe ou à un compte de service.

Types de rôles

Il existe trois types de rôles dans Cloud IAM :

  • Les rôles primitifs qui comprennent les rôles "Propriétaire", "Éditeur" et "Lecteur" qui existaient avant la mise en place de Cloud IAM.
  • Les rôles prédéfinis, qui fournissent un accès précis à un service spécifique et sont gérés par Google Cloud.
  • Les rôles personnalisés, qui fournissent un accès précis en fonction d'une liste d'autorisations spécifiée par l'utilisateur.

Pour en savoir plus sur les rôles, consultez le guide Comprendre les rôles.

Tâche 1 : Créer et gérer des comptes de service

Lorsque vous créez un projet Cloud, Google Cloud crée automatiquement un compte de service Compute Engine et un compte de service App Engine associés à ce projet. Vous pouvez créer jusqu'à 98 comptes de service supplémentaires dans votre projet pour contrôler l'accès à vos ressources.

Créer un compte de service

La création d'un compte de service s'apparente à l'ajout d'un membre à un projet, à ceci près que le compte de service appartient à vos applications plutôt qu'à un utilisateur final particulier.

  • Pour créer un compte de service, exécutez la commande suivante dans Cloud Shell :
gcloud iam service-accounts create my-sa-123 --display-name "mon compte de service"

Le résultat de cette commande correspond au compte de service. Il se présente comme dans l'exemple ci-après :

Created service account [my-sa-123]

Attribuer des rôles aux comptes de service

Lorsque vous attribuez des rôles IAM, vous pouvez traiter un compte de service soit comme une ressource, soit comme une identité.

Votre application utilise un compte de service en tant qu'identité afin de s'authentifier auprès des services Google Cloud. Par exemple, si vous exécutez une machine virtuelle (VM) Compute Engine en tant que compte de service, vous pouvez attribuer le rôle d'éditeur à ce compte (l'identité) pour un projet donné (la ressource).

Dans le même temps, vous pouvez également avoir besoin de déterminer qui peut démarrer la VM. Pour cela, il vous suffit d'accorder à un utilisateur (l'identité) le rôle serviceAccountUser pour le compte de service (la ressource).

Attribuer des rôles à un compte de service pour des ressources spécifiques

En attribuant des rôles à un compte de service, vous l'autorisez à effectuer des actions spécifiques sur les ressources de votre projet Cloud Platform. Par exemple, vous pouvez attribuer le rôle storage.admin à un compte de service pour lui permettre de contrôler les objets et les buckets dans Cloud Storage.

  • Pour accorder des rôles au compte de service que vous venez de créer, exécutez la commande suivante dans Cloud Shell :
gcloud projects add-iam-policy-binding $DEVSHELL_PROJECT_ID \ --member serviceAccount:my-sa-123@$DEVSHELL_PROJECT_ID.iam.gserviceaccount.com --role roles/editor

Le résultat affiche la liste des rôles désormais accordés au compte de service :

bindings: - members: - user:email1@gmail.com role: roles/owner - members: - serviceAccount:our-project-123@appspot.gserviceaccount.com - serviceAccount:123456789012-compute@developer.gserviceaccount.com - serviceAccount:my-sa-123@my-project-123.iam.gserviceaccount.com - user:email3@gmail.com role: roles/editor - members: - user:email2@gmail.com role: roles/viewer etag: BwUm38GGAQk= version: 1

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer et gérer des comptes de service

Tâche 2 : Utiliser les bibliothèques clientes pour accéder à BigQuery à l'aide d'un compte de service

Dans cette section, vous allez interroger les ensembles de données publics BigQuery depuis une instance à l'aide d'un compte de service doté des rôles appropriés.

Créer un compte de service

Pour commencer, créez un compte de service à partir de la console.

  1. Accédez au menu de navigation > IAM et administration, sélectionnez Comptes de service, puis cliquez sur + Créer un compte de service.

  2. Renseignez les champs utiles à l'aide des informations suivantes :

  • Nom du compte de service : bigquery-qwiklab
  1. Cliquez ensuite sur Créer et continuer, puis ajoutez les rôles suivants :

    • BigQuery > Lecteur de données BigQuery

    • BigQuery > Utilisateur BigQuery

La console doit se présenter comme suit :

Page à onglets &quot;Créer un compte de service&quot;

  1. Cliquez sur Continuer, puis sur OK.

Créer une instance de VM

  1. Dans la console, accédez à Compute Engine > Instances de VM, puis cliquez sur Créer une instance.

  2. Créez votre VM à l'aide des informations suivantes :

Configuration Valeur
Nom bigquery-instance
Région
Zone
Série E2
Type de machine e2-medium
Disque de démarrage Debian GNU/Linux 11 (bullseye) x86/64
Compte de service bigquery-qwiklab
Niveaux d'accès Définir l'accès pour chaque API
BigQuery Activé
Remarque : Si le compte de service bigquery-qwiklab ne figure pas dans la liste déroulante, essayez de saisir son nom dans la section "Filtrer".
  1. Cliquez sur Créer.

Ajouter l'exemple de code à une instance Compute Engine

  1. Dans la console, accédez à Compute Engine > Instances de VM.
  2. Connectez-vous en SSH à l'instance bigquery-instance en cliquant sur le bouton SSH.
Remarque : Lorsque vous vous connectez à SSH, vous pouvez cliquer sur Se connecter sans Identity-Aware Proxy.

Dans la fenêtre SSH, installez les dépendances nécessaires en exécutant les commandes suivantes :

sudo apt-get update sudo apt-get install -y git python3-pip pip3 install --upgrade pip pip3 install google-cloud-bigquery pip3 install pyarrow pip3 install pandas pip3 install db-dtypes

Créez maintenant l'exemple de fichier Python :

echo " from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='YOUR_SERVICE_ACCOUNT') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project='{{{project_0.project_id | Your Project ID}}}', credentials=credentials) print(client.query(query).to_dataframe()) " > query.py

Ajoutez l'ID du projet dans le fichier query.py à l'aide de la commande suivante :

sed -i -e "s/{{{project_0.project_id | Your Project ID}}}/$(gcloud config get-value project)/g" query.py

Pour vérifier que la commande sed a bien ajouté l'ID du projet dans le fichier, exécutez la commande suivante :

cat query.py

Exemple de résultat (le vôtre peut être différent) :

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='YOUR_SERVICE_ACCOUNT') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project={{{ project_0.project_id }}}, credentials=credentials) print(client.query(query).to_dataframe())

Ajoutez l'adresse e-mail du compte de service dans le fichier query.py à l'aide de la commande suivante :

sed -i -e "s/YOUR_SERVICE_ACCOUNT/bigquery-qwiklab@$(gcloud config get-value project).iam.gserviceaccount.com/g" query.py

Pour vérifier que la commande sed a bien ajouté l'adresse e-mail du compte de service dans le fichier, exécutez la commande suivante :

cat query.py

Exemple de résultat (le vôtre peut être différent) :

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='bigquery-qwiklab@{{{ project_0.project_id }}}.iam.gserviceaccount.com') query = ''' SELECT year, COUNT(1) as num_babies FROM publicdata.samples.natality WHERE year > 2000 GROUP BY year ''' client = bigquery.Client( project={{{ project_0.project_id }}}, credentials=credentials) print(client.query(query).to_dataframe())

L'application utilise désormais les autorisations associées à ce compte de service. Exécutez la requête à l'aide de la commande Python suivante :

python3 query.py

La requête devrait renvoyer la sortie suivante (vos chiffres peuvent varier) :

Row year num_babies 0 2008 4255156 1 2006 4273225 2 2003 4096092 3 2004 4118907 4 2002 4027376 5 2005 4145619 6 2001 4031531 7 2007 4324008 Remarque : Les valeurs de vos lignes peuvent ne pas correspondre aux années indiquées dans la sortie ci-dessus. Assurez-vous toutefois que le nombre de bébés par an est identique.

Bravo ! Vous avez interrogé un ensemble de données public BigQuery à l'aide du compte de service bigquery-qwiklab.

Cliquez sur Vérifier ma progression pour valider l'objectif. Accéder à BigQuery à l'aide d'un compte de service

Félicitations !

Dans cet atelier, vous avez appris à utiliser des comptes de service.

Étapes suivantes et informations supplémentaires

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 17 juillet 2024

Dernier test de l'atelier : 17 juillet 2024

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible