Google Cloud Recomendador

En este documento se proporcionan directrices para ayudarle a configurar e integrar Google Cloud Recommender con Google Security Operations.

Requisitos previos

Asegúrate de completar todos los pasos necesarios antes de configurar la integración.

Crear y configurar el rol de gestión de identidades y accesos

  1. En la Google Cloud consola, ve a la página Roles de gestión de identidades y accesos.

    Ir a Roles de gestión de identidades y accesos

  2. Haz clic en Crear rol para crear un rol personalizado con los permisos necesarios para la integración.

  3. Para crear un rol personalizado, indica el título, la descripción y un ID único.

  4. En Fase de lanzamiento del rol, selecciona Disponibilidad general.

  5. Añade los siguientes permisos al rol creado:

    • 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. Haz clic en Crear.

Crear una cuenta de servicio

  1. Para crear una cuenta de servicio, sigue el procedimiento para crear una cuenta de servicio.

  2. Una vez que hayas creado una cuenta de servicio, descárgala como archivo JSON. Debe proporcionar el contenido de un archivo JSON descargado al configurar los parámetros de integración.

Integrar Google Cloud Recommender con Google SecOps

Para obtener instrucciones detalladas sobre cómo configurar una integración en Google SecOps SOAR, consulta el artículo Configurar integraciones.

Entradas de integración

Para configurar la integración, usa los siguientes parámetros:

Parámetros
API Root Obligatorio

La raíz de la API del servicio Google Cloud Recommender.

El valor predeterminado es https://recommender.googleapis.com/v1/.

Organization ID Optional

El ID de la organización que se debe usar con la integración de Google Cloud Recommender.

User's Service Account Obligatorio

El contenido de la cuenta de servicio de Google Cloud Recommender.

Asegúrate de proporcionar todo el contenido del archivo JSON de la cuenta de servicio que has descargado al crearla.

Verify SSL Optional

Si se marca, el parámetro verifica si el certificado SSL para conectarse al servidor de Google Cloud Recomendaciones es válido.

Esta opción está marcada de forma predeterminada.

Acciones

Aplicar recomendaciones de gestión de identidades y accesos

Aplica las recomendaciones de gestión de identidades y accesos en función de la entrada proporcionada.

Esta acción solo funciona con las google.iam.policy.Recommender recomendaciones.

Entidades

La acción no se ejecuta en entidades.

Entradas de acciones

Para configurar la acción, usa los siguientes parámetros:

Parámetros
IAM Recommendations JSON Obligatorio

El resultado en JSON de la recomendación.

El resultado en JSON se puede proporcionar como marcador de posición desde las acciones List recommendations o Get recommendation.

Resultados de la acción

Tipo de salida de la acción
Adjunto del panel de casos N/A
Enlace del panel de casos N/A
Tabla del panel de casos N/A
Tabla de enriquecimiento N/A
Información valiosa sobre la entidad N/A
Insight N/A
Resultado de JSON Disponible
Widget predefinido N/A
Resultado de la secuencia de comandos Disponible
Resultado de la secuencia de comandos
Nombre del resultado del script Valor
is_success Verdadero/Falso
Resultado de 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": []
}
Panel de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje resultante Descripción del mensaje
Successfully applied provided IAM recommendations. La acción se ha realizado correctamente.
Successfully applied provided IAM recommendation, but some of the recommendations were not applied. La acción se ha realizado correctamente.
No provided IAM recommendations were applied. No se ha podido aplicar la recomendación.
Error executing action ACTION_NAME. La acción ha devuelto un error.

Recibir recomendaciones

Obtiene una recomendación específica del servicio Google Cloud Recommender

Entidades

La acción no se ejecuta en entidades.

Entradas de acciones

Para configurar la acción, usa los siguientes parámetros:

Parámetros
Recommendation name Obligatorio

Especifica el nombre de la recomendación que se va a devolver.

La acción acepta varios valores como una cadena separada por comas.

Ejemplo de la entrada esperada:

    projects/projectname/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0f262740-bf4a-4c3d-9573-0da3345cf3f7
    

Resultados de la acción

Tipo de salida de la acción
Adjunto del panel de casos N/A
Enlace del panel de casos N/A
Tabla del panel de casos N/A
Tabla de enriquecimiento N/A
Información valiosa sobre la entidad N/A
Insight N/A
Resultado de JSON Disponible
Widget predefinido N/A
Resultado de la secuencia de comandos Disponible
Resultado de la secuencia de comandos
Nombre del resultado del script Valor
is_success Verdadero/Falso
Resultado de 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"
  }
]
Panel de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje resultante Descripción del mensaje
Successfully found recommendation in the Google Cloud Recommender service. La acción se ha realizado correctamente.
No recommendations were found in the Google Cloud Recommender service. Los datos no están disponibles.
Error executing action ACTION_NAME. La acción ha devuelto un error.

Mostrar recomendaciones

Lista de recomendaciones disponibles en el servicio Google Cloud Recomendador.

Entidades

La acción no se ejecuta en entidades.

Entradas de acciones

Para configurar la acción, usa los siguientes parámetros:

