arrow_back

Configurer des autorisations IAM avec gcloud

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

Configurer des autorisations IAM avec gcloud

Atelier 1 heure 30 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

GSP647

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Cet atelier porte sur trois aspects courants que vous devez maîtriser concernant IAM et gcloud :

  • Configuration de l'environnement gcloud
  • Utilisation de plusieurs configurations gcloud
  • Utilisation de comptes de service

Dans cet atelier, vous allez activer et configurer des fonctionnalités Cloud Identity and Access Management (IAM) à l'aide de la gcloud CLI.

Points abordés

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

  • Examiner les concepts d'IAM et utiliser le client gcloud
  • Créer plusieurs configurations IAM et passer de l'une à l'autre
  • Identifier et attribuer les autorisations IAM appropriées
  • Créer et utiliser un compte de service

Lancement de l'environnement

Vous commencez avec deux comptes utilisateur et deux projets :

  • user1 est le propriétaire des deux projets.
  • user2 a un rôle de lecteur sur le premier projet uniquement.

Une machine virtuelle (VM) Linux est exécutée dans le premier projet.

Illustration du lancement de l'environnement

Qu'est-ce qu'IAM ?

Google Cloud propose Cloud Identity and Access Management (IAM), qui vous permet de gérer le contrôle des accès en définissant qui (identité) dispose de quel type d'accès (rôle) pour quelle ressource.

Dans IAM, l'autorisation d'accéder à une ressource n'est pas accordée directement à l'utilisateur final. Au lieu de cela, les autorisations sont regroupées dans des rôles, et les rôles sont attribués à des comptes principaux authentifiés. Notez qu'auparavant, les comptes principaux étaient souvent appelés "membres". Certaines API utilisent toujours ce terme.

Identités

Dans Cloud IAM, vous accordez des accès à des comptes principaux. Il existe plusieurs types de comptes principaux :

  • Compte Google
  • Compte de service
  • Groupe Google
  • Compte Google Workspace
  • Domaine Cloud Identity
  • Tous les utilisateurs authentifiés
  • Tous les utilisateurs

Pour en savoir plus sur ces types d'identités, consultez le guide sur les concepts liés à l'identité.

Dans cet atelier, vous allez utiliser des comptes Google, des comptes de service et des groupes faisant partie d'un domaine Cloud Identity.

Rôles

Un rôle est un ensemble d'autorisations. Il n'est pas possible d'attribuer une autorisation à l'utilisateur directement. À la place, vous lui accordez un rôle. Ce faisant, vous lui donnez toutes les autorisations associées à ce rôle.

Pour en savoir plus au sujet des rôles, consultez le guide sur les rôles.

Qu'est-ce que gcloud ?

La gcloud CLI fait partie de Cloud SDK. Vous devez télécharger le SDK sur votre système, l'installer et l'initialiser pour pouvoir utiliser l'outil de ligne de commande gcloud. Cet outil permet d'effectuer de nombreuses tâches courantes sur la plate-forme, en ligne de commande ou via des scripts et autres solutions d'automatisation.

Pour en savoir plus sur gcloud, consultez le guide de présentation de la gcloud CLI.

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. Remarque : Pour cet atelier, connectez-vous en tant que Username 1.

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

Tâche 1 : Configurer l'environnement gcloud

Dans cet atelier, vous disposez déjà d'une instance Compute Engine, appelée centos-clean, qui simule un environnement dans lequel gcloud n'est pas installé. Vous vous connectez à cette instance à l'aide de la console Google Cloud.

  1. Pour ouvrir la liste des instances de calcul, cliquez sur le menu de navigation > Compute Engine > Instances de VM.

  2. Sur la ligne mentionnant l'instance de calcul nommée centos-clean, cliquez sur SSH.

Remarque : Les instances Compute Engine peuvent être de type Windows ou Linux. Dans cet atelier, vous allez utiliser le type d'instance Linux. Vous pouvez facilement vous connecter aux instances Linux à l'aide du client Secure Shell (SSH) via le navigateur Web.

