arrow_back

Configurer, utiliser et auditer les comptes de service et les niveaux d'accès d'une VM

Accédez à plus de 700 ateliers et cours

Configurer, utiliser et auditer les comptes de service et les niveaux d'accès d'une VM

Atelier 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Accédez à plus de 700 ateliers et cours

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.

Objectifs

Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :

  • 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éparation

Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.

  1. Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.

  2. Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
    Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.

  3. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

  4. Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.

  5. Cliquez sur Ouvrir la console Google.

  6. Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
    Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.

  7. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.

Activer Google Cloud Shell

Google 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.

Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.

  1. Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

    Icône Cloud Shell encadrée

  2. Cliquez sur Continuer.

Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

ID de projet mis en évidence dans le terminal Cloud Shell

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.

  • Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list

Résultat :

Credentialed accounts: - @.com (active)

Exemple de résultat :

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project =

Exemple de résultat :

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

Que sont les comptes 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 être exécutée via un compte de service, et ce compte peut recevoir les autorisations requises pour accéder aux ressources dont il a besoin. Ainsi, 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 via la console 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 son adresse e-mail : 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 son adresse e-mail : 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 Cloud. 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.

Comptes 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 son adresse e-mail : 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 Cloud. 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 Cloud.

Ce compte de service n'est supprimé que lors de la suppression du projet. 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.

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

Dans cette tâche, vous allez créer et gérer des comptes de service.

Par défaut, vous pouvez créer jusqu'à 100 comptes de service gérés par l'utilisateur dans un projet. Si besoin, vous pouvez demander une augmentation de ce quota dans la console Cloud.

Remarque : Les comptes de service par défaut décrits sur cette page ne sont pas comptabilisés dans ce quota.

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. Elle se présente comme dans l'exemple ci-après.

Résultat :

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 Google Cloud. 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

Les rôles désormais accordés au compte de service s'affichent dans le résultat :

Résultat :

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 un compte de service

Comprendre les rôles

Lorsqu'une identité appelle une API Google Cloud, Cloud Identity and Access Management (Cloud IAM) 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 de base, autrement dit 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, consultez la documentation de référence sur les rôles IAM.

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

Dans cette tâche, 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

Vous allez commencer par créer un compte de service à l'aide de la console Cloud.

  1. Dans la console Cloud, accédez au menu de navigation et cliquez sur IAM et administration > Comptes de service.
  2. Cliquez sur Créer un compte de service.
  3. Nommez le compte de service bigquery-qwiklab.

Boîte de dialogue de configuration Créer un compte de service

  1. Cliquez sur Créer et continuer.
  2. Sélectionnez le rôle BigQuery > Lecteur de données BigQuery.
  3. Cliquez sur Ajouter un autre rôle.
  4. Sélectionnez le rôle BigQuery > Utilisateur BigQuery.

Créer un compte de service : accorder l'accès à l'aide de rôles (facultatif)

  1. Cliquez sur Continuer.

Votre console Cloud doit se présenter comme suit.

Étape 3 : accorder aux utilisateurs l'accès au compte de service

  1. Cliquez sur OK.

Créer une instance de VM

  1. Dans la console Cloud, accédez au menu de navigation et cliquez sur Compute Engine > Instances de VM, puis sur Créer une instance.
  2. Créez votre VM à l'aide des informations suivantes :

Configuration

Valeur

Nom

bigquery-instance

Région

us-central1(Iowa)

Zone

us-central1-a

Série

E2

Type de machine

e2-standard-2 (2 vCPU)

Disque de démarrage

Debian GNU/Linux 11 (bulleye)

Compte de service

bigquery-qwiklab

Niveaux d'accès

Autoriser l'accès complet à l'ensemble des API Cloud

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.

Les options qui ont été ajoutées lorsque vous avez sélectionné un disque de démarrage compatible avec les VM protégées vous sont ensuite présentées.

  1. Cliquez sur le lien Mise en réseau, disques, sécurité, gestion, location unique situé vers le bas de la page.

  2. Cliquez sur l'onglet Sécurité. Les options des VM protégées s'affichent en haut de l'onglet. Si vous ne sélectionnez pas de disque de démarrage doté de fonctionnalités de VM protégées, ces options ne s'affichent pas. Certaines de ces options sont sélectionnées par défaut.

  3. Cochez la case Activer le démarrage sécurisé.

Boîte de dialogue Sécurité : option Activer le démarrage sécurisé activée

Compute Engine n'active pas cette option par défaut, car les pilotes non signés et les autres logiciels de bas niveau peuvent être incompatibles. Malgré cela, nous vous recommandons d'activer le démarrage sécurisé si possible.

  1. Cliquez sur Créer.

Ajouter l'exemple de code à une instance Compute Engine

  1. Dans la console Cloud, accédez à Compute Engine > Instances de VM.
  2. Connectez-vous en SSH à l'instance bigquery-instance en cliquant sur le bouton SSH. Cliquez sur Se connecter.
  3. Dans la fenêtre SSH, installez les dépendances nécessaires en exécutant les commandes suivantes :
sudo apt-get update -y sudo apt-get install -y git python3-pip sudo pip3 install six==1.13.0 sudo pip3 install --upgrade pip sudo pip3 install --upgrade google-cloud-bigquery sudo pip3 install pandas
  1. Créez le fichier query.py à l'aide de la commande echo. Ce fichier, écrit en Python, vous permettra d'exécuter la requête.
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='YOUR_PROJECT_ID', credentials=credentials) print(client.query(query).to_dataframe()) " > query.py
  1. Ajoutez l'ID du projet dans le fichier query.py à l'aide de la commande suivante :
sed -i -e "s/YOUR_PROJECT_ID/$(gcloud config get-value project)/g" query.py
  1. 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 (la vôtre sera différente) :

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='qwiklabs-gcp-186de687ef87f911', credentials=credentials) print(client.query(query).to_dataframe())
  1. 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
  1. 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 (la vôtre sera différente) :

from google.auth import compute_engine from google.cloud import bigquery credentials = compute_engine.Credentials( service_account_email='bigquery-qwiklab@qwiklabs-gcp-186de687ef87f911.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='qwiklabs-gcp-186de687ef87f911', credentials=credentials) print(client.query(query).to_dataframe())

L'application va maintenant utiliser les autorisations associées à ce compte de service.

  1. Installez la bibliothèque pyarrow en exécutant la commande suivante :
sudo pip3 install pyarrow==16.1.0
  1. Installez la bibliothèque db-dtypes en exécutant cette commande :
sudo pip3 install db-dtypes
  1. Exécutez le fichier query.py à l'aide de la commande suivante :
python3 query.py

Le résultat devrait ressembler à l'exemple suivant.

Résultat :

year num_babies 0 2008 4255156 1 2002 4027376 2 2005 4145619 3 2006 4273225 4 2001 4031531 5 2007 4324008 6 2003 4096092 7 2004 4118907 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 soit identique.

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. Utiliser les bibliothèques clientes pour accéder à BigQuery depuis un compte de service

Félicitations !

Dans cet atelier, vous avez appris à effectuer les tâches suivantes :

  • 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

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Copyright 2020 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.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

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

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.