Modèles et pratiques de gestion de l'authentification et des accès sur Google Cloud

Last reviewed 2022-09-27 UTC

Il existe un certain nombre de produits et services Google Cloud qui peuvent vous aider à développer une approche de gestion de l'authentification et des accès pour les applications et les charges de travail exécutées sur Google Cloud. Ce document est destiné aux administrateurs de sécurité, aux responsables des opérations et aux architectes d'entreprise qui travaillent au sein d'équipes de clients et qui souhaitent en savoir plus sur ces outils et commandes, et sur leur utilisation.

Ce document suppose que vous disposez des éléments suivants :

  • Un projet Google Cloud.
  • Un compte utilisateur disposant d'un accès administrateur pour gérer les groupes et les utilisateurs Cloud Identity. Vous avez besoin de cet accès pour exécuter les exemples de procédures présentés dans ce document.
  • Un compte utilisateur sans accès administrateur pour gérer les groupes et les utilisateurs Cloud Identity. Vous avez besoin de ce compte pour tester certains des contrôles que vous avez définis dans les exemples de procédures présentés dans ce document.

    Si vous n'avez pas encore accès à un projet Google Cloud et un accès administrateur à Cloud Identity, consultez les pages Créer un projet Google Cloud et Configurer Cloud Identity.

Découvrir les comptes et les autorisations non utilisés

Il est recommandé de supprimer les comptes utilisateur lorsqu'ils ne sont plus nécessaires, car les comptes utilisateur et les comptes de service non utilisés (orphelins) peuvent présenter un risque pour la sécurité. Afin de vous aider à comprendre et réduire les risques pour votre entreprise, vous pouvez utiliser Google Cloud Policy Intelligence comme suit :

  • Aider les administrateurs de votre entreprise à découvrir des comptes et des autorisations qui ne sont plus utilisés, pour des raisons liées au fait qu'un employé a par exemple quitté l'entreprise ou modifié les rôles.
  • Aider à identifier les comptes de service qui ont été abandonnés une fois les tâches terminées.

Afficher et appliquer les recommandations IAM

L'outil de recommandation IAM fait partie de la suite d'outils et de services Policy Intelligence. Grâce au machine learning (ML), cet outil formule des recommandations sur le contrôle d'accès intelligent pour vous aider à identifier les comptes qui n'ont plus besoin d'accéder aux ressources Google Cloud. Vous pouvez ensuite examiner les recommandations et décider de les appliquer ou non. L'outil de recommandation IAM vous aide également à mettre en œuvre le principe du moindre privilège pour tous les membres de votre organisation. En plus de proposer des recommandations, le service de recommandation utilise le ML pour fournir des insights détaillés. Les insights sont des observations qui mettent en évidence des traits caractéristiques concernant l'utilisation des ressources. Par exemple, vous pouvez grâce à eux obtenir des informations supplémentaires sur l'utilisation des autorisations dans votre projet, identifier les autorisations inutilisées et qui ne sont plus nécessaires, et identifier les comptes de service non utilisés.

Il est possible d'afficher et d'appliquer les recommandations IAM dans Google Cloud Console à l'échelle de l'entreprise. Dans l'exemple de procédure suivant, vous allez utiliser BigQuery pour examiner et redimensionner les autorisations d'accès au sein de votre organisation. Pour configurer l'intégration BigQuery, vous devez configurer une exportation de recommandations émises par l'outil de recommandation IAM vers un ensemble de données BigQuery. Vous pouvez ensuite interroger et examiner ces données à l'aide d'outils de visualisation tels que Looker Studio et Looker.