Vous êtes automatiquement connecté à l'instance. Google Cloud gère et protège vos clés d'authentification, et ne les fournit qu'aux utilisateurs auxquels vous autorisez l'accès.
  1. Premier test : vérifiez que gcloud est bien installé en contrôlant la version. Dans la session SSH, exécutez la commande suivante :
gcloud --version

Créer une instance et modifier la zone par défaut

Après avoir vérifié que l'outil de ligne de commande gcloud est installé, apportez des modifications en créant une instance de calcul.

  1. Commencez par vous authentifier dans gcloud. Dans la session SSH, exécutez la commande suivante :
gcloud auth login

Appuyez sur ENTRÉE lorsque l'invite Do you want to continue (Y/n)? (Voulez-vous continuer (Oui/Non) ?) s'affiche.

  1. Ouvrez le lien affiché dans un nouvel onglet.

  2. Cliquez sur votre nom d'utilisateur actif (), puis sur Autoriser.

  3. Lorsque l'invite Saisissez le code de validation suivant dans la gcloud CLI sur la machine depuis laquelle vous souhaitez vous connecter s'affiche, cliquez sur le bouton "Copier", puis revenez à la session SSH et collez le code dans l'invite Enter authorization code: (Saisissez le code d'autorisation).

  4. Dans la session SSH, définissez la région et la zone :

gcloud config set compute/region {{{project_0.default_region_1 | "Region1"}}} gcloud config set compute/zone {{{project_0.default_zone_1 | "Zone1"}}}
  1. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances create lab-1 --zone {{{project_0.default_zone_1 | "Zone1"}}} --machine-type=e2-standard-2

Si tout est correctement configuré, la commande crée une instance.

Mais quelle est sa taille ? Où se trouve-t-elle ? Quelle image est utilisée ?

Le service utilise un certain nombre de valeurs par défaut. Vous pouvez contrôler certaines d'entre elles dans la configuration gcloud. Par exemple, le paramètre de zone contrôle l'emplacement de l'instance.

Créer une instance nommée lab-1 dans le projet 1
  1. Examinez votre configuration gcloud actuelle. Dans la session SSH, exécutez la commande suivante :
gcloud config list

Vous voyez désormais une section compute, une section core et une configuration active (active configuration). Tous ces éléments sont modifiables, mais vous ne modifierez que la zone dans cet atelier. Examinez la zone dans laquelle votre VM a été créée.

  1. Listez maintenant toutes les zones disponibles en exécutant la commande suivante dans la session SSH :
gcloud compute zones list
  1. Identifiez une autre zone dépendant de la même région que votre instance. Par exemple, si votre zone actuelle est us-west2-a, vous pouvez sélectionner us-west2-b.

  2. Remplacez votre zone actuelle par une autre zone de la même région. Dans la session SSH, exécutez la commande suivante en remplaçant ZONE par la zone que vous avez sélectionnée :

gcloud config set compute/zone ZONE
  1. Vérifiez que la zone a bien été modifiée. Dans la session SSH, exécutez la commande suivante :
gcloud config list

Vous pouvez constater que la zone indiquée reflète la modification que vous avez apportée.

Vous pouvez modifier d'autres paramètres à l'aide de la commande gcloud config set. Ces modifications sont définitives et sont écrites dans votre répertoire d'accueil.

La configuration par défaut est stockée dans ~/.config/gcloud/configurations/config_default.

Si vous souhaitez définir une zone autre que celle par défaut lors de la création d'une instance, vous pouvez utiliser l'option "--zone". Exemple : gcloud compute instances create lab-1 --zone us-central1-f

Modifier la zone par défaut
  1. Vérifiez que la zone a été écrite dans le fichier de configuration. Dans la session SSH, exécutez la commande suivante :
cat ~/.config/gcloud/configurations/config_default

Vous pouvez constater que la configuration est stockée sous forme de texte, et peut être sauvegardée ou copiée.

