Points de contrôle
Creating and Managing Service Accounts
/ 30
Access BigQuery from a Service Account
/ 70
Comptes de services et rôles : principes de base
GSP199
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) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Démarrer l'atelier et se connecter à la console Google Cloud
-
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
-
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. -
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.
-
Cliquez sur Suivant.
-
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.
-
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. -
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.
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.
- Cliquez sur 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 :
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.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
-
Cliquez sur Autoriser.
-
Vous devez à présent obtenir le résultat suivant :
Résultat :
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
Résultat :
Exemple de résultat :
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 :
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 :
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 :
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 :
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.
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 :
Le résultat de cette commande correspond au compte de service. Il se présente comme dans l'exemple ci-après :
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 :
Le résultat affiche la liste des rôles désormais accordés au compte de service :
Cliquez sur Vérifier ma progression pour valider l'objectif.
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.
-
Accédez au menu de navigation > IAM et administration, sélectionnez Comptes de service, puis cliquez sur + Créer un compte de service.
-
Renseignez les champs utiles à l'aide des informations suivantes :
- Nom du compte de service : bigquery-qwiklab
-
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 :
- Cliquez sur Continuer, puis sur OK.
Créer une instance de VM
-
Dans la console, accédez à Compute Engine > Instances de VM, puis cliquez sur Créer une instance.
-
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é |
bigquery-qwiklab
ne figure pas dans la liste déroulante, essayez de saisir son nom dans la section "Filtrer".- Cliquez sur Créer.
Ajouter l'exemple de code à une instance Compute Engine
- Dans la console, accédez à Compute Engine > Instances de VM.
- Connectez-vous en SSH à l'instance
bigquery-instance
en cliquant sur le bouton SSH.
Dans la fenêtre SSH, installez les dépendances nécessaires en exécutant les commandes suivantes :
Créez maintenant l'exemple de fichier Python :
Ajoutez l'ID du projet dans le fichier query.py
à l'aide de la commande suivante :
Pour vérifier que la commande sed
a bien ajouté l'ID du projet dans le fichier, exécutez la commande suivante :
Exemple de résultat (le vôtre peut être différent) :
Ajoutez l'adresse e-mail du compte de service dans le fichier query.py
à l'aide de la commande suivante :
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 :
Exemple de résultat (le vôtre peut être différent) :
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 :
La requête devrait renvoyer la sortie suivante (vos chiffres peuvent varier) :
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.
Félicitations !
Dans cet atelier, vous avez appris à utiliser des comptes de service.
Étapes suivantes et informations supplémentaires
- Pour en savoir plus sur la création et la gestion des comptes de service, consultez le guide Créer et gérer des comptes de service.
- Découvrez les ateliers suivants :
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.