Google Cloud Recomendaciones

En este documento, se proporciona orientación para ayudarte a configurar e integrar Google CloudRecommender con Google Security Operations.

Requisitos previos

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

Crea y configura el rol de IAM

  1. En la consola de Google Cloud , ve a la página Roles de IAM.

    Ir a Roles de IAM

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

  3. Para un nuevo rol personalizado, proporciona el Título, la Descripción y un ID único.

  4. Establece la etapa de lanzamiento del rol en Disponibilidad general.

  5. Agrega 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.

Crea una cuenta de servicio

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

  2. Después de crear una cuenta de servicio, descárgala como un archivo JSON. Debes proporcionar el contenido de un archivo JSON descargado cuando configures los parámetros de integración.

Integra Google Cloud Recommender con Google SecOps

Si quieres obtener instrucciones detalladas para configurar una integración en Google SecOps SOAR, consulta Configura integraciones.

Entradas de integración

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

Parámetros
API Root Obligatorio

Es la raíz de la API del servicio del Recomendador Google Cloud .

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

Organization ID Optional

Es el ID de la organización que se debe usar con la integración del recomendador Google Cloud.

User's Service Account Obligatorio

Es el contenido de la cuenta de servicio de Google Cloud Recommender.

Asegúrate de proporcionar el contenido completo del archivo JSON de la cuenta de servicio que descargaste cuando creaste una cuenta de servicio.

Verify SSL Optional

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

Está marcada de forma predeterminada.

Acciones

Aplica recomendaciones de IAM

Aplica las recomendaciones de IAM según la entrada proporcionada.

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

Entidades

La acción no se ejecuta en entidades.

Entradas de acción

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

Parámetros
IAM Recommendations JSON Obligatorio

Es el resultado en formato JSON de la recomendación.

El resultado JSON se puede proporcionar como un 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 muro de casos N/A
Vínculo al muro de casos N/A
Tabla del muro de casos N/A
Tabla de enriquecimiento N/A
Estadísticas de la entidad N/A
Estadística N/A
Resultado de JSON Disponible
Widget OOTB N/A
Resultado de secuencia de comandos Disponible
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos 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": []
}
Muro de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Successfully applied provided IAM recommendations. La acción se realizó correctamente.
Successfully applied provided IAM recommendation, but some of the recommendations were not applied. La acción se realizó correctamente.
No provided IAM recommendations were applied. No se pudo aplicar la recomendación.
Error executing action ACTION_NAME. La acción devolvió un error.

Obtener recomendación

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

Entidades

La acción no se ejecuta en entidades.

Entradas de acción

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

Parámetros
Recommendation name Obligatorio

Especifica el nombre de la recomendación que se 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 muro de casos N/A
Vínculo al muro de casos N/A
Tabla del muro de casos N/A
Tabla de enriquecimiento N/A
Estadísticas de la entidad N/A
Estadística N/A
Resultado de JSON Disponible
Widget OOTB N/A
Resultado de secuencia de comandos Disponible
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos 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"
  }
]
Muro de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Successfully found recommendation in the Google Cloud Recommender service. La acción se realizó 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 devolvió un error.

Crea una lista de recomendaciones

Enumera las recomendaciones disponibles en el servicio de Google Cloud Recomendador.

Entidades

La acción no se ejecuta en entidades.

Entradas de acción

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

Parámetros
Recommendation Filter Optional

Especifica el filtro para recuperar las recomendaciones.

El parámetro debe ser una cadena en cualquiera 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 recupera el ID del proyecto de la cuenta de servicio configurada.

Recommendation Location Obligatorio

Especifica la Google Cloud ubicación para recuperar recomendaciones.

El valor predeterminado es global.

Recommendation State Optional

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

El valor predeterminado es Not Specified.

Los valores posibles son:

  • Not Specified
  • Active
  • Dismissed
Recommendation Priority Optional

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

Recommender Subtype Optional

Especifica el subtipo del recomendador que se muestra.

El valor predeterminado es Not Specified.

Los valores posibles son:

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

Especifica la cantidad de registros que se devolverán. 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 muro de casos N/A
Vínculo al muro de casos N/A
Tabla del muro de casos Disponible
Tabla de enriquecimiento N/A
Estadísticas de la entidad N/A
Estadística N/A
Resultado de JSON Disponible
Widget OOTB N/A
Resultado de secuencia de comandos Disponible
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos 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"
  }
]
Muro de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Successfully found recommendations for the provided criteria in the Google Cloud Recommender service. La acción se realizó 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 devolvió un error.

La acción proporciona la siguiente tabla 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 de Google Cloud Recommender con los parámetros proporcionados en la página de configuración de la integración en la pestaña Google SecOps Marketplace.

Entidades

La acción no se ejecuta en entidades.

Entradas de acción

N/A

Resultados de la acción

Tipo de salida de la acción
Adjunto del muro de casos N/A
Vínculo al muro de casos N/A
Tabla del muro de casos N/A
Tabla de enriquecimiento N/A
Estadísticas de la entidad N/A
Estadística N/A
Resultado de JSON N/A
Widget OOTB N/A
Resultado de secuencia de comandos Disponible
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Valor
is_success Verdadero/Falso
Muro de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Successfully connected to the Google Cloud Recommender service with the provided connection parameters! La acción se realizó correctamente.
Failed to connect to the Google Cloud Recommender service! La acción devolvió un error.

Actualizar recomendación

Actualiza la recomendación en el servicio del recomendador Google Cloud .

Entidades

La acción no se ejecuta en entidades.

Entradas de acción

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

Parámetros
Recommendation name Obligatorio

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

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

Recommendation State Optional

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

El valor predeterminado es Not Specified.

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.

Los valores posibles son:

  • Not Specified
  • Failed
  • Succeeded

Resultados de la acción

Tipo de salida de la acción
Adjunto del muro de casos N/A
Vínculo al muro de casos N/A
Tabla del muro de casos N/A
Tabla de enriquecimiento N/A
Estadísticas de la entidad N/A
Estadística N/A
Resultado de JSON Disponible
Widget OOTB N/A
Resultado de secuencia de comandos Disponible
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos 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"
  }
]
Muro de casos

La acción proporciona los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Successfully updated recommendation in the Google Cloud Recommender service. La acción se realizó 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 devolvió un error.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.