Implémentation

  1. Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

  2. BigQuery est automatiquement activé dans les nouveaux projets. Pour activer BigQuery dans un projet préexistant, activez l'API BigQuery.

    Activer l'API

  3. Configurez le service de transfert de données BigQuery pour extraire les données de l'outil de recommandation IAM Pour en savoir plus, consultez la page Exporter des recommandations vers BigQuery.

  4. Accédez à la page BigQuery.

    Accéder à BigQuery

  5. Copiez et collez la requête suivante dans le champ Éditeur.

    SELECT
       recommendation_details
    FROM PROJECT_ID.DATASET.TABLE_NAME
    WHERE recommender = "google.iam.policy.Recommender"
    AND recommender_subtype = "REMOVE_ROLE"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet Google Cloud que vous utilisez pour exécuter cet exemple.
    • DATASET : nom de l'ensemble de données que vous avez sélectionné lors de la configuration de la tâche du service de transfert de données BigQuery.
    • TABLE_NAME : nom de la table créée par la tâche du service de transfert de données BigQuery.

    Exécutez cette requête pour identifier le sous-type recommender_subtype des recommandations de l'outil de recommandation IAMREMOVE_ROLE.

  6. Cliquez sur Run (Exécuter). Le résultat de la requête vous permet d'identifier les rôles non utilisés et de redimensionner les liaisons de rôles IAM.

    Vous pouvez enregistrer les résultats de requête dans Sheets. Pour en savoir plus, consultez la page Enregistrer des résultats de requête dans Sheets.

Donner aux utilisateurs la possibilité de demander l'accès aux ressources

Les administrateurs d'entreprise ont la possibilité de laisser les utilisateurs demander l'accès aux ressources. En règle générale, ces demandes passent par un processus d'approbation dans lequel un approbateur désigné ou un groupe d'approbateurs doit approuver la demande pour que l'accès soit accordé. Google Groupes vous permet d'appliquer une règle d'accès à un ensemble d'utilisateurs, ce qui vous permet de suivre les bonnes pratiques de gestion des stratégies d'accès aux ressources basées sur l'appartenance à un groupe. Cette approche maintient des stratégies pertinentes au fur et à mesure que des événements de changements d'effectifs se produisent lors de modifications d'appartenance aux groupes.

Vous pouvez accorder et modifier les contrôles d'accès pour tout un groupe avec Google Groupes, au lieu d'octroyer ou de modifier les contrôles d'accès un à un pour des utilisateurs ou des comptes de service. Vous pouvez aussi ajouter des membres à un groupe Google et en supprimer facilement. Il n'est pas nécessaire de mettre à jour une stratégie IAM pour ajouter ou supprimer des utilisateurs.

Configurer l'accès aux ressources à l'aide de Google Groupes

Vous pouvez créer et gérer un groupe Google à l'aide de Cloud Identity. Cloud Identity est une solution IDaaS (Identity as a Service) qui gère les utilisateurs et les groupes. Vous pouvez également configurer Cloud Identity pour fédérer des identités entre Google et d'autres fournisseurs d'identité, tels qu'Active Directory et Azure Active Directory. Google Groupes permet également à un utilisateur de demander à rejoindre un groupe. Cette requête est acheminée vers des administrateurs de groupe autorisés à l'approuver ou à la refuser. Pour en savoir plus, consultez la page Créer un groupe et définir ses paramètres.

Lorsque vous créez et gérez un groupe Google pour accorder l'accès aux ressources Google Cloud, tenez compte des implications des paramètres que vous sélectionnez. Même si nous vous recommandons de réduire le nombre d'utilisateurs pouvant gérer le groupe, nous vous conseillons de configurer plusieurs administrateurs du groupe afin qu'ils aient toujours accès à ce groupe. Nous vous recommandons également de limiter l'appartenance aux groupes aux utilisateurs de votre organisation.

Implémentation

