Intégrer Cloud Identity à Google SecOps

Ce document explique comment intégrer Cloud Identity à Google Security Operations.

Cas d'utilisation

L'intégration Cloud Identity utilise les fonctionnalités Google SecOps pour prendre en charge les cas d'utilisation suivants :

  • Gérer les contrôles d'accès : créez et mettez à jour les configurations IAM directement à partir d'un playbook d'investigation.
  • Définitions des règles d'audit : liste des informations sur les règles disponibles pour suivre les mutations d'accès.
  • Gérer les attributs de la liste des détecteurs : ajoutez des entités et des indicateurs à des listes d'URL de détecteurs spécifiques à des fins de surveillance.

Avant de commencer

Avant de configurer l'intégration Cloud Identity dans la plate-forme Google SecOps, vérifiez que vous avez configuré votre environnement en procédant comme suit :

  1. Créez un compte de service.
  2. Déléguer l'autorité au niveau du domaine à votre compte de service
  3. Activez les API requises pour votre projet.
  4. Choisissez et configurez l'une des méthodes d'authentification suivantes :
    • Option 1 : clé JSON : cette méthode repose sur un fichier de clé secrète statique et de longue durée. N'utilisez cette méthode que si Workload Identity n'est pas disponible dans votre environnement.
    • Option 2 : Workload Identity (recommandée) : cette méthode utilise des jetons d'accès temporaires de courte durée grâce à l'emprunt d'identité d'un compte de service, ce qui élimine la nécessité de stocker des secrets.

Créer un compte de service

Pour créer un compte de service pour l'intégration, procédez comme suit :

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez votre projet.

    Accéder à la page "Comptes de service"

  2. Cliquez sur Créer un compte de service.

  3. Saisissez un nom et une description, puis cliquez sur OK pour créer le compte.

Déléguer l'autorité au niveau du domaine à votre compte de service

  1. Dans la console d'administration Google de votre domaine, accédez à  Menu principal > Sécurité > Contrôle des accès et des données > Commandes des API.
  2. Dans le volet Délégation au niveau du domaine, sélectionnez Gérer la délégation au niveau du domaine.
  3. Cliquez sur Ajouter.
  4. Dans le champ ID client, saisissez l'ID client obtenu dans la section Créer un compte de service.
  5. Dans le champ Champs d'application OAuth, saisissez la liste des champs d'application requis pour votre application, séparés par une virgule :

    https://www.googleapis.com/auth/cloud-platform,
    https://www.googleapis.com/auth/cloud-identity.policies,
    https://www.googleapis.com/auth/admin.directory.orgunit
    
  6. Cliquez sur Autoriser.

Le compte de service est désormais autorisé à accéder aux données de votre domaine à l'aide des champs d'application spécifiés.

Activer les API requises pour votre projet

  1. Dans la console Google Cloud , accédez à API et services.

    Accéder aux API et services

  2. Cliquez sur Activer les API et les services.

  3. Recherchez et activez les API suivantes pour votre projet :

    • API SDK Admin (admin.googleapis.com)
    • API Cloud Identity (cloudidentity.googleapis.com)

Configurer une clé JSON

Vous pouvez authentifier l'intégration à l'aide d'un fichier de clé JSON statique ou de la fédération d'identité de charge de travail. Pour maximiser la sécurité de votre environnement, utilisez la méthode Workload Identity. N'utilisez la méthode de clé JSON que si Workload Identity n'est pas compatible avec votre infrastructure, car les clés statiques nécessitent une rotation manuelle et augmentent les risques d'exposition des identifiants.

Pour générer le fichier de clé JSON requis pour authentifier l'intégration, procédez comme suit :

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez le compte de service que vous avez créé.

    Accéder à la page "Comptes de service"

  2. Accédez à l'onglet Clés.

  3. Cliquez sur Ajouter une clé.

  4. Sélectionnez Créer une clé.

  5. Pour le type de clé, sélectionnez JSON, puis cliquez sur Créer. Le fichier JSON est téléchargé sur votre ordinateur.

  6. Copiez l'intégralité du contenu de ce fichier et collez-le dans User's Service Account JSON lors de la configuration de l'intégration.

