Google Cloud Platform (GCP) Identity and Access Management (IAM) est un service qui permet de gérer les accès aux ressources Google Cloud. Il vous permet de créer et de gérer des utilisateurs, des groupes, des rôles et des politiques pour contrôler l'accès aux ressources Google Cloud. GCP IAM est essentiel pour assurer la sécurité et la gestion des accès dans votre environnement Google Cloud.

Présentation de GCP IAM

Qu'est-ce que GCP IAM ?

GCP IAM est un service qui vous permet de :

  • Créer et gérer des utilisateurs : Ajouter et gérer des utilisateurs dans Google Cloud.
  • Créer et gérer des groupes : Organiser les utilisateurs en groupes pour simplifier la gestion des accès.
  • Créer et gérer des rôles : Définir des rôles pour contrôler les permissions des utilisateurs et des groupes.
  • Définir des politiques : Appliquer des politiques pour contrôler l'accès aux ressources Google Cloud.

Exemples de Ligne de Commande

Pour interagir avec GCP IAM via la ligne de commande, vous pouvez utiliser l'outil gcloud de la Google Cloud SDK. Voici quelques exemples de commandes avancées pour gérer les utilisateurs, les groupes, les rôles et les politiques.

Prérequis

Avant de commencer, assurez-vous que la Google Cloud SDK est installée et configurée sur votre machine. Vous pouvez configurer gcloud avec la commande suivante :

gcloud init

Vous devrez fournir vos informations d'identification Google Cloud.

Créer un Utilisateur

Pour créer un utilisateur dans Google Cloud :

gcloud iam service-accounts create my-service-account --display-name "My Service Account"

Créer un Groupe

Pour créer un groupe dans Google Cloud :

gcloud identity groups create my-group --display-name "My Group"

Ajouter un Utilisateur à un Groupe

Pour ajouter un utilisateur à un groupe :

gcloud identity groups memberships add --group-email my-group@example.com --member-email user@example.com

Créer un Rôle Personnalisé

Pour créer un rôle personnalisé dans GCP IAM :

gcloud iam roles create my-custom-role --project my-project --title "My Custom Role" --description "This is a custom role" --permissions "compute.instances.list,compute.instances.get"

Attribuer un Rôle à un Utilisateur

Pour attribuer un rôle à un utilisateur :

gcloud projects add-iam-policy-binding my-project --member "user:user@example.com" --role "my-custom-role"

Lister les Utilisateurs

Pour lister tous les utilisateurs dans un projet :

gcloud iam service-accounts list --project my-project

Lister les Groupes

Pour lister tous les groupes dans un projet :

gcloud identity groups list --project my-project

Lister les Rôles

Pour lister tous les rôles dans un projet :

gcloud iam roles list --project my-project

Lister les Politiques d'Accès

Pour lister toutes les politiques d'accès dans un projet :

gcloud projects get-iam-policy my-project

Supprimer un Utilisateur

Pour supprimer un utilisateur dans Google Cloud :

gcloud iam service-accounts delete my-service-account

Supprimer un Groupe

Pour supprimer un groupe dans Google Cloud :

gcloud identity groups delete my-group

Supprimer un Rôle Personnalisé

Pour supprimer un rôle personnalisé dans GCP IAM :

gcloud iam roles delete my-custom-role --project my-project

Intégrer GCP IAM dans un Pipeline CI/CD

Pour intégrer GCP IAM dans un pipeline CI/CD, vous pouvez ajouter une étape de gestion des accès dans votre fichier de configuration CI/CD. Par exemple, pour GitHub Actions, vous pouvez ajouter une étape comme suit :

name: GCP IAM Management

on: [push, pull_request]

jobs:
  iam:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Google Cloud SDK
      uses: google-github-actions/setup-gcloud@v0.2.0
      with:
        version: 'latest'
        service_account_key: ${{ secrets.GCP_SA_KEY }}
        project_id: ${{ secrets.GCP_PROJECT_ID }}
    - name: Create Service Account
      run: |
        gcloud iam service-accounts create my-service-account --display-name "My Service Account"
    - name: Create Custom Role
      run: |
        gcloud iam roles create my-custom-role --project ${{ secrets.GCP_PROJECT_ID }} --title "My Custom Role" --description "This is a custom role" --permissions "compute.instances.list,compute.instances.get"
    - name: Assign Role to Service Account
      run: |
        gcloud projects add-iam-policy-binding ${{ secrets.GCP_PROJECT_ID }} --member "serviceAccount:my-service-account@${{ secrets.GCP_PROJECT_ID }}.iam.gserviceaccount.com" --role "my-custom-role"

 

Conclusion

GCP IAM est un service puissant pour gérer les accès aux ressources Google Cloud. En utilisant l'outil gcloud, vous pouvez automatiser et simplifier la création, la gestion et la surveillance des utilisateurs, des groupes, des rôles et des politiques. Ces exemples de commandes et de configurations vous donnent un bon point de départ pour commencer à utiliser GCP IAM.


Mise en garde concernant l'utilisation des outils de cybersécurité

L'utilisation des outils de cybersécurité présentés sur ce site est soumise à des considérations légales et éthiques importantes. Avant d'utiliser ces outils, nous vous encourageons à prendre en compte les points suivants :

- Cadre légal : L'utilisation de certains outils de cybersécurité peut être réglementée par la loi dans votre pays ou région. Il est de votre responsabilité de vous informer sur les lois en vigueur concernant la cybersécurité, la protection des données et la vie privée. L'utilisation non autorisée de ces outils peut entraîner des poursuites judiciaires et des sanctions pénales.

- Consentement : Assurez-vous d'obtenir le consentement explicite des parties concernées avant d'utiliser des outils qui pourraient intercepter, surveiller ou analyser des données. Le respect de la vie privée des individus est primordial.

- Utilisation éthique : Les outils de cybersécurité doivent être utilisés de manière éthique et responsable. Ils ne doivent pas être employés à des fins malveillantes, telles que le piratage, le vol de données ou toute autre activité illégale.

- Responsabilité : En utilisant ces outils, vous reconnaissez que vous le faites à vos propres risques. Nous ne saurions être tenus responsables des conséquences résultant de l'utilisation de ces outils, y compris, mais sans s'y limiter, les dommages matériels, les pertes de données ou les poursuites judiciaires.

- Formation et expertise : Il est recommandé de suivre une formation adéquate et de posséder les compétences nécessaires avant d'utiliser des outils de cybersécurité. Une mauvaise utilisation peut entraîner des résultats indésirables et des risques pour la sécurité.

En utilisant ce site et les outils qui y sont présentés, vous acceptez de respecter ces conditions et de vous conformer à toutes les lois applicables.

Formateur

Bertrand LECLERCQ

Consultant DevSecOps & Data Engineer


Avec 25 ans d'expérience dans le développement logiciel et une certification en Data Engineering de l'École des Mines Paris - PSL, je suis passionné par la cybersécurité, le big data et le DevOps. J'aime partager mes connaissances et aider la communauté à renforcer sa posture de sécurité.

J'ai créé une base de vulnérabilités librement accessible et je me forme en continu sur des plateformes comme TryHackMe. Mon objectif ? Démocratiser la cybersécurité et permettre à chacun de mieux comprendre les enjeux.

J'ai une solide expertise dans la conception et le déploiement de solutions sécurisées, ainsi qu'une expérience éprouvée dans la gestion de projets complexes. Maîtrisant un large éventail de technologies (Python, Go, Java, Docker, Kubernetes, etc.), je suis convaincu que la sécurité doit être intégrée dès le début du cycle de développement.

Le projet NoHackMe vous permet d'effectuer une veille Cyber, vous permet de découvrir le monde de la Cybersécurité ainsi qu'une section formation Cyber

Soutenez No Hack Me sur Tipeee