Dans cet exemple de procédure, vous allez créer un groupe Google et donner au groupe de lecteurs un accès à un exemple de projet Google Cloud. Les membres que vous ajoutez à ce groupe (ou auxquels vous accordez l'accès sur demande) peuvent afficher l'exemple de projet Google Cloud.

Créer un exemple de groupe Google

Les étapes suivantes supposent que Cloud Identity est configuré. Pour en savoir plus, consultez la page Configurer Cloud Identity. Assurez-vous de disposer des autorisations nécessaires pour gérer des groupes.

  1. Dans la console Google Cloud, accédez à la page Groupes.

    Accéder à Google Groupes

  2. Cliquez sur Create (Créer).

  3. Complétez les détails concernant votre groupe.

    Pour ajouter des membres au groupe, cliquez sur Ajouter un membre, puis saisissez l'adresse e-mail du membre et choisissez son rôle Google Groupes.

    Lorsque vous avez terminé, cliquez sur Envoyer pour créer le groupe.

    Les paramètres de groupe ne peuvent être gérés que dans Google Groupes. Cliquez sur Gérer ce groupe dans Google Groupes pour configurer les paramètres du groupe. Pour sélectionner les personnes autorisées à rejoindre le groupe, sélectionnez Utilisateurs d'organisation uniquement dans le menu Qui peut rejoindre le groupe.

  4. Cliquez sur Créer un groupe.

Accorder au groupe l'accès à un projet Google Cloud

  1. Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
  2. Ouvrez Cloud Shell.

    Accéder à Cloud Shell

  3. Exécutez la commande suivante pour accorder au groupe un accès en lecture au projet :

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=group:GROUP_EMAIL --role=roles/viewer
    

    Remplacez l'élément suivant :

    • GROUP_EMAIL : adresse e-mail du groupe que vous avez créé.
    • PROJECT_ID : ID de votre projet Google Cloud

Tester le processus de demande d'accès utilisateur de votre organisation

Dans la procédure suivante, vous allez utiliser un compte utilisateur test pour montrer les étapes que les utilisateurs de votre organisation utilisent afin de demander l'accès à un groupe Google.

  1. Connectez-vous à Google Groupes en tant qu'utilisateur non administrateur. Le groupe que vous avez créé à l'étape Créer un exemple de groupe Google est affiché sous Tous les groupes. Si le groupe n'apparaît pas, utilisez la fonction de recherche pour le trouver.
  2. Pour demander l'accès au groupe, cliquez sur Demander à rejoindre le groupe.

    Une fois l'accès accordé, le compte utilisateur non administrateur que vous avez utilisé pour effectuer la requête doit pouvoir afficher le projet Google Cloud PROJECT_ID auquel le groupe a accès en lecture.

Accorder un accès limité aux ressources Google Cloud

Dans certains cas, les utilisateurs de votre entreprise nécessitent un accès à court terme et temporaire aux ressources Google Cloud. Un accès à court terme est utile lorsque les développeurs ont besoin d'un accès temporaire aux ressources Google Cloud pour effectuer certaines tâches. L'accès à court terme présente également les avantages suivants :

  • Réduire les frais administratifs.
  • S'assurer que le principe du moindre privilège et l'accès rapide sont respectés.

La possibilité d'accorder ce type d'accès est utile pour les administrateurs lorsque les utilisateurs doivent accéder à des ressources en cas d'urgence nécessitant une intervention rapide et directe. Toutefois, il peut être difficile de suivre manuellement les autorisations d'accès à court terme et de s'assurer qu'elles sont supprimées rapidement. Les règles d'accès conditionnel de la gestion de l'authentification et des accès (IAM) vous permettent de définir un accès temporaire (expirant) aux ressources Google Cloud à l'aide de liaisons de rôles conditionnelles, ce qui vous permet de réduire cette surcharge pour les administrateurs.

Utiliser des liaisons de rôles conditionnelles et l'expiration de l'adhésion à un groupe

Vous pouvez ajouter des liaisons de rôles conditionnelles à des stratégies IAM nouvelles ou existantes pour mieux contrôler l'accès aux ressources Google Cloud. Voici quelques exemples de situations où vous pouvez utiliser des liaisons de rôles conditionnelles pour accorder un accès temporaire à un utilisateur ou à un groupe :

  • Accès à un projet qui expire après une période déterminée.
  • Accès à un projet qui se répète tous les mois ou chaque trimestre.
  • Accès aux instances Compute Engine pour gérer des tâches telles que l'arrêt d'instances.

Lorsque vous utilisez Google Groupes pour accorder aux utilisateurs l'accès aux ressources Google Cloud, vous pouvez utiliser la fonctionnalité d'expiration de l'adhésion à un groupe afin de définir des délais d'expiration pour les membres d'un groupe à l'aide de l'API Cloud Identity Groups. Une fois le délai spécifié écoulé, les utilisateurs sont automatiquement retirés du groupe.

Mise en œuvre

Vous pouvez utiliser une liaison de rôle conditionnelle pour accorder aux développeurs un accès temporaire afin d'administrer une instance Compute Engine spécifique. Dans cet exemple, la liaison de rôle est définie pour expirer le 31 décembre 2021.

  1. Dans Cloud Shell, définissez les variables suivantes :

    export INSTANCE=create example-instance-1
    export ZONE=us-west1-b
    export USER=USER_ID_TO_GIVE_TEMPORARY_ACCESS_TO
    

    Remplacez USER_ID_TO_GIVE_TEMPORARY_ACCESS_TO par le nom de l'utilisateur de votre organisation auquel vous souhaitez accorder un accès temporaire.

  2. Créez un exemple d'instance Compute Engine :

    gcloud compute instances create $INSTANCE \
        --zone $ZONE \
        --machine-type g1-small
    

    Pour accorder à un utilisateur de votre organisation un accès temporaire à cette instance, procédez comme suit :

  3. Accordez à l'utilisateur que vous avez sélectionné un accès temporaire :

    gcloud compute instances add-iam-policy-binding $INSTANCE \
        --zone=$ZONE \
        --member="user:$USER" \
        --role='roles/compute.instanceAdmin.v1' \
        --condition='expression=request.time < timestamp("2022-01-01T00:00:00Z"),title=expires_end_of_2021,description=Expires at midnight on 2021-12-31'
    
  4. Conservez l'instance Compute Engine que vous créez. Vous utiliserez cette instance ultérieurement dans ce document, à la section Gérer les accès privilégiés.

    Vous pouvez également supprimer l'instance example-instance-1 en exécutant la commande suivante :

    gcloud compute instances delete $INSTANCE
    

Si vous devez examiner les événements de cycle de vie IAM, tels que les modifications de stratégie, la création de comptes de service et les attributions de comptes de service pour l'audit, les journaux d'audit Cloud peuvent vous aider. Les administrateurs peuvent utiliser les journaux d'audit Cloud pour consulter les données historiques à des fins d'examen et d'analyse. L'analyse des journaux d'audit peut vous aider à comprendre les modèles d'accès et à accéder aux anomalies. L'analyse des journaux d'audit peut également être utile pour les scénarios suivants :

  • Analyser les autorisations et accéder aux ressources lors d'une violation des données.
  • Analyser les problèmes de production liés à une modification de la stratégie IAM, en particulier si vous souhaitez savoir quel utilisateur ou quel processus a effectué la modification.

Les journaux d'audit Cloud stockent des informations sur les actions effectuées par les utilisateurs, l'endroit où ces activités se sont produites et le moment auquel elles ont eu lieu. Les journaux d'audit sont classés comme suit :

Nous vous recommandons d'utiliser les journaux d'audit suivants pour la gestion de l'authentification et des accès relatifs à la journalisation des activités d'administration :

  • Journaux d'audit pour les activités d'administration
  • Journaux d'audit des refus de règles

Les journaux d'audit des activités d'administration stockent les modifications apportées aux ressources Google Cloud, telles que les projets, les instances Compute Engine et les comptes de service. Vous trouverez ci-dessous des exemples d'événements stockés par les journaux d'audit des activités d'administration :

  • Création d'un compte de service.
  • Modification d'une stratégie IAM.
  • Téléchargement d'une clé de compte de service.

Les journaux d'audit des refus de règles enregistrent les accès refusés d'un utilisateur ou d'un compte de service à un service Google Cloud en raison d'une violation des règles de sécurité.

Configurer des journaux d'audit Cloud pour les événements de cycle de vie liés à l'identité

Vous pouvez consulter ou interroger les journaux d'audit dans la console Google Cloud à l'aide de l'API Cloud Logging ou de l'interface de ligne de commande.

Tous les journaux d'audit ont une durée de conservation. Si votre entreprise doit stocker des journaux d'audit pendant une période plus longue que la durée de conservation par défaut, vous devez les exporter vers BigQuery ou d'autres destinations de récepteur en créant un récepteur de journaux. L'exportation des journaux vers BigQuery vous permet d'afficher un sous-ensemble de colonnes de données et les données sélectionnées (au fil du temps ou d'autres dimensions), et d'effectuer une analyse globale.

