Améliorer le Just-in-Time access avec GCP Privileged Access Manager

Temps de lecture : 13 minutes

Dans le monde numérique actuel, les entreprises migrent de plus en plus leurs données et leurs applications vers le Cloud. Cela entraîne une augmentation des accès privilégiés nécessaires pour gérer et maintenir ces environnements. Cependant, accorder des privilèges excessifs aux utilisateurs peut accroître considérablement le risque de failles de sécurité et de compromission des données.

C’est là qu’intervient le principe d’accès juste-à-temps (ou JIT en anglais pour Just-in-Time access). Le JIT prône l’octroi de privilèges aux utilisateurs uniquement lorsqu’ils en ont besoin et pour la durée minimale nécessaire, réduisant ainsi la fenêtre d’exposition aux menaces. Google Cloud Privileged Access Manager (PAM) offre une solution complète pour implémenter le JIT dans un environnement GCP, renforçant ainsi la sécurité des accès privilégiés en plus d’en simplifier la gouvernance.

Dans cet article, nous allons aborder les principes du JIT et présenter le service GCP Privileged Access Manager qui implémente cette approche. Nous aborderons les fonctionnalités de PAM et ses limitations ainsi que les avantages d’adopter la pratique JIT dans un environnement Cloud GCP.

1. Qu’est-ce que le JIT ?

Le Just-in-Time Access est une approche de gouvernance de la sécurité qui vise à minimiser le temps pendant lequel les utilisateurs disposent de privilèges élevés. Cela permet de réduire les risques associés aux privilèges excessifs, tels que les accès non autorisés, les erreurs accidentelles et l’introduction de malwares. On considère le JIT comme l’un des moyens permettant de renforcer le principe de moindre privilège (ou least privilege en anglais).

Le JIT est particulièrement utile dans des situations réelles telles que celles-ci : un développeur qui n’a pas besoin d’accéder quotidiennement à la base de données de production, mais qui pourrait nécessiter un accès temporaire pour résoudre un problème critique ; les contrats de Tierce Maintenance Applicative (TMA) où les prestataires externes ont besoin d’accès ponctuels pour effectuer des maintenances ou des mises à jour ; ou encore les auditeurs externes qui doivent accéder à certaines ressources sensibles pour effectuer des contrôles de conformité, mais seulement pour une durée limitée. Dans chacun de ces cas, le JIT permet de fournir les privilèges nécessaires de manière contrôlée et temporaire, réduisant ainsi les risques de sécurité associés aux accès prolongés et non nécessaires.

L’on distingue trois types principaux d’approches JIT:

  • Les accès privilégiés partagés : cette approche exige une justification de la part des utilisateurs pour accéder à des ressources spécifiques pendant une durée limite définie. Ces utilisateurs disposent généralement d’un compte à privilèges permanent et partagé dont les identifiants sont enregistrés dans un coffre-fort centralisé.
  • Les comptes éphémères : cette approche prévoit la création de comptes à privilèges à usage unique qui sont automatiquement supprimés après usage.
  • L’élévation temporaire de privilèges : selon cette approche, les utilisateurs ne disposent pas de privilèges permanents. Au lieu de cela, ils doivent demander l’accès privilégié lorsqu’ils en ont besoin, et cet accès est accordé en temps réel pour une durée limitée prédéfinie. Une fois la tâche accomplie, les privilèges sont automatiquement révoqués.

Dans cet article, nous nous concentrons sur l’approche JIT basée sur l’élévation temporaire de privilèges.

2. Parcours classique d’élévation de privilèges : limites et défis

Les processus d’élévation de privilèges traditionnels sont souvent fastidieux et inefficaces, impliquant de multiples aller-retours entre les demandeurs, les administrateurs et les approbateurs. Cela peut entraîner des retards importants dans l’exécution des tâches critiques et expose les systèmes à des périodes d’inaccessibilité aux droits et d’exposition accrue aux menaces.

Figure 1 : scénario de besoin d’élévations de privilèges

Pour illustrer les limitations liées aux parcours dits classiques d’élévations de privilèges, prenons la situation suivante (figure 1) : Alice est administratrice d’un compte GCP et Bob est usager disposant de droits minimaux. Pour les besoins de sa mission, Bob a ponctuellement besoin d’avoir des droits à privilèges au service GCP BigQuery (via le rôle BigQuery Editor par exemple).

