Intégrez 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 de Google SecOps pour prendre en charge les cas d'utilisation suivants :
- Gérer les contrôles d'accès: Créer et mettre à jour les configurations IAM directement à partir d'un playbook d'investigation.
- Définitions de la politique d'audit: Liste des informations sur les politiques disponibles pour suivre les mutations d'accès.
- Maintenir les attributs de la liste des détecteurs: Ajouter des entités et des indicateurs à des listes d'URL de détecteurs spécifiques pour la surveillance.
Avant de commencer
Avant de configurer l'intégration Cloud Identity dans la plateforme Google SecOps, vérifiez que vous avez configuré votre environnement en suivant les étapes suivantes :
- Créez un compte de service.
- Déléguez l'autorité à l'échelle du domaine à votre compte de service
- Activez les API requises pour votre projet.
- 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 : Identité de charge de travail (recommandé) : Cette méthode utilise des jetons d’accès temporaires de courte durée utilisant l’emprunt d’identité du compte de service, éliminant ainsi le besoin 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 :
Dans le Google Cloud console, allez àGestion des identités et des accès (IAM) et administration> Comptes de service et sélectionnez votre projet.
Cliquez sur Créer un compte de service.
Fournissez un nom et une description et cliquez sur Terminé pour créer le compte.
Déléguez l'autorité à l'échelle du domaine à votre compte de service
- 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.
- Dans le volet Délégation au niveau du domaine, sélectionnez Gérer la délégation au niveau du domaine.
- Cliquez sur Ajouter.
- Dans le champ ID client, saisissez l'ID client obtenu dans la section Créer un compte de service.
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.orgunitCliquez 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
Dans la console Google Cloud , accédez à API et services.
Cliquez sur Activer les API et les services.
Recherchez et activez les API suivantes pour votre projet :
- SDK Admin (
admin.googleapis.com) - API Cloud Identity (
cloudidentity.googleapis.com)
- SDK Admin (
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 :
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édez à l'onglet Clés.
Cliquez sur Ajouter une clé.
Sélectionnez Créer une clé.
Pour le type de clé, sélectionnez JSON, puis cliquez sur Créer. Le fichier JSON est téléchargé sur votre ordinateur.
Copiez l'intégralité du contenu de ce fichier et collez-le dans
User's Service Account JSONlors de la configuration de l'intégration.
Configurer les autorisations d'identité cloud
Utilisez la procédure suivante pour définir les privilèges administratifs requis par l'intégration pour gérer les ressources de l'organisation :
- Dans la console d'administration Google, accédez à Compte > Rôles d'administrateur.
- Cliquez sur Créer un rôle.
- Saisissez un nom pour le nouveau rôle personnalisé et cliquez sur Continuer.
- Sur la page Select Privileges, accédez à la section des privilèges Admin API.
- Sous Privilèges API d'administration, sélectionnez les privilèges suivants :
Organization UnitsUsersGroups
- Cliquez sur Continuer.
- Pour créer un nouveau rôle personnalisé, cliquez sur Créer un rôle.
Attribuer le rôle personnalisé à un utilisateur
Utilisez la procédure suivante pour attribuer le rôle à un compte utilisateur, autorisant ainsi l'intégration à effectuer des actions en votre nom :
- Pour créer un nouvel utilisateur, rendez-vous sur la page Directory > Users.
- Ajouter un nouvel utilisateur associé au compte de service.
- Ouvrir les paramètres du nouvel utilisateur. L'onglet du compte utilisateur s'ouvre.
- Cliquez sur Rôles d'administrateur et autorisations.
- Cliquez sur modifier Modifier.
- Sélectionnez le rôle personnalisé que vous avez créé.
- Pour le rôle sélectionné, basculez le bouton sur Attribué.
Configurer les identifiants Workload Identity
Choisissez cette méthode ou la méthode de clé JSON pour authentifier l'intégration. L'Workload Identity est l'approche recommandée et la plus sécurisée car elle utilise des jetons d'accès temporaires et de courte durée grâce à l'usurpation d'identité du compte de service, minimisant ainsi les risques d'exposition des informations d'identification secrètes 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 en toute sécurité aux ressources de Google Cloud.
- Dans Google SecOps, accédez à Plate-forme de contenu > Intégrations de réponse.
- Sélectionnez l'intégration que vous configurez et saisissez l'adresse e-mail de votre compte de service dans le champ
Workload Identity Email. - Saisissez l'adresse e-mail que vous souhaitez que l'intégration imite dans le champ
Delegated Email. - Cliquez sur Enregistrer > Tester. Le test devrait échouer.
Cliquez sur close_small à droite de Test et recherchez le message d'erreur pour l'adresse e-mail d'identification commençant par
gke-init-python@...ousoar-python@....Copiez cette adresse e-mail unique et collez-la dans
Workload Identity Emaillors 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 l'usurpation d'identité du compte de service, permettant à la plateforme de générer des jetons éphémères et d'agir en votre nom sans avoir besoin de clés statiques.
- Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.
- Sélectionnez le compte de service cible, puis accédez à Autorisations > Accorder l'accès.
- Collez l'adresse e-mail unique dans le champ Nouveaux comptes principaux.
- 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é de 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.
Vous pourrez apporter des modifications ultérieurement, si nécessaire. 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 dans 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é |
|---|---|
| Pièce jointe du mur des cas | 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 |
|---|---|
|
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é |
|---|---|
| Pièce jointe du mur des cas | 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 Ajouter une entité à la liste d'URL du détecteur peut renvoyer les messages de sortie suivants :
| Message de sortie | Description du message |
|---|---|
|
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 du résultat du script lors de l'utilisation de l'action Ajouter une entité à la liste d'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 stratégie pour créer une nouvelle entrée de stratégie dans Cloud Identity.
Cette action ne s'applique pas aux entités Google SecOps.
Entrées d'action
L'action Créer une politique requiert les paramètres suivants :
| Paramètre | Description |
|---|---|
Policy Entry |
Obligatoire. L'objet JSON représentant la configuration de l'entrée de stratégie à ajouter. |
Exemples de configurations de politiques
Les exemples de configuration suivants illustrent 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 DLP
{
"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 politique fournit les résultats suivants :
| Type de sortie de l'action | Disponibilité |
|---|---|
| Pièce jointe du mur des cas | 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 illustre le résultat JSON obtenu lors de l'utilisation de l'action Créer une politique :
{
"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 Créer une stratégie peut renvoyer les messages de sortie suivants :
| Message de sortie | Description du message |
|---|---|
|
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 du résultat du script lors de l'utilisation de l'action Créer une stratégie :
| 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 une liste des politiques existantes de Cloud Identity.
Cette action ne s'applique pas aux entités Google SecOps.
Entrées d'action
L'action List Policies requiert les paramètres suivants :
| Paramètre | Description |
|---|---|
Organization Unit Name |
Obligatoire. Le nom de l'unité organisationnelle à partir de laquelle énumérer les politiques. |
Policy Type Filter |
Facultatif. Le type de politique utilisée pour filtrer la liste. Valeurs possibles : La valeur par défaut est |
Settings Type Filter |
Facultatif. Le modèle d'expression régulière utilisé pour filtrer les politiques en fonction de leur type de paramètres. Ce filtre est appliqué directement à la requête API. |
Settings Display Name Filter |
Facultatif. Liste de noms d'affichage séparés par des virgules, utilisés pour filtrer les paramètres de stratégie. |
Max Results To Return |
Facultatif. Nombre maximal de résultats à renvoyer pour cette action. La valeur par défaut est |
Sorties d'action
L'action List Policies fournit les résultats suivants :
| Type de sortie de l'action | Disponibilité |
|---|---|
| Pièce jointe du mur des cas | 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 illustre le résultat JSON obtenu lors de l'utilisation de l'action List Policies :
[
{
"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 peut renvoyer les messages de sortie suivants :
| Message de sortie | Description du message |
|---|---|
|
|
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 du résultat du script lors de l'utilisation de l'action List Policies :
| Nom du résultat du script | Valeur |
|---|---|
is_success |
true ou false |
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.