Implémentation

L'exemple de procédure suivant vous indique comment interroger les journaux de projet Google Cloud pour vérifier si l'un des événements suivants s'est produit :

  • Des modifications ont été apportées aux stratégies IAM.
  • Des comptes de service ont été créés.
  • De nouvelles clés de compte de service ont été générées.

Afficher les modifications apportées aux stratégies IAM

  1. Dans la console Google Cloud, accédez à la page Journalisation > Explorateur de journaux.
  2. Sur la page Explorateur de journaux, sélectionnez un projet Google Cloud existant.
  3. Collez la requête suivante dans le générateur de requêtes :

    logName="projects/<PROJECT>/logs/cloudaudit.googleapis.com%2Factivity" AND
    (resource.type="project" OR resource.type="service_account") AND
    resource.labels.project_id="<PROJECT>" AND
    (protoPayload.methodName="SetIamPolicy" OR
    protoPayload.methodName="google.iam.admin.v1.CreateServiceAccount"
    OR
    protoPayload.methodName="google.iam.admin.v1.CreateServiceAccountKey")
    

    Remplacez PROJECT par l'ID de votre projet Google Cloud.

  4. Cliquez sur Exécuter la requête.

Afficher les modifications apportées aux membres du groupe

Les modifications apportées à la liste des membres du groupe Google sont suivies dans les journaux d'activité. Pour savoir comment accéder à ces journaux, consultez la section Afficher les journaux des modifications apportées aux membres d'un groupe.