Tâche 2 : Créer plusieurs configurations IAM et passer de l'une à l'autre

Vous venez de configurer un compte. Si vous devez travailler avec différentes équipes ou accéder à plusieurs comptes, vous pouvez également gérer ces aspects avec gcloud config.

Dans la tâche suivante, vous allez apprendre à créer une deuxième configuration, puis à passer de l'une à l'autre.

Créer une nouvelle configuration IAM

Dans cet atelier, vous disposez d'un deuxième compte Google avec lequel vous pouvez vous connecter. Ce compte dispose d'un accès en lecture seule (lecteur) au premier projet. Vous allez créer une configuration pour ce compte utilisateur.

  1. Lancez une nouvelle configuration gcloud pour le deuxième compte utilisateur. Dans la session SSH, exécutez la commande suivante :
gcloud init --no-launch-browser
  1. Sélectionnez l'option 2, Create a new configuration (Créer une configuration).

  2. Pour configuration name (nom de la configuration) : saisissez user2.

  3. Pour Log in with a new account (Se connecter avec un nouveau compte) : sélectionnez l'option 3, "You're logging in with the other provided user name" (Vous vous connectez avec l'autre nom d'utilisateur fourni).

  4. Appuyez sur ENTRÉE lorsque l'invite Do you want to continue (Y/n)? (Voulez-vous continuer (Oui/Non) ?) s'affiche.

  5. Ouvrez le lien affiché dans un nouvel onglet.

  6. Cliquez sur Utiliser un autre compte.

  7. Copiez le deuxième compte utilisateur () et collez-le dans l'invite Adresse e-mail ou numéro de téléphone.

  8. Copiez le mot de passe avec lequel vous avez commencé l'atelier et collez-le dans l'invite Saisissez votre mot de passe.

  9. Cliquez sur J'ai compris.

  10. Cliquez sur Autoriser.

Vous acceptez que Cloud SDK dispose des mêmes droits d'accès que votre compte Google.

  1. Lorsque l'invite Saisissez le code de validation suivant dans la gcloud CLI sur la machine depuis laquelle vous souhaitez vous connecter s'affiche, cliquez sur le bouton "Copier", puis revenez à la session SSH et collez le code dans l'invite Enter authorization code: (Saisissez le code d'autorisation).

  2. Pour le champ Pick cloud project to use (Sélectionnez le projet Cloud à utiliser), localisez votre projet actuel (), puis saisissez le nombre correspondant au projet.

Une fois l'initialisation terminée, vous constatez que la zone et la région sont définies automatiquement.

Vérifier que la configuration gcloud de user2 a bien été créée

Tester le nouveau compte

Ce nouveau compte dispose d'un accès en lecture seule au projet. Vous pouvez donc vérifier que vous êtes bien en train de l'utiliser en essayant d'afficher puis de créer des ressources.

  1. Vérifiez que vous pouvez afficher les détails dans le premier projet. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances list

Le deuxième compte utilisateur dispose d'un accès en lecture. Les instances centos-clean et lab-1 doivent donc être recensées.

  1. Étant donné que vous ne disposez que du rôle de base "Lecteur", vérifiez qu'il vous est bien impossible de créer une instance dans le premier projet. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances create lab-2 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2

Comme le deuxième compte utilisateur ne dispose que d'un accès en lecture, il n'est pas autorisé à créer d'instance. Par conséquent, cette commande échoue. Il peut s'écouler un certain temps avant que le message d'échec ne soit renvoyé.

  1. Repassez à la configuration du premier utilisateur (par défaut). Dans la session SSH, exécutez la commande suivante :
gcloud config configurations activate default

Vous utilisez à nouveau les identifiants de votre compte utilisateur d'origine. Par la suite, vous passerez d'un compte à l'autre à mesure que vous en découvrirez davantage sur les rôles et les autorisations.

Tâche 3 : Identifier et attribuer les autorisations IAM appropriées