Configurer les autorisations Cloud Identity

Suivez la procédure ci-dessous pour définir les droits d'administration dont l'intégration a besoin pour gérer les ressources de l'organisation :

  1. Dans la console d'administration Google, accédez à Compte > Rôles d'administrateur.
  2. Cliquez sur Créer un rôle.
  3. Attribuez un nom au nouveau rôle personnalisé, puis cliquez sur Continuer.
  4. Sur la page Sélectionner les droits d'accès, accédez à la section des droits d'accès API Admin.
  5. Sous Droits pour l'API Admin, sélectionnez les droits suivants :
    • Organization Units
    • Users
    • Groups
  6. Cliquez sur Continuer.
  7. Pour créer un rôle personnalisé, cliquez sur Créer un rôle.
Attribuer le rôle personnalisé à un utilisateur

Suivez la procédure ci-dessous pour attribuer le rôle à un compte utilisateur, en autorisant l'intégration à effectuer des actions en votre nom :

  1. Pour créer un nouvel utilisateur, accédez à la page Annuaire > Utilisateurs.
  2. Ajoutez un nouvel utilisateur associé au compte de service.
  3. Ouvrez les paramètres du nouvel utilisateur. L'onglet du compte utilisateur s'ouvre.
  4. Cliquez sur Rôles d'administrateur et autorisations.
  5. Cliquez sur Modifier Modifier.
  6. Sélectionnez le rôle personnalisé que vous avez créé.
  7. Pour le rôle sélectionné, activez l'option Attribué.

Configurer les identifiants Workload Identity

Choisissez cette méthode ou la méthode de clé JSON pour authentifier l'intégration. Workload Identity est l'approche recommandée et la plus sécurisée, car elle utilise des jetons d'accès temporaires et éphémères grâce à l'emprunt d'identité d'un compte de service. Cela permet de minimiser les risques d'exposition des identifiants secrets de longue durée.

Identifier l'identité unique de l'instance

Pour utiliser Workload Identity, vous devez autoriser votre instance Google SecOps à emprunter l'identité de votre compte de service. Cette étape permet à l'instance d'accéder de manière sécurisée aux ressources Google Cloud.

  1. Dans Google SecOps, accédez à Content Hub > Intégrations de réponse.
  2. Sélectionnez l'intégration que vous configurez, puis saisissez l'adresse e-mail de votre compte de service dans le champ Workload Identity Email.
  3. Saisissez l'adresse e-mail que l'intégration doit emprunter dans le champ Delegated Email.
  4. Cliquez sur Enregistrer > Tester. Le test devrait échouer.
  5. Cliquez sur close_small à droite de Tester, puis recherchez le message d'erreur pour l'adresse e-mail de l'identité commençant par gke-init-python@... ou soar-python@....

    Copiez cette adresse e-mail unique et collez-la dans Workload Identity Email lors de la configuration de l'intégration.

Autoriser l'identité de l'instance dans Google Cloud

Une fois que vous avez récupéré l'identité unique de votre instance Google SecOps, vous devez l'autoriser à accéder à vos ressources Google Cloud. Cette étape permet d'emprunter l'identité d'un compte de service, ce qui permet à la plate-forme de générer des jetons éphémères et d'agir en votre nom sans avoir besoin de clés statiques.

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.
  2. Sélectionnez le compte de service cible, puis accédez à Autorisations > Accorder l'accès.
  3. Collez l'adresse e-mail unique dans le champ Nouveaux comptes principaux.
  4. Attribuez le rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator).

Paramètres d'intégration

L'intégration Cloud Identity nécessite les paramètres suivants :

Paramètre Description
Service Account JSON File Content

Facultatif.

Contenu du fichier JSON de clé de compte de service.

Vous pouvez configurer ce paramètre ou Adresse e-mail Workload Identity. Pour utiliser cette méthode, collez l'intégralité de la chaîne JSON du fichier de clé téléchargé lors de la création du compte de service.

Workload Identity Email

Facultatif.

Adresse e-mail du client de votre compte de service.

Vous pouvez configurer ce paramètre ou Contenu du fichier JSON du compte de service.

