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

  1. Dans la console Google Cloud , accédez à la page Rôles IAM.

    Accéder aux rôles IAM

  2. Cliquez sur Créer un rôle pour créer un rôle personnalisé avec les autorisations requises pour l'intégration.

  3. Pour un nouveau rôle personnalisé, indiquez le titre, la description et un ID unique.

  4. Définissez l'étape de lancement du rôle sur Disponibilité générale.

  5. 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
  6. Cliquez sur Créer.

Créer un compte de service

  1. Pour créer un compte de service, suivez la procédure de création d'un compte de service.

  2. 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 https://recommender.googleapis.com/v1/.

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 :

  • PROJECTS_OR_ORGANIZATIONS/ PROJECT_OR_ORGANIZATION_NAME_OR_ID
  • //cloudresourcemanager.googleapis.com/ PROJECTS_OR_ORGANIZATIONS/ PROJECT_OR_ORGANIZATION_NAME_OR_ID

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 global.

Recommendation State Optional

Spécifie l'état de la recommandation à renvoyer.

La valeur par défaut est Not Specified.

Les valeurs possibles sont les suivantes :

  • Not Specified
  • Active
  • Dismissed
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 Not Specified.

Les valeurs possibles sont les suivantes :

  • Not Specified
  • REMOVE_ROLE
  • REPLACE_ROLE
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
  • Nom
  • Description
  • Catégorie
  • Sous-type de recommandation
  • Priorité
  • État
  • Dernière actualisation

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 : projects/projectname/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0f262740-bf4a-4c3d-9573-0da3345cf3f7

Recommendation State Optional

Spécifie l'état dans lequel la recommandation doit passer.

La valeur par défaut est Not Specified.

Les valeurs possibles sont les suivantes :

  • Not Specified
  • Claimed
  • Dismissed
Recommendation Result Optional

Spécifie le résultat de la recommandation à modifier.

La valeur par défaut est Not Specified.

Les valeurs possibles sont les suivantes :

  • Not Specified
  • Failed
  • Succeeded

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.