Dans un parcours classique, Bob doit se rapprocher d’Alice via des moyens généralement chronophages et peu efficaces. Il devra ouvrir un ticket dans une plateforme de support ITSM ou envoyer un e-mail pour formuler sa demande. Alice, quant à elle, pourrait initier une discussion pour qualifier la légitimité de cette demande, ouvrant ainsi une dynamique d’allers-retours d’approfondissements et de validation de la demande. Par la suite, Alice devra réfléchir aux droits minimaux requis pour satisfaire la demande puis octroyer ces droits manuellement à Bob.

Après l’achèvement de période d’élévation convenue. Alice revient vers Bob pour confirmer que ses accès ne sont plus nécessaires avant de révoquer manuellement les droits privilégiés accordés. En outre, Alice doit souvent gérer de nombreuses demandes de la sorte. Enfin, notons qu’en l’absence de moyens automatisés pour révoquer les accès, il est courant que les droits temporairement attribués ne soient en réalité jamais retirés ou sinon bien trop tardivement.

Ce parcours, illustré en figure 2, comporte de nombreux désavantages que nous résumons ci-dessous :

  • Absence de principe du moindre privilège : Les utilisateurs obtiennent souvent plus de privilèges que nécessaire pour accomplir leur tâche, augmentant la surface d’attaques potentielles.
  • Périodes d’inaccessibilité aux droits : Les utilisateurs peuvent observer des délais importants pour se voir octroyer l’accès aux ressources dont ils ont besoin pour effectuer leur travail, ce qui peut nuire à la productivité et aux opérations des équipes.
  • Périodes d’exposition prolongées : Les privilèges élevés restent souvent accordés plus longtemps que nécessaire, augmentant le risque de compromission du périmètre concerné.
  • Fatigue administrative : Les approbateurs et administrateurs doivent constamment procéder à la validation des besoins, aux octrois et aux suspensions de droits, induisant ainsi une charge opérationnelle et cognitive considérable.
  • Manque de visibilité et d’audit : Il peut être difficile de suivre et d’auditer qui a accédé à quoi et quand, ce qui entrave les investigations en cas d’incident, surtout si les échanges décrits plus haut ont eu lieu via des plateformes de messagerie interne ou par e-mail.
GCP Privileged Access Manager

Figure 2 : parcours JIT access classique

3. Présentation de Privileged Access Manager (PAM)

Privileged Access Manager (PAM) est une solution native et managée de Google Cloud Platform (GCP) qui permet de gérer et de sécuriser les accès privilégiés au sein d’environnements Google Cloud. PAM implémente le principe du JIT access en automatisant les processus d’élévation de privilèges et en en facilitant la gestion. Privileged Access Manager s’intègre complètement à IAM (Identity and Access Management) et permet d’utiliser les rôles et permissions existants.

PAM se base sur la notion de entitlement (approximativement “droit” ou “habilitation” en français). Un entitlement peut être est vu comme un scénario d’élévation de privilèges pour lequel les attributs suivants peuvent être définis :

  • Un ensemble d’identités (comptes individuels ou groupes) autorisées à solliciter une élévation de privilèges.
  • Un ensemble d’identités habilitées à approuver les demandes.
  • L’obligation ou non de fournir une justification lors de la demande par les utilisateurs.
  • Un ensemble de rôles et permissions à octroyer temporairement (avec la possibilité d’appliquer des conditions IAM).
  • Le périmètre (c’est-à-dire l’ensemble des ressources) concerné par l’application des permissions privilégiées.
  • La durée d’élévation maximale autorisée.
  • Optionnellement :
    • L’obligation ou non de fournir une justification aussi bien lors de la formulation de la demande que lors de son approbation,
    • La possibilité de disposer des droits sans approbation, permettant ainsi 2 modèles d’élévation : (1) soumis à validation et (2) en self-service.
    • La possibilité de définir des notifications diverses telles que la disponibilité de nouveaux scénarios ou demandes en attente d’approbation.

Comme illustré en figure 3, Privileged Access Manager automatise et centralise le processus d’élévation de privilèges en le fluidifiant et en le simplifiant au maximum. Les demandeurs d’élévations de privilèges soumettent leurs demandes via une interface dédiée qui s’occupe de notifier les approbateurs et de solliciter leur confirmation avant d’octroyer et de révoquer automatiquement les droits privilégiés. En outre, PAM trace toutes les activités de demandes et approbations/révocations de manière centralisée et facilement auditable. 

GCP Privileged Access Manager

Figure 3 : fonctionnement haut niveau de PAM

En termes de pricing et de facturation, au moment où nous mettons sous presse (juillet 2024) le service PAM est en preview et n’engendre aucun coût. 

4. Parcours d’élévation de privilèges avec Privileged Access Manager

