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 :
- Créez un compte de service.
- Déléguer l'autorité au niveau 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 : 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 :
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez votre projet.
Cliquez sur Créer un compte de service.
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
- 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 :
- API SDK Admin (
admin.googleapis.com) - API Cloud Identity (
cloudidentity.googleapis.com)
- API 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 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 :
- Dans la console d'administration Google, accédez à Compte > Rôles d'administrateur.
- Cliquez sur Créer un rôle.
- Attribuez un nom au nouveau rôle personnalisé, puis cliquez sur Continuer.
- Sur la page Sélectionner les droits d'accès, accédez à la section des droits d'accès API Admin.
- Sous Droits pour l'API Admin, sélectionnez les droits suivants :
Organization UnitsUsersGroups
- Cliquez sur Continuer.
- 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 :
- Pour créer un nouvel utilisateur, accédez à la page Annuaire > Utilisateurs.
- Ajoutez un nouvel utilisateur associé au compte de service.
- Ouvrez 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é, 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.
- Dans Google SecOps, accédez à Content Hub > Intégrations de réponse.
- 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. - Saisissez l'adresse e-mail que l'intégration doit emprunter dans le champ
Delegated Email. - Cliquez sur Enregistrer > Tester. Le test devrait échouer.
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@...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 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.
- 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é 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 |
|---|---|
|
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 |
|---|---|
|
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 |
|---|---|
|
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 : La valeur par défaut est |
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 |
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 |
|---|---|
|
|
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.