Deux comptes utilisateur vous ont été fournis pour ce projet. Le premier compte utilisateur dispose d'un contrôle total sur les deux projets et peut être considéré comme le compte administrateur. Le deuxième compte utilisateur dispose d'un accès en lecture seule pour les deux projets. Considérons-le comme un compte utilisateur DevOps. Cette identité représente un utilisateur typique de niveau DevOps.

Vous allez maintenant utiliser gcloud pour configurer l'accès de l'utilisateur DevOps à un projet, en créant un rôle personnalisé lui permettant de créer des buckets et des instances dans le projet.

Examiner les rôles et les autorisations

  1. Pour afficher tous les rôles, exécutez la commande suivante dans la session SSH :
gcloud iam roles list | grep "name:"

La liste de rôles s'affiche. L'ajout de grep "name:" à la commande réduit la quantité de données renvoyées aux seuls noms des rôles.

Examinez l'un de ces rôles pour voir les autorisations qui lui sont attribuées. Pour afficher les autorisations, exécutez gcloud iam roles describe. Jetez un œil au rôle simple roles/compute.instanceAdmin.

  1. Examinez le rôle prédéfini compute.instanceAdmin. Dans la session SSH, exécutez la commande suivante :
gcloud iam roles describe roles/compute.instanceAdmin

Vous pouvez constater que le rôle roles/compute.instanceAdmin possède beaucoup d'autorisations, mais celles-ci constituent le minimum nécessaire dont vous aurez besoin ultérieurement :

  • compute.instances.create
  • compute.instances.delete
  • compute.instances.start
  • compute.instances.stop
  • compute.instances.update
  • compute.disks.create
  • compute.subnetworks.use
  • compute.subnetworks.useExternalIp
  • compute.instances.setMetadata
  • compute.instances.setserviceAccount

Pour passer en revue la liste complète des rôles et des autorisations qu'ils comprennent, consultez le guide de référence sur les autorisations IAM.

Accorder au deuxième compte utilisateur l'accès au deuxième projet

Maintenant que vous savez que les rôles contiennent des autorisations, comment en attribuer un (et donc toutes les autorisations associées) à un compte utilisateur ?

Il existe deux façons d'attribuer un rôle :

  • À un utilisateur et à une organisation
  • À un utilisateur et à un projet

Vous allez attribuer le rôle de base "Lecteur" au deuxième compte utilisateur sur le deuxième projet.

Vérifiez que le deuxième compte utilisateur n'a pas accès au deuxième projet.

  1. Passez à la configuration gcloud du deuxième compte utilisateur (user2). Dans la session SSH, exécutez la commande suivante :
gcloud config configurations activate user2

Vous utilisez maintenant à nouveau user2.

  1. Définissez PROJECTID2 sur le deuxième projet. Dans la session SSH, exécutez la commande suivante :
echo "export PROJECTID2={{{project_1.project_id | "PROJECT_ID"}}}" >> ~/.bashrc . ~/.bashrc gcloud config set project $PROJECTID2 Remarque : Cette commande ajoute le fichier bashrc. Faites donc très attention.