Un parcours d’élévation de privilèges en utilisant le service PAM se caractérise par une simplicité et une fluidité considérables. 

En reprenant la même situation illustrée en section 2, la figure 4 montre le parcours optimisé qu’offre PAM. A la différence du parcours observé précédemment, Privileged Access Manager permet aux administrateurs de prendre les devants en définissant les entitlements ou scénarios ouverts à des élévations de privilèges avec les configurations souhaitées comme abordé en section 3.

Les utilisateurs (représentés par Bob) ont accès à un catalogue de scénarios mis à leur disposition et sont libres de solliciter ceux qui les intéressent en fournissant les justifications nécessaires (si demandées).

Pour chaque demande d’élévation soumise, les approbateurs (représentés par Alice) reçoivent une notification les invitant à l’approuver ou à la refuser en incluant leurs justifications (si demandées). Quand une demande est approuvée, le service Privileged Access Manager octroie les permissions préalablement identifiées au demandeur, le notifie et démarre un compte à rebours (correspondant à la durée maximale préalablement définie). A la fin du compte à rebours, PAM retire automatiquement les permissions IAM temporairement attribuées.

GCP Privileged Access Manager

Figure 4 : parcours JIT access avec PAM

Un parcours JIT en utilisant Privileged Access Manager apporte de nombreux avantages que voici:

  • Maîtrise et réduction des vulnérabilités : Les administrateurs identifient les périmètres éligibles à des accès privilégiés et en contrôlent les accès de manière bornée (en termes de temps et de permissions).
  • Accélération des workflows : PAM centralise toutes les étapes du processus d’élévation de privilèges. Les demandeurs/approbateurs sont notifiés en temps réel lorsqu’une demande est approuvée/demandée. 
  • Augmentation de la productivité : Les demandeurs ont accès immédiatement aux droits privilégiés demandés grâce à l’intégration entre PAM et IAM. Du côté des approbateurs, les demandes et justifications sont centralisées et une validation peut se faire en un clic.
  • Amélioration de la visibilité et l’audit : PAM fournit des journaux (logs) d’audit complets (qui a demandé l’accès à quoi et pourquoi ; et qui a validé quoi et pourquoi) et traçables pour toutes les activités d’élévation et de révocations de privilèges.

5. Limitations de Privileged Access Manager

La principale limitation de PAM est l’impossibilité d’octroyer des rôles basiques GCP c’est-à-dire Owner, Editor ou Viewer. Le service invite à utiliser des rôles prédéfinis ou à définir des rôles Custom. Cette limitation est en réalité logique et pertinente : chaque rôle basique octroie des centaines (voire des milliers) de permissions sur pratiquement tous les services GCP à la fois. Attribuer de tels rôles viendrait alors en contradiction avec le pilier central prôné par la philosophie JIT access, à savoir : le least privilege.

6. Exploitation et industrialisation de Privileged Access Manager

Le service PAM offre de nombreuses options pour en permettre l’exploitation à l’échelle. Nous abordons ici trois volets principaux :  le périmètre d’action de PAM,  la configuration du service et l’exploitation du service.

6.1. Périmètre d’action

PAM est configurable à l’échelle du projet, du folder ou de l’organisation. Il est par ailleurs possible de définir les accès à granularité très fine (par exemple à l’échelle d’une ressource ou d’un service) grâce à l’exploitation des conditions IAM.

6.2. Configuration du service