Certification d'accès

L'outil Policy Analyzer peut être utilisé pour vérifier que les utilisateurs disposent des droits d'accès appropriés aux ressources Google Cloud, de manière périodique ou déterminée. Cette validation est importante à des fins de conformité et d'audit. Il est également utile pour le personnel de sécurité et les auditeurs de vérifier quels utilisateurs ont accès à quelle ressource et à quelle capacité. L'outil Policy Analyzer vous aide à identifier les identités ou les comptes principaux (utilisateurs, comptes de service, groupes et domaines) ayant accès aux ressources Google Cloud sur l'ensemble de la hiérarchie des ressources au sein de votre organisation. Il permet également d'identifier le type d'accès. Voici quelques exemples de questions auxquelles Policy Analyzer peut vous aider à répondre :

  • Quels utilisateurs peuvent accéder à un compte de service.
  • Quels utilisateurs peuvent lire les données dans un ensemble de données BigQuery contenant des informations personnelles.

Policy Analyzer peut être utilisé à l'aide des méthodes suivantes :

Vérifier l'accès utilisateur à l'aide de Policy Analyzer

Les exemples de requêtes suivants montrent les insights que vous pouvez obtenir sur l'accès utilisateur à l'aide de l'outil Policy Analyzer :

  • Rôles ou autorisations dont dispose un compte principal (utilisateur, compte de service, groupe et domaine) ; par exemple, vérification de l'accès d'un ancien employé à votre projet de production.
  • Ressources auxquelles un utilisateur a accès ; par exemple, accès d'un ancien employé aux ressources de votre projet de production.
  • Comptes principaux disposant d'un certain niveau d'accès à une ressource ; par exemple, les buckets qu'un utilisateur spécifique peut supprimer dans un projet.