Vous recevez un avertissement : WARNING: You do not appear to have access to project [your 2nd project id] or it does not exist (AVERTISSEMENT : Vous ne semblez pas avoir accès au projet [ID du deuxième projet], ou celui-ci n'existe pas).

  1. Lorsque l'invite Do you want to continue (Y/N)? (Voulez-vous continuer (OUI/Non) ?) apparaît, saisissez N et appuyez sur ENTRÉE.

Le deuxième compte utilisateur n'a donc pas accès au projet PROJECTID2. Vous corrigerez cela dans la section suivante.

Attribuer le rôle de lecteur au deuxième compte utilisateur sur le deuxième projet

  1. Revenez à la configuration gcloud par défaut, qui est autorisée à accorder l'accès au deuxième compte utilisateur. Dans la session SSH, exécutez la commande suivante :
gcloud config configurations activate default
  1. Installez jq :
sudo yum -y install epel-release sudo yum -y install jq

Définissez ensuite la valeur de USERID2 sur le nom du deuxième compte utilisateur, puis attribuez-lui le rôle de lecteur sur le deuxième projet.

  1. Dans la session SSH, exécutez la commande suivante :
echo "export USERID2={{{user_1.username | "Username2"}}}" >> ~/.bashrc . ~/.bashrc gcloud projects add-iam-policy-binding $PROJECTID2 --member user:$USERID2 --role=roles/viewer

Une fois la commande exécutée, le texte ressemble à ceci (vous devrez peut-être faire défiler la page vers le haut) :

Updated IAM policy for project [{{{project_1.project_id | "PROJECT_ID"}}}]. bindings: ... - members: - serviceAccount:{{{project_1.project_id | "PROJECT_ID"}}}@{{{project_1.project_id | "PROJECT_ID"}}}.iam.gserviceaccount.com role: roles/storage.admin - members: - user:{{{user_0.username | "Username1"}}} - user:{{{user_1.username | "Username2"}}} role: roles/viewer Limiter le deuxième compte utilisateur au rôle roles/viewer dans le projet 2

Tâche 4 : Vérifier que user2 dispose d'un accès

  1. Passez à la configuration gcloud de user2. Dans la session SSH, exécutez la commande suivante :
gcloud config configurations activate user2
  1. Modifiez la configuration de user2 afin de l'associer au deuxième projet. Dans la session SSH, exécutez la commande suivante :
gcloud config set project $PROJECTID2

Vous ne devriez pas recevoir de message d'erreur cette fois.

  1. Vérifiez que vous disposez d'un accès en lecture. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances list

Vous ne voyez maintenant aucune instance dans ce projet.

  1. Essayez de créer une instance dans le deuxième projet en tant que user2. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances create lab-2 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2

Cette commande échoue, car user2 ne dispose que d'un accès en lecture au projet.

  1. Passez à la configuration gcloud par défaut. Dans la session SSH, exécutez la commande suivante :
gcloud config configurations activate default

Vous utilisez à nouveau les identifiants de votre compte utilisateur d'origine.

Créer un rôle avec des autorisations

Vous allez ensuite créer le rôle disposant de l'ensemble des autorisations requises par l'équipe DevOps.

  • Créez un rôle personnalisé appelé devops et disposant des autorisations nécessaires pour créer une instance. Dans la session SSH, exécutez la commande suivante :
gcloud iam roles create devops --project $PROJECTID2 --permissions "compute.instances.create,compute.instances.delete,compute.instances.start,compute.instances.stop,compute.instances.update,compute.disks.create,compute.subnetworks.use,compute.subnetworks.useExternalIp,compute.instances.setMetadata,compute.instances.setServiceAccount"

Cette commande crée le rôle personnalisé devops qui est autorisé à créer et à gérer des instances dans le projet.

Le nom complet du rôle est répertorié. Comme celui-ci se trouve dans le projet, le chemin d'accès est au format projects/PROJECT/roles/ROLENAME.

Créer un rôle avec des autorisations pour l'équipe DevOps

Associer le rôle au deuxième compte sur les deux projets

Maintenant que vous avez créé le rôle, vous devez associer l'utilisateur et le rôle au projet. Exécutez la commande gcloud projects add-iam-policy-binding pour effectuer cette liaison. Pour faciliter l'exécution de cette commande, définissez d'abord des variables d'environnement : l'une pour l'ID du projet, l'autre pour le compte utilisateur.

  1. Associez le rôle iam.serviceAccountUser au deuxième compte utilisateur pour le deuxième projet. Dans la session SSH, exécutez la commande suivante :
gcloud projects add-iam-policy-binding $PROJECTID2 --member user:$USERID2 --role=roles/iam.serviceAccountUser

Vous devez disposer des autorisations nécessaires pour créer une instance avec un compte de service rattaché. Le rôle prédéfini iam.serviceAccountUser dispose de ces autorisations. Vous allez donc l'utiliser.

Vérifier que user2 est associé au projet 2 et au rôle roles/iam.serviceAccountUser
  1. Associez le rôle personnalisé devops au deuxième compte utilisateur sur le deuxième projet. Le deuxième compte utilisateur se trouve à gauche de cette page. Assurez-vous d'avoir défini USERID sur le deuxième compte utilisateur.

Dans la session SSH, exécutez la commande suivante :

gcloud projects add-iam-policy-binding $PROJECTID2 --member user:$USERID2 --role=projects/$PROJECTID2/roles/devops

Une fois la commande exécutée, le texte ressemble à ceci (vous devrez peut-être faire défiler la page vers le haut) :

Updated IAM policy for project [{{{project_1.project_id | "PROJECT_ID"}}}]. bindings: - members: - user:{{{user_1.username | "Username2"}}}@qwiklabs.net role: projects/{{{project_1.project_id | "PROJECT_ID"}}}/roles/devops Associer Username 2 au rôle DevOps

Tester les autorisations que vous venez d'attribuer

  1. Passez à la configuration gcloud de user2. Dans la session SSH, exécutez la commande suivante :
gcloud config configurations activate user2

Vous utilisez maintenant à nouveau user2.

  1. Essayez de créer une instance nommée lab-2. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances create lab-2 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2

Le compte user2 peut désormais créer des instances.

Créer une instance nommée lab-2 dans le projet 2
  1. Vérifiez que l'instance existe. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances list

Votre environnement

Après ces dernières modifications, votre environnement ressemble à ceci :

Illustration de la progression dans l'atelier

Tâche 5 : Utiliser un compte de service

Vous avez appris à vous authentifier et à utiliser gcloud pour accéder aux services Google Cloud avec des rôles. Vous allez maintenant découvrir une approche typique.

Vous disposez d'une application qui lit et écrit des données dans des buckets Cloud Storage à l'aide d'interfaces de programmation d'applications (API). Vous ne voulez pas avoir à vous authentifier à chaque fois que vous lancez un nouveau serveur. Non seulement ce serait pénible, mais cela va à l'encontre des principes d'utilisation du cloud. Vous utilisez donc des 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.

Pour en savoir plus sur les comptes de service, consultez le guide sur les comptes de service.

Vous allez maintenant créer un compte de service, l'utiliser avec une instance de calcul, puis vérifier qu'il autorise l'accès dont vous avez besoin.

Créer un compte de service

  1. Passez à la configuration gcloud par défaut. Le compte user2 ne dispose pas des autorisations nécessaires pour créer et configurer des comptes de service. Dans la session SSH, exécutez la commande suivante :
gcloud config configurations activate default
  1. Définissez le projet sur PROJECTID2 dans votre configuration. Dans la session SSH, exécutez la commande suivante :
gcloud config set project $PROJECTID2

Assurez-vous de cibler le bon projet.

  1. Créez le compte de service. Dans la session SSH, exécutez la commande suivante :
gcloud iam service-accounts create devops --display-name devops Vérifier le compte de service DevOps créé
  1. Récupérez l'adresse e-mail du compte de service. Dans la session SSH, exécutez la commande suivante :
gcloud iam service-accounts list --filter "displayName=devops" Remarque : Le filtre permet de n'afficher que la ligne qui vous intéresse. Notez que l'adresse e-mail contient le nom du rôle et l'ID du projet.
  1. Placez l'adresse e-mail dans une variable locale appelée SA. Dans la session SSH, exécutez la commande suivante :
SA=$(gcloud iam service-accounts list --format="value(email)" --filter "displayName=devops")

Cette commande définit la variable locale SA sur l'adresse e-mail du compte de service. Plutôt utile, n'est-ce pas ?

  1. Attribuez le rôle iam.serviceAccountUser au compte de service. Dans la session SSH, exécutez la commande suivante :
gcloud projects add-iam-policy-binding $PROJECTID2 --member serviceAccount:$SA --role=roles/iam.serviceAccountUser

Ce rôle permet au compte de service d'attribuer un compte de service à une instance de calcul.

Vérifier que le compte de service DevOps est associé au projet 2 et au rôle roles/iam.serviceAccountUser

Tâche 6 : Utiliser le compte de service avec une instance de calcul

  1. Attribuez le rôle compute.instanceAdmin au compte de service. Dans la session SSH, exécutez la commande suivante :
gcloud projects add-iam-policy-binding $PROJECTID2 --member serviceAccount:$SA --role=roles/compute.instanceAdmin

Ce rôle permet au compte de service de gérer les instances de calcul.

Vérifier que le compte de service DevOps est associé au projet 2 et au rôle roles/compute.instanceAdmin
  1. Créez une instance et associez-la au compte de service DevOps. Vous devez également spécifier un niveau d'accès qui définit les appels d'API que l'instance peut effectuer. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances create lab-3 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2 --service-account $SA --scopes "https://www.googleapis.com/auth/compute"

Les niveaux d'accès représentent l'ancienne méthode de spécification des autorisations associées à votre instance. Ils ne constituent pas un mécanisme de sécurité. À la place, ils définissent les champs d'application OAuth par défaut utilisés dans les requêtes de l'outil gcloud ou des bibliothèques clientes. Notez qu'ils n'ont aucun effet lors de l'exécution de requêtes non authentifiées via OAuth (gRPC ou API SignBlob, par exemple).

Vous devez définir des niveaux d'accès lorsque vous configurez une instance pour qu'elle s'exécute via un compte de service.

Il est recommandé de définir le niveau d'accès "cloud-platform" complet pour l'instance, puis de restreindre de manière sécurisée l'accès aux API pour le compte de service à l'aide de rôles IAM.

Les niveaux d'accès s'appliquent par instance. Les niveaux d'accès définis lors de la création d'une instance sont exploitables uniquement pendant la durée de vie de cette instance.

Les niveaux d'accès n'ont un effet que si vous avez activé l'API associée sur le projet auquel appartient le compte de service. Par exemple, le fait d'accorder un niveau d'accès à Cloud Storage sur une instance de machine virtuelle ne permet à l'instance d'appeler l'API Cloud Storage que si vous avez aussi activé l'API Cloud Storage sur le projet.

Vérifier que lab-3 est associé au compte de service

Tâche 7 : Tester le compte de service

  1. Connectez-vous à l'instance que vous venez de créer à l'aide de gcloud compute ssh. Dans la session SSH, exécutez la commande suivante :
gcloud compute ssh lab-3 --zone {{{project_1.default_zone_1 | "Zone2"}}}

Lorsque vous y êtes invité, appuyez sur ENTRÉE pour continuer.

Appuyez deux fois sur ENTRÉE pour passer l'étape de création d'un mot de passe.

  1. L'image par défaut utilisée contient déjà une configuration gcloud. Dans la session SSH, exécutez la commande suivante :
gcloud config list

La configuration est désormais associée au compte de service.

  1. Créez une instance. Cela permet de vérifier que vous avez obtenu les autorisations nécessaires via le compte de service :
gcloud compute instances create lab-4 --zone {{{project_1.default_zone_1 | "Zone2"}}} --machine-type=e2-standard-2

Vous pouvez appuyer sur ENTRÉE pour accepter la zone proposée par défaut pour cette VM.

  1. Vérifiez que les rôles associés fonctionnent. Dans la session SSH, exécutez la commande suivante :
gcloud compute instances list

Comme le compte de service dispose des autorisations nécessaires, vous pouvez voir les instances recensées.

Votre environnement ressemble maintenant à ceci

Illustration de l'environnement final de l'atelier

Félicitations !

Vous avez réalisé les tâches suivantes à l'aide de l'outil gcloud de Cloud SDK :

  • Installer et configurer le client gcloud
  • Créer plusieurs configurations IAM et passer de l'une à l'autre
  • Identifier et attribuer les autorisations IAM appropriées
  • Créer et utiliser un compte 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 : 10 avril 2024

Dernier test de l'atelier : 10 avril 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.