Parámetros
Recommendation Filter Optional

Especifica el filtro para obtener las recomendaciones.

El parámetro debe ser una cadena con uno de los siguientes formatos:

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

Si no se proporciona ningún valor, la acción obtiene el ID del proyecto de la cuenta de servicio configurada.

Recommendation Location Obligatorio

Especifica la Google Cloud ubicación para obtener recomendaciones.

El valor predeterminado es global (ADMITE VALORES NULL).

Recommendation State Optional

Especifica el estado de la recomendación que se va a devolver.

El valor predeterminado es Not Specified (ADMITE VALORES NULL).

Los valores posibles son:

  • Not Specified
  • Active
  • Dismissed
Recommendation Priority Optional

Especifica la prioridad de una recomendación que se va a devolver. Se pueden especificar varios valores como una cadena separada por comas.

Recommender Subtype Optional

Especifica el subtipo de recomendador devuelto.

El valor predeterminado es Not Specified (ADMITE VALORES NULL).

Los valores posibles son:

  • Not Specified
  • REMOVE_ROLE
  • REPLACE_ROLE
Max Records To Return Optional

Especifica cuántos registros se deben devolver. Si no se proporciona ningún valor, la acción devuelve 50 registros de forma predeterminada.

Resultados de la acción

Tipo de salida de la acción
Adjunto del panel de casos N/A
Enlace del panel de casos N/A
Tabla del panel de casos Disponible
Tabla de enriquecimiento N/A
Información valiosa sobre la entidad N/A
Insight N/A
Resultado de JSON Disponible
Widget predefinido N/A
Resultado de la secuencia de comandos Disponible
Resultado de la secuencia de comandos
Nombre del resultado del script Valor
is_success Verdadero/Falso
Resultado de 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"
  }
]
Panel de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje resultante Descripción del mensaje
Successfully found recommendations for the provided criteria in the Google Cloud Recommender service. La acción se ha realizado correctamente.
No recommendations were found for the provided criteria in the Google Cloud Recommender service. No hay datos disponibles.
Error executing action ACTION_NAME. La acción ha devuelto un error.

La acción proporciona la siguiente tabla del panel de casos:

Recomendaciones disponibles
Columnas
  • Nombre
  • Descripción
  • Categoría
  • Subtipo de recomendación
  • Prioridad
  • Estado
  • Hora de la última actualización

Ping

Prueba la conectividad con el servicio Google Cloud Recommender con los parámetros proporcionados en la página de configuración de la integración de la pestaña Google SecOps Marketplace.

Entidades

La acción no se ejecuta en entidades.

Entradas de acciones

N/A

Resultados de la acción

Tipo de salida de la acción
Adjunto del panel de casos N/A
Enlace del panel de casos N/A
Tabla del panel de casos N/A
Tabla de enriquecimiento N/A
Información valiosa sobre la entidad N/A
Insight N/A
Resultado de JSON N/A
Widget predefinido N/A
Resultado de la secuencia de comandos Disponible
Resultado de la secuencia de comandos
Nombre del resultado del script Valor
is_success Verdadero/Falso
Panel de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje resultante Descripción del mensaje
Successfully connected to the Google Cloud Recommender service with the provided connection parameters! La acción se ha realizado correctamente.
Failed to connect to the Google Cloud Recommender service! La acción ha devuelto un error.

Actualizar recomendación

Actualiza la recomendación en el Google Cloud servicio Recommender.

Entidades

La acción no se ejecuta en entidades.

Entradas de acciones

Usa los siguientes parámetros para configurar la acción:

Parámetros
Recommendation name Obligatorio

Especifica el nombre de la recomendación que se va a actualizar.

La acción acepta varios valores como una cadena separada por comas.

Ejemplo de entrada esperada: projects/projectname/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0f262740-bf4a-4c3d-9573-0da3345cf3f7

Recommendation State Optional

Especifica el estado al que debe cambiar la recomendación.

El valor predeterminado es Not Specified (ADMITE VALORES NULL).

Los valores posibles son:

  • Not Specified
  • Claimed
  • Dismissed
Recommendation Result Optional

Especifica el resultado al que debe cambiar la recomendación.

El valor predeterminado es Not Specified (ADMITE VALORES NULL).

Los valores posibles son:

  • Not Specified
  • Failed
  • Succeeded

Resultados de la acción

Tipo de salida de la acción
Adjunto del panel de casos N/A
Enlace del panel de casos N/A
Tabla del panel de casos N/A
Tabla de enriquecimiento N/A
Información valiosa sobre la entidad N/A
Insight N/A
Resultado de JSON Disponible
Widget predefinido N/A
Resultado de la secuencia de comandos Disponible
Resultado de la secuencia de comandos
Nombre del resultado del script Valor
is_success Verdadero/Falso
Resultado de 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"
  }
]
Panel de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje resultante Descripción del mensaje
Successfully updated recommendation in the Google Cloud Recommender service. La acción se ha realizado correctamente.
No recommendations were found in the Google Cloud Recommender service. Los datos no están disponibles.
Error executing action ACTION_NAME. La acción ha devuelto un error.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.