Mise en œuvre

Dans l'exemple de procédure suivant, vous allez utiliser l'outil Policy Analyzer pour vérifier les autorisations dont dispose un utilisateur.

  1. Dans Cloud Shell, activez l'API Cloud Asset pour le projet :

    Activer l'API

  2. Saisissez la commande suivante pour savoir à quelles ressources un utilisateur peut accéder :

    gcloud asset analyze-iam-policy --organization="YOUR_ORG_ID" \
        --identity="user:USERNAME_TO_CERTIFY"
    

    Effectuez les remplacements suivants :

    • YOUR_ORG_ID : ID de votre organisation Google Cloud.
    • USERNAME_TO_CERTIFY : nom de l'utilisateur dont vous souhaitez vérifier les autorisations d'accès Google Cloud.
  3. Extrayez les données de stratégie IAM vers BigQuery. Pour en savoir plus, consultez la page Écrire une analyse de stratégie dans BigQuery.

Gérer les accès privilégiés

Certains utilisateurs de votre organisation peuvent avoir besoin d'un accès privilégié à certaines ressources Google Cloud pour effectuer des tâches d'administration. Ces utilisateurs peuvent par exemple être amenés à gérer des projets Google Cloud spécifiques, à configurer la facturation et les budgets du projet, ou à administrer des instances Compute Engine.

Au lieu d'accorder de façon permanente aux utilisateurs un accès privilégié aux ressources, vous pouvez autoriser les utilisateurs à demander un accès privilégié en "juste-à-temps". La gestion des accès privilégiés avec le juste-à-temps peut vous aider à effectuer les opérations suivantes :

  • Réduire le risque qu'un utilisateur ne modifie ou ne supprime accidentellement des ressources. Par exemple, lorsque des utilisateurs ne disposent d'un accès privilégié que lorsque cela est nécessaire, cela les empêche d'exécuter à d'autres moments des scripts qui affectent involontairement des ressources qu'ils ne devraient pas pouvoir modifier.
  • Créer une piste d'audit qui indique pourquoi les privilèges ont été activés.
  • Effectuer des audits et des examens pour analyser les activités passées.

Vous pouvez également accorder un accès privilégié à un compte de service et permettre aux utilisateurs d'emprunter l'identité de ce compte de service.

Accorder un accès privilégié aux utilisateurs

De manière générale, la gestion de l'accès privilégié aux utilisateurs de la version Enterprise dans Google Cloud peut être résumée comme suit :

  • Donner aux utilisateurs de la version Enterprise la possibilité de demander un accès privilégié.
  • Consulter les journaux d'audit Cloud pour analyser les demandes d'accès privilégiés et les modèles d'accès. Les administrateurs peuvent examiner les modèles d'accès privilégiés et détecter les anomalies à l'aide de ces journaux. Nous recommandons aux entreprises d'exporter ces journaux pour les conserver lorsque cela est nécessaire et approprié, à des fins d'audit.
  • Garantir que l'accès privilégié expire automatiquement ou est examiné régulièrement.

Activez la validation en deux étapes (également appelée authentification multifacteur) pour tous les utilisateurs disposant d'un accès privilégié aux ressources. Vous pouvez également créer un contrôle des accès précis basé sur des attributs à l'aide d'Access Context Manager qui applique une couche de sécurité supplémentaire lorsque l'accès privilégié est utilisé. Par exemple, vous pouvez avoir un niveau d'accès qui spécifie que les utilisateurs doivent se trouver sur le réseau d'entreprise lorsqu'ils utilisent un accès privilégié aux ressources.