Comme évoqué précédemment, la configuration de PAM revient à créer des entitlements et leurs attributs. Cette action est possible en utilisant l’un de ces quatre moyens différents :

  • La console GCP (c’est-à-dire l’interface Web)
  • Le SDK Google Cloud (c’est-à-dire  les commandes de la CLI gcloud)
  • L’API REST du service (via le endpoint https://privilegedaccessmanager.googleapis.com)
  • Le provider Terraform de Google Cloud

En plus de faciliter l’utilisation du service au quotidien, ces options permettent de mettre en place tout un socle de conformité et de gouvernance implémentant le JIT à grande échelle au niveau de toute une organisation. En particulier, la possibilité de définir des entitlements en infrastructure-as-code permet de faire évoluer la gouvernance JIT de manière robuste et sécurisée en suivant par exemple une méthodologie GitOps.

La figure 5 donne un exemple de entitlement de nom “elevate-bq-editor”. Cet entitlement prévoit l’élévation de privilèges en octroyant le rôle “BigQuery Data Editor” sur le périmètre (projet/folder/org) identifié pour une durée maximale d’une heure. Bob est identifié comme demandeur et Alice comme approbateur. Les deux parties doivent fournir des justifications (formulation de la demande et acceptation/refus de celle-ci). 

GCP Privileged Access Manager

Figure 5 : exemple d’un entitlement PAM

6.3. Exploitation du service

L’exploitation du service consiste en plusieurs actions identifiées dans le parcours illustré en section 4. Il s’agit de lister, visualiser, solliciter, approuver ou révoquer un entitlement ainsi que consulter le journal des événements. 

Lors de la soumission d’une demande, PAM crée un Grant (ou approximativement “octroi” ou “attribution” en français) au statut “Pending Approval” (“en attente de validation” en français) qui sera tracé dans les journaux d’audit et signalé aux approbateurs.

La figure 6 illustre l’interface permettant à Alice (approbateur) de valider ou de refuser une demande formulée par Bob (demandeur) en incluant un commentaire obligatoire. 

GCP Privileged Access Manager

Figure 6 : interface de validation d’une demande PAM

A la validation de sa demande, le demandeur est notifié par email comme illustré dans la figure 7. Notons qu’en cliquant sur le bouton bleu “view grant”, le demandeur est redirigé vers la console GCP où il peut consulter le Grant lié à sa demande. Il pourra y observer un compte à rebours dynamique en temps réel ainsi que les permissions précises que lui octroie le Grant.

GCP Privileged Access Manager

Figure 7 : notification d’acceptation d’une demande PAM

Toutes les actions d’exploitation sont possibles via l’un des moyens suivants :

  • La console GCP
  • Le SDK Google Cloud
  • L’API REST du service

Pour illustrer des actions possibles programmatiquement, la commande SDK (gcloud) suivante permet à un demandeur de solliciter un accès temporaire à un entitlement connu par son identifiant ENTITLEMENT_ID pour une durée de par exemple une heure, en incluant une justification :

gcloud beta pam grants create \
    --entitlement=ENTITLEMENT_ID \
    --requested-duration="3600s" \
    --justification="texte de justification" \
    --location=global

Du côté des approbateurs, une demande d’élévation de privilèges peut être validée via une requête REST (POST) en incluant une justification (reason) dans le corps de la requête. La mention GRANT_ID qualifie l’identifiant de la demande (Grant) à valider. La mention SCOPE spécifie le périmètre d’application de l’élévation de privilèges (par exemple projects/PROJECT_ID si le périmètre un projet GCP entier) :

curl -X POST \
'https://privilegedaccessmanager.googleapis.com/v1beta/SCOPE/locations/global/entitlements/ENTITLEMENT_ID/grants/GRANT_ID:approve' \
  -H 'Content-Type: application/json' \
  -d '{
	"reason": "texte de justification"
  }'

Les différentes possibilités qu’offre PAM au niveau de son exploitation permettent à tout type d’utilisateur d’une plateforme GCP de profiter pleinement des fonctionnalités du service via l’interface qui lui semble la plus adaptée.

7. Conclusion : le JIT, un élément essentiel de la sécurité du Cloud

La mise en œuvre du principe d’accès juste-à-temps (JIT) est cruciale pour renforcer la sécurité des environnements cloud. En limitant les privilèges accordés aux utilisateurs à ce qui est strictement nécessaire et pour une durée déterminée, les entreprises peuvent réduire considérablement leur exposition aux risques de sécurité. Le service Privileged Access Manager (PAM) de Google Cloud Platform (GCP) offre une solution efficace et automatisée pour intégrer cette approche dans une infrastructure GCP.

PAM améliore la gestion des accès privilégiés en centralisant et en simplifiant le processus d’élévation de privilèges. Grâce à ses fonctionnalités robustes, telles que la configuration flexible des entitlements, l’intégration transparente avec IAM et les capacités d’audit complètes, PAM permet d’accroître la productivité tout en maintenant une sécurité rigoureuse. En exploitant les avantages de PAM, les entreprises peuvent non seulement réduire les risques associés aux privilèges excessifs mais aussi optimiser leurs workflows et améliorer la visibilité des accès.

En conclusion, l’adoption de la pratique Just in Time Access avec PAM représente une avancée significative vers une gestion plus sûre et plus efficace des accès privilégiés dans un environnement Cloud. Les organisations peuvent ainsi répondre aux exigences de sécurité modernes tout en soutenant une gestion agile et réactive de leurs ressources.

PAM, avec sa capacité à automatiser et à sécuriser les accès, devient un outil indispensable pour toute entreprise cherchant à renforcer sa posture de sécurité sur Google Cloud Platform.

Commentaires :

A lire également sur le sujet :