Google Cloud Outil de recommandation
Ce document vous aide à configurer et à intégrer Google CloudRecommender à Google Security Operations.
Prérequis
Assurez-vous d'avoir effectué toutes les étapes préalables avant de configurer l'intégration.
Créer et configurer le rôle IAM
Dans la console Google Cloud , accédez à la page Rôles IAM.
Cliquez sur Créer un rôle pour créer un rôle personnalisé avec les autorisations requises pour l'intégration.
Pour un nouveau rôle personnalisé, indiquez le titre, la description et un ID unique.
Définissez l'étape de lancement du rôle sur Disponibilité générale.
Ajoutez les autorisations suivantes au rôle créé :
iam.roles.create
iam.roles.delete
iam.roles.get
iam.roles.list
iam.roles.undelete
iam.roles.update
iam.serviceAccounts.create
iam.serviceAccounts.delete
iam.serviceAccounts.disable
iam.serviceAccounts.enable
iam.serviceAccounts.get
iam.serviceAccounts.getIamPolicy
iam.serviceAccounts.list
iam.serviceAccounts.setIamPolicy
iam.serviceAccounts.undelete
iam.serviceAccounts.update
recommender.iamPolicyInsights.get
recommender.iamPolicyInsights.list
recommender.iamPolicyLateralMovementInsights.get
recommender.iamPolicyLateralMovementInsights.list
recommender.iamPolicyRecommendations.get
recommender.iamPolicyRecommendations.list
recommender.iamPolicyRecommendations.update
recommender.iamServiceAccountInsights.get
recommender.iamServiceAccountInsights.list
recommender.locations.get
recommender.locations.list
resourcemanager.folders.get
resourcemanager.folders.getIamPolicy
resourcemanager.folders.setIamPolicy
resourcemanager.organizations.get
resourcemanager.organizations.getIamPolicy
resourcemanager.organizations.setIamPolicy
resourcemanager.projects.get
resourcemanager.projects.getIamPolicy
resourcemanager.projects.list
resourcemanager.projects.setIamPolicy
securitycenter.assets.list
securitycenter.findings.group
securitycenter.findings.list
securitycenter.findings.listFindingPropertyNames
securitycenter.findings.setMute
securitycenter.findings.setState
securitycenter.sources.get
securitycenter.sources.list
securitycenter.userinterfacemetadata.get
Cliquez sur Créer.
Créer un compte de service
Pour créer un compte de service, suivez la procédure de création d'un compte de service.
Une fois le compte de service créé, téléchargez-le sous forme de fichier JSON. Vous devez fournir le contenu d'un fichier JSON téléchargé lorsque vous configurez les paramètres d'intégration.
Intégrer le moteur de recommandations Google Cloud à Google SecOps
Pour obtenir des instructions détaillées sur la configuration d'une intégration dans Google SecOps SOAR, consultez Configurer des intégrations.
Entrées d'intégration
Pour configurer l'intégration, utilisez les paramètres suivants :
Paramètres | |
---|---|
API Root |
Obligatoire
Racine de l'API du service Recommender Google Cloud . La valeur par défaut est |
Organization ID |
Optional
ID de l'organisation à utiliser avec l'intégration Recommender. Google Cloud |
User's Service Account |
Obligatoire
Contenu du compte de service Recommender Google Cloud . Veillez à fournir l'intégralité du contenu du fichier JSON du compte de service que vous avez téléchargé lors de la création d'un compte de service. |
Verify SSL |
Optional
Si cette case est cochée, le paramètre vérifie si le certificat SSL pour la connexion au serveur de recommandation Google Cloud est valide. Cochée par défaut. |
Actions
Appliquer les recommandations IAM
Appliquez les recommandations IAM en fonction des données d'entrée fournies.
Cette action ne fonctionne qu'avec les recommandations google.iam.policy.Recommender
.
Entités
L'action ne s'applique pas aux entités.
Entrées d'action
Pour configurer l'action, utilisez les paramètres suivants :
Paramètres | |
---|---|
IAM Recommendations JSON |
Obligatoire
Résultat JSON de la recommandation. Le résultat JSON peut être fourni en tant qu'espace réservé à partir des actions Lister les recommandations ou Obtenir une recommandation. |
Sorties d'action
Type de sortie de l'action | |
---|---|
Pièce jointe au mur des cas | N/A |
Lien vers le mur des cas | N/A |
Table du mur des cas | N/A |
Table d'enrichissement | N/A |
Insight sur les entités | N/A |
Insight | N/A |
Résultat JSON | Disponible |
Widget prêt à l'emploi | N/A |
Résultat du script | Disponible |
Résultat du script
Nom du résultat du script | Valeur |
---|---|
is_success | Vrai/Faux |
Résultat JSON
{ "applied_recommendations": [ { "name": "projects/PROJECT_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/217d3019-bae5-4a52-9968-787fdd546a53", "description": "Replace the current role with a smaller role to cover the permissions needed.", "lastRefreshTime": "2023-07-28T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 610 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "add", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/-", "value": "USER_ID@example.com", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/role": "roles/compute.instanceAdmin" } }, { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "USER_ID@example.com", "/iamPolicy/bindings/*/role": "roles/compute.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "member": "user:USER_ID@example.com", "removedRole": "roles/compute.admin", "addedRoles": [ "roles/compute.instanceAdmin" ], "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "applied_by": "bulk_apply_by_automated_script-2023-08-11" } }, "etag": "\"892d57ee41baa03e\"", "recommenderSubtype": "REPLACE_ROLE", "associatedInsights": [ { "insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID" } ], "priority": "P4" }, { "name": "projects/PROJECT_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID", "description": "Replace the current role with a smaller role to cover the permissions needed.", "lastRefreshTime": "2023-07-28T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 19 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "add", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/-", "value": "user:USER_ID@example.com", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/role": "roles/storage.objectAdmin" } }, { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "user:USER_ID@example.com", "/iamPolicy/bindings/*/role": "roles/storage.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "member": "user:USER_ID@example.com", "removedRole": "roles/storage.admin", "addedRoles": [ "roles/storage.objectAdmin" ], "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "applied_by": "bulk_apply_by_automated_script-2023-08-11" } }, "etag": "\"af7635ffeb512998\"", "recommenderSubtype": "REPLACE_ROLE", "associatedInsights": [ { "insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID" } ], "priority": "P4" } ], "failed_recommendations": [] }
Mur des cas
L'action fournit les messages de sortie suivants :
Message affiché | Description du message |
---|---|
Successfully applied provided IAM recommendations. |
L'action a bien été effectuée. |
Successfully applied provided IAM recommendation, but some of the
recommendations were not applied. |
L'action a bien été effectuée. |
No provided IAM recommendations were applied. |
Échec de la recommandation. |
Error executing action ACTION_NAME. |
L'action a renvoyé une erreur. |
Obtenir une recommandation
Obtenez une recommandation spécifique du service de recommandation Google Cloud .
Entités
L'action ne s'applique pas aux entités.
Entrées d'action
Pour configurer l'action, utilisez les paramètres suivants :
Paramètres | |
---|---|
Recommendation name |
Obligatoire
Spécifie le nom de la recommandation à renvoyer. L'action accepte plusieurs valeurs sous la forme d'une chaîne séparée par des virgules. Exemple d'entrée attendue : projects/projectname/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0f262740-bf4a-4c3d-9573-0da3345cf3f7 |
Sorties d'action
Type de sortie de l'action | |
---|---|
Pièce jointe au mur des cas | N/A |
Lien vers le mur des cas | N/A |
Table du mur des cas | N/A |
Table d'enrichissement | N/A |
Insight sur les entités | N/A |
Insight | N/A |
Résultat JSON | Disponible |
Widget prêt à l'emploi | N/A |
Résultat du script | Disponible |
Résultat du script
Nom du résultat du script | Valeur |
---|---|
is_success | Vrai/Faux |
Résultat JSON
[ { "name": "name", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2023-07-28T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 68 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com", "/iamPolicy/bindings/*/role": "roles/monitoring.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "member": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com", "removedRole": "roles/monitoring.admin", "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/" } ], "priority": "P4" } ]
Mur des cas
L'action fournit les messages de sortie suivants :
Message affiché | Description du message |
---|---|
Successfully found recommendation in the Google Cloud Recommender
service. |
L'action a bien été effectuée. |
No recommendations were found in the Google Cloud Recommender
service.
|
Les données ne sont pas disponibles. |
Error executing action ACTION_NAME . |
L'action a renvoyé une erreur. |
Répertorier les recommandations
Répertorie les recommandations disponibles dans le service de recommandation Google Cloud .
Entités
L'action ne s'applique pas aux entités.
Entrées d'action
Pour configurer l'action, utilisez les paramètres suivants :
Paramètres | |
---|---|
Recommendation Filter |
Optional
Spécifie le filtre permettant d'extraire les recommandations. Le paramètre doit être une chaîne dans l'un des formats suivants :
Si aucune valeur n'est fournie, l'action récupère l'ID du projet à partir du compte de service configuré. |
Recommendation Location |
Obligatoire
Spécifie l'emplacement Google Cloud pour récupérer les recommandations. La valeur par défaut est |
Recommendation State |
Optional
Spécifie l'état de la recommandation à renvoyer. La valeur par défaut est Les valeurs possibles sont les suivantes :
|
Recommendation Priority |
Optional
Spécifie la priorité d'une recommandation à renvoyer. Vous pouvez spécifier plusieurs valeurs sous la forme d'une chaîne de caractères séparée par une virgule. |
Recommender Subtype |
Optional
Spécifie le sous-type de recommandation renvoyé. La valeur par défaut est Les valeurs possibles sont les suivantes :
|
Max Records To Return |
Optional
Spécifie le nombre d'enregistrements à renvoyer. Si aucune valeur n'est fournie, l'action renvoie 50 enregistrements par défaut. |
Sorties d'action
Type de sortie de l'action | |
---|---|
Pièce jointe au mur des cas | N/A |
Lien vers le mur des cas | N/A |
Table du mur des cas | Disponible |
Table d'enrichissement | N/A |
Insight sur les entités | N/A |
Insight | N/A |
Résultat JSON | Disponible |
Widget prêt à l'emploi | N/A |
Résultat du script | Disponible |
Résultat du script
Nom du résultat du script | Valeur |
---|---|
is_success | Vrai/Faux |
Résultat JSON
[ { "name": "name", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2023-07-27T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 68 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID", "/iamPolicy/bindings/*/role": "roles/monitoring.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/", "member": "serviceAccount:SERVICE_ACCOUNT_ID", "removedRole": "roles/monitoring.admin", "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects/i/locations/global/insightTypes/" } ], "priority": "P4" }, { "name": "name", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2023-07-27T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 5 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "user:USER_ID@example.com", "/iamPolicy/bindings/*/role": "roles/chroniclesm.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects", "member": "user:USER_ID@example.com", "removedRole": "roles/chroniclesm.admin", "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects" } ], "priority": "P4" } ]
Mur des cas
L'action fournit les messages de sortie suivants :
Message affiché | Description du message |
---|---|
Successfully found recommendations for the provided criteria in
the Google Cloud Recommender service. |
L'action a bien été effectuée. |
No recommendations were found for the provided criteria in the
Google Cloud Recommender service. |
Aucune donnée n'est disponible. |
Error executing action ACTION_NAME. |
L'action a renvoyé une erreur. |
L'action fournit le tableau suivant de la fiche :
Recommandations disponibles | |
---|---|
Colonnes |
|
Ping
Testez la connectivité au service de recommandation Google Cloud avec les paramètres fournis sur la page de configuration de l'intégration dans l'onglet "Google SecOps Marketplace".
Entités
L'action ne s'applique pas aux entités.
Entrées d'action
N/A
Sorties d'action
Type de sortie de l'action | |
---|---|
Pièce jointe au mur des cas | N/A |
Lien vers le mur des cas | N/A |
Table du mur des cas | N/A |
Table d'enrichissement | N/A |
Insight sur les entités | N/A |
Insight | N/A |
Résultat JSON | N/A |
Widget prêt à l'emploi | N/A |
Résultat du script | Disponible |
Résultat du script
Nom du résultat du script | Valeur |
---|---|
is_success | Vrai/Faux |
Mur des cas
L'action fournit les messages de sortie suivants :
Message affiché | Description du message |
---|---|
Successfully connected to the Google Cloud Recommender service
with the provided connection parameters! |
L'action a bien été effectuée. |
Failed to connect to the Google Cloud Recommender service!
|
L'action a renvoyé une erreur. |
Mettre à jour la recommandation
Mettez à jour la recommandation dans le service de recommandation Google Cloud .
Entités
L'action ne s'applique pas aux entités.
Entrées d'action
Utilisez les paramètres suivants pour configurer l'action :
Paramètres | |
---|---|
Recommendation name |
Obligatoire
Spécifie le nom de la recommandation à modifier. L'action accepte plusieurs valeurs sous la forme d'une chaîne séparée par des virgules. Exemple d'entrée attendue :
|
Recommendation State |
Optional
Spécifie l'état dans lequel la recommandation doit passer. La valeur par défaut est Les valeurs possibles sont les suivantes :
|
Recommendation Result |
Optional
Spécifie le résultat de la recommandation à modifier. La valeur par défaut est Les valeurs possibles sont les suivantes :
|
Sorties d'action
Type de sortie de l'action | |
---|---|
Pièce jointe au mur des cas | N/A |
Lien vers le mur des cas | N/A |
Table du mur des cas | N/A |
Table d'enrichissement | N/A |
Insight sur les entités | N/A |
Insight | N/A |
Résultat JSON | Disponible |
Widget prêt à l'emploi | N/A |
Résultat du script | Disponible |
Résultat du script
Nom du résultat du script | Valeur |
---|---|
is_success | Vrai/Faux |
Résultat JSON
[ { "name": "name", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2023-07-28T07:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 68 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "cloudresourcemanager.googleapis.com/Project", "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com", "/iamPolicy/bindings/*/role": "roles/monitoring.admin" } } ] } ], "overview": { "resource": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID", "member": "serviceAccount:SERVICE_ACCOUNT_ID.iam.gserviceaccount.com", "removedRole": "roles/monitoring.admin", "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/" } ], "priority": "P4" } ]
Mur des cas
L'action fournit les messages de sortie suivants :
Message affiché | Description du message |
---|---|
Successfully updated recommendation in the Google Cloud
Recommender service. |
L'action a bien été effectuée. |
No recommendations were found in the Google Cloud Recommender
service.
|
Les données ne sont pas disponibles. |
Error executing action ACTION_NAME . |
L'action a renvoyé une erreur. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.