Implémentation

Dans cet exemple de procédure, vous allez créer (en tant qu'administrateur) un groupe Google pour accorder un accès privilégié aux instances Compute Engine. Vous allez ensuite créer un compte de service dans Google Cloud bénéficiant d'un accès pour administrer des instances Compute Engine. Vous allez enfin associer le groupe au compte de service afin que les membres de ce groupe puissent emprunter l'identité du compte de service pour la période pendant laquelle ils sont membres du groupe privilégié.

Créer un groupe Google pour un accès privilégié

  1. En tant qu'administrateur Google Cloud, sélectionnez ou créez un projet Google Cloud.

    Accéder à la page Gérer les ressources

  2. Activez la facturation pour votre projet. Activer la facturation

  3. Suivez la procédure décrite dans l'article Donner aux utilisateurs la possibilité de demander l'accès aux ressources pour créer un groupe Google.

    Nommez le groupe comme suit : elevated-compute-access

Créer un compte de service Google Cloud

  1. Dans Cloud Shell, activez les API Service Account Credentials IAM pour le projet que vous avez créé dans Créer un groupe Google pour un accès privilégié.

    Activer les API

  2. Définissez ces variables :

    export PROJECT_ID=$DEVSHELL_PROJECT_ID
    export PRIV_SERVICE_ACCOUNT_NAME=elevated-compute-access
    export DELEGATE_GROUP=GROUP_EMAIL_ADDRESS
    

    Remplacez GROUP_EMAIL_ADDRESS par le nom complet du groupe Google que vous avez créé.

  3. Créez le compte de service :

    gcloud IAMservice-accounts create $PRIV_SERVICE_ACCOUNT_NAME \
        --description="Elevated compute access" \
        --display-name="Elevated compute access"
    
  4. Attribuez le rôle d'administrateur de calcul au compte de service :

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member="serviceAccount:$PRIV_SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/compute.admin"
    
  5. Accordez au groupe Google que vous avez créé l'accès client Service Usage pour votre projet :

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member="group:$DELEGATE_GROUP" \
        --role="roles/serviceusage.serviceUsageConsumer"
    

    Cette autorisation permet aux membres du groupe Google d'emprunter l'identité du compte de service que vous avez créé.

  6. Donnez au groupe Google la possibilité d'emprunter l'identité du compte de service que vous avez créé :

    gcloud IAMservice-accounts add-iam-policy-binding
    $PRIV_SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --member="group
    :$DELEGATE_GROUP" --role="roles/iam.serviceAccountTokenCreator"
    
  7. Ignorez cette étape si vous avez créé et conservé un exemple d'instance Compute Engine pour la procédure décrite dans la section Accorder un accès limité aux ressources Google Cloud. Vous pouvez utiliser l'exemple d'instance pour exécuter les étapes de cet exemple.

    Vous pouvez également utiliser la commande suivante pour créer un exemple d'instance Compute Engine :

    gcloud compute instances create example-instance-1 \
        --zone us-west1-b \
        --machine-type g1-small
    

    Vous allez utiliser les instances de cet exemple pour vérifier que les utilisateurs qui sont membres du groupe privilégié peuvent accéder à l'instance.

Activer les journaux d'audit

Les administrateurs de votre entreprise peuvent activer Cloud Audit Logging pour s'assurer que l'accès privilégié est journalisé, et disponible à des fins d'examen et d'analyse. La procédure décrite dans cette section explique comment activer les journaux d'audit.

  1. Obtenez les stratégies IAM en vigueur pour le projet :

    gcloud projects get-iam-policy $PROJECT_ID > /tmp/policy.yaml
    
  2. Modifiez le fichier de stratégie afin d'activer les journaux d'accès aux données pour l'API Compute Engine :

    cat <<EOF >> /tmp/policy.yaml
    auditConfigs:
    - auditLogConfigs:
     - logType: ADMIN_READ
     - logType: DATA_READ
     - logType: DATA_WRITE
     service: compute.googleapis.com
    EOF
    
  3. Définissez la nouvelle règle :

    gcloud projects set-iam-policy $PROJECT_ID /tmp/policy.yaml
    

Tester l'usurpation d'identité avec un compte utilisateur non administrateur

Vous pouvez utiliser le compte utilisateur non administrateur pour tester la configuration en demandant l'adhésion au groupe et en empruntant l'identité du compte de service une fois l'adhésion accordée.

La procédure décrite dans cette section explique comment les utilisateurs de la version Enterprise peuvent demander un accès privilégié aux ressources Google Cloud. Dans cet exemple de procédure, les ressources Google Cloud sont les instances Compute Engine d'un projet Google Cloud. Pour montrer comment les utilisateurs de votre organisation peuvent emprunter l'identité d'un compte de service une fois qu'ils sont membres du groupe, vous devez demander leur adhésion aux groupes Google concernés.

  1. Connectez-vous aux groupes Google avec le compte utilisateur non administrateur et demandez une adhésion au groupe elevated-compute-access.
  2. Utilisez le même compte pour vous connecter à Google Cloud. Vous devez avoir accès au groupe une fois qu'un administrateur a approuvé la demande. Dans cet exemple de procédure, nous supposons que votre demande d'adhésion au groupe a été approuvée.

  3. Dans Cloud Shell, exécutez la commande suivante pour définir le projet par défaut :

    gcloud config set project PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID du projet que vous avez créé précédemment dans la section Créer un groupe Google pour un accès privilégié.

  4. Essayez de répertorier les instances Compute Engine dans ce projet :

    gcloud compute instances list
    

    Un message d'erreur vous informe que votre utilisateur Google Cloud ne dispose pas des autorisations nécessaires pour accéder aux ressources Compute Engine.

  5. Exécutez la commande suivante :

    gcloud compute instances list
    --impersonate-service-account=elevated-compute-access@$PROJECT_ID.iam.gserviceaccount.com
    

    Cette commande répertorie les instances Compute Engine du projet en empruntant l'identité du compte de service pour lequel vous avez obtenu l'accès lorsque vous êtes devenu membre du groupe Google elevated-compute-access.

    L'instance Compute Engine example-instance-1 que vous avez créée avec votre compte administrateur s'affiche.

Vérifier les journaux d'audit

En tant qu'administrateur Google Cloud, vous pouvez accéder aux journaux d'audit générés et les examiner.

  1. Connectez-vous à la console Google Cloud avec un compte utilisateur disposant des droits d'administrateur pour accéder aux journaux d'audit.

  2. Dans Cloud Logging, saisissez la requête suivante pour examiner les journaux d'accès aux données :

    logName="projects/<PROJECT_ID>/logs/cloudaudit.googleapis.com%2Fdata_access"
    AND
    protoPayload.authenticationInfo.principalEmail="elevated-compute-access@PROJECT_ID.iam.gserviceaccount.com"
    

    Remplacez PROJECT_ID par l'ID de votre projet, puis exécutez la requête.

    Cette requête indique quel utilisateur du groupe Google a emprunté l'identité du compte de service pour accéder à l'instance Compute Engine. Elle indique également d'autres informations pertinentes, telles que le moment où l'identité du compte de service a été empruntée et les détails des en-têtes de requête.

  3. Examinez la charge utile du journal d'audit, en particulier l'objet protoPayload.authenticationInfo de la charge utile. Le nom de l'utilisateur qui a emprunté l'identité du compte de service est enregistré comme valeur de la clé principalEmail de l'objet firstPartyPrincipal.

  4. En tant qu'administrateur, vous pouvez également consulter les résultats Event Threat Detection dans le tableau de bord Security Command Center. Pour en savoir plus sur Security Command Center, consultez la page Utiliser Event Threat Detection.

Étapes suivantes