Pour utiliser cette méthode d'emprunt d'identité d'un compte de service, vous devez attribuer le rôle Créateur de jetons du compte de service à votre compte de service Google SecOps.

Delegated Email

Obligatoire.

Adresse e-mail utilisée par l'intégration pour effectuer des actions.

Assurez-vous que ce compte dispose des autorisations déléguées appropriées dans votre environnement pour exécuter les tâches d'intégration requises.

Verify SSL

Facultatif.

Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion au serveur Cloud Identity.

Cette option est activée par défaut.

Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Si nécessaire, vous pourrez apporter des modifications ultérieurement. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis Votre bureau et Effectuer une action manuelle.

Ping

Utilisez l'action Ping pour tester la connectivité à Cloud Identity.

Cette action ne s'applique pas aux entités Google SecOps.

Entrées d'action

Aucun paramètre d'entrée n'est requis pour cette action.

Sorties d'action

L'action Ping fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Fixation murale du boîtier Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Messages de sortie Disponible
Résultat du script Disponible
Messages de sortie

L'action Ping peut renvoyer les messages de résultat suivants :

Message de sortie Description du message

Successfully connected to the Cloud Identity server with the provided connection parameters!

L'action a réussi.
Failed to connect to the Cloud Identity server! Error is ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant répertorie la valeur du résultat du script lorsque vous utilisez l'action Ping :

Nom du résultat du script Valeur
is_success true ou false

Ajouter une entité à la liste d'URL du détecteur

Utilisez l'action Ajouter une entité à la liste d'URL du détecteur pour ajouter des entités à la liste de détection des règles Cloud Identity.

Cette action s'exécute sur les entités Google SecOps suivantes :

  • URL
  • Domaine

Entrées d'action

L'action Ajouter une entité à la liste d'URL du détecteur nécessite les paramètres suivants :

Paramètre Description
Detector Policy ID

Obligatoire.

Identifiant unique de la règle de détecteur à mettre à jour.

URL

Facultatif.

Liste d'URL séparées par une virgule à ajouter à la liste des détecteurs.

Domain

Facultatif.

Liste de domaines à ajouter à la liste des détecteurs, séparés par une virgule.

Sorties d'action

L'action Ajouter une entité à la liste d'URL du détecteur fournit les sorties suivantes :

Type de sortie de l'action Disponibilité
Fixation murale du boîtier Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Add Entity To Detector URL List (Ajouter une entité à la liste des URL du détecteur) :

{
 "type": "ADMIN",
 "customer": "customers/<CUSTOMER_ID>",
 "policyQuery": {
   "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
   "orgUnit": "orgUnits/<ORG_UNIT_ID>"
 },
 "setting": {
   "type": "settings/detector.url_list",
   "value": {
     "displayName": "test_url_list_detector",
     "description": "test_url_list_detector desc",
     "urlList": {
       "urls": [
         "[http://example.com](http://example.com)",
         "example.org",
         "bad_entity.com"
       ]
     }
   }
 }
}
Messages de sortie

L'action Add Entity To Detector URL List (Ajouter une entité à la liste d'URL du détecteur) peut renvoyer les messages de sortie suivants :

Message de sortie Description du message

Successfully blocked the following URLs using Cloud Identity: ENTITY_IDENTIFIER

L'action a réussi.
Error executing action "Add Entity To Detector URL List". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Add Entity To Detector URL List (Ajouter une entité à la liste des URL du détecteur) :

Nom du résultat du script Valeur
is_success true ou false

Créer une règle

Utilisez l'action Créer une règle pour créer une entrée de règle dans Cloud Identity.

Cette action ne s'applique pas aux entités Google SecOps.

Entrées d'action

L'action Create Policy (Créer une règle) nécessite les paramètres suivants :

Paramètre Description
Policy Entry

Obligatoire.

Objet JSON représentant la configuration de l'entrée de règle à ajouter.

Exemples de configurations de règles

Les exemples de configurations suivants montrent comment structurer le paramètre Policy Entry :

Exemple 1 : Détecteur de liste d'URL

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "orgUnit": "orgUnits/<ORG_UNIT_ID>",
    "sortOrder": 1
  },
  "setting": {
    "type": "settings/detector.url_list",
    "value": {
      "displayName": "BlockUrlDetector",
      "description": "Blocked urls for security reasons",
      "urlList": {
        "urls": [
          "www.medium.com",
          "medium.com",
          "wikipedia.org"
        ]
      }
    }
  }
}

Exemple 2 : Règle de protection contre la perte de données

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
    "orgUnit": "orgUnits/<ORG_UNIT_ID>",
    "sortOrder": 1
  },
  "setting": {
    "type": "settings/rule.dlp",
    "value": {
      "display_name": "TestRule",
      "description": "GoogleSecOps URL Blocklist Rule. Keeps state of blocked URLs. Manual modification is not advised",
      "triggers": [
        "google.workspace.chrome.url.v1.navigation"
      ],
      "condition": {
        "contentCondition": "url.matches_url_list('policies/<DETECTOR_POLICY_ID>')"
      },
      "action": {
        "chromeAction": {
          "blockContent": {
            "actionParams": {
              "customEndUserMessage": {
                "unsafeHtmlMessageBody": "(EQ)🚫 BlockedAccess denied."
              }
            }
          }
        }
      },
      "state": "ACTIVE"
    }
  }
}

Sorties d'action

L'action Créer une règle fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Fixation murale du boîtier Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Créer une règle :

{
  "type": "ADMIN",
  "customer": "customers/<CUSTOMER_ID>",
  "policyQuery": {
    "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('<ORG_UNIT_ID>'))",
    "orgUnit": "orgUnits/<ORG_UNIT_ID>"
  },
  "setting": {
    "type": "settings/rule.dlp",
    "value": {
      "display_name": "test_create_rule",
      "triggers": [
        "google.workspace.chrome.file.v1.download"
      ],
      "state": "ACTIVE",
      "action": {
        "chromeAction": {
          "warnUser": {}
        }
      }
    }
  }
}
Messages de sortie

L'action Create Policy (Créer une règle) peut renvoyer les messages de résultat suivants :

Message de sortie Description du message

Successfully added a new policy in Cloud Identity.

L'action a réussi.
Error executing action "Create Policy". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Créer une règle :

Nom du résultat du script Valeur
is_success true ou false

Répertorier les règles

Utilisez l'action List Policies pour récupérer la liste des règles existantes dans Cloud Identity.

Cette action ne s'applique pas aux entités Google SecOps.

Entrées d'action

L'action List Policies nécessite les paramètres suivants :

Paramètre Description
Organization Unit Name

Obligatoire.

Nom de l'unité organisationnelle à partir de laquelle lister les règles.

Policy Type Filter

Facultatif.

Type de règle utilisé pour filtrer la liste. Valeurs possibles : Admin, System ou Both.

La valeur par défaut est Both.

Settings Type Filter

Facultatif.

Modèle d'expression régulière utilisé pour filtrer les règles en fonction de leur type de paramètre. Ce filtre est appliqué directement à la requête API.

Settings Display Name Filter

Facultatif.

Liste de noms à afficher, séparés par une virgule, utilisée pour filtrer les paramètres des règles.

Max Results To Return

Facultatif.

Nombre maximal de résultats à renvoyer pour l'exécution de l'action. La valeur par défaut est 50. La valeur maximale est de 100.

Sorties d'action

L'action Lister les règles fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Fixation murale du boîtier Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action List Policies (Lister les règles) :

[
  {
    "name": "policies/123",
    "customer": "customers/123",
    "type": "ADMIN",
    "policy_query": {
      "query": "entity.org_units.exists(org_unit, org_unit.org_unit_id == orgUnitId('12345'))",
      "orgUnit": "orgUnits/12345",
      "sortOrder": 1
    },
    "setting": {
      "type": "settings/rule.dlp",
      "value": {
        "display_name": "Test DLP Rule"
      }
    }
  }
]
Messages de sortie

L'action List Policies (Lister les règles) peut renvoyer les messages de sortie suivants :

Message de sortie Description du message

Successfully listed policies based on the provided criteria in Cloud Identity.

No policies found based on the provided criteria in Cloud Identity.

L'action a réussi.
Error executing action "List Policies". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Lister les règles :

Nom du résultat du script Valeur
is_success true ou false

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.