Crea y ejecuta una evaluación

Puedes usar el Gestor de cargas de trabajo para crear y ejecutar evaluaciones automatizadas que analicen tus cargas de trabajo en función de los estándares de la industria y las prácticas recomendadas de Google Cloud . Ejecutar evaluaciones con regularidad te permite detectar desvíos de configuración y riesgos de arquitectura de forma temprana en tus proyectos, lo que te ayuda a mejorar la confiabilidad, la seguridad y el rendimiento de las cargas de trabajo.

Puedes crear y ejecutar evaluaciones de cargas de trabajo con la consola de Google Cloud o la API de Gestor de cargas de trabajo. Para obtener información conceptual sobre cómo funcionan las evaluaciones, consulta Acerca de las evaluaciones del Gestor de cargas de trabajo.

Limitaciones

El Gestor de cargas de trabajo admite la ejecución de hasta 25 evaluaciones de forma simultánea cada 1 hora por proyecto. Si un proyecto tiene más de 25 evaluaciones, limita las evaluaciones por hora a 25 o configura el programa de evaluación para que se ejecute cada 6 horas o con menos frecuencia.

Antes de comenzar

Antes de crear y ejecutar una evaluación de carga de trabajo, completa los siguientes requisitos previos:

  1. Verifica que los recursos de Google Cloud que deseas evaluar ya estén creados en el proyecto de destino. Para obtener una lista de los recursos y las reglas compatibles, consulta la Referencia de prácticas recomendadas deGoogle Cloud .

  2. Habilita las APIs necesarias en el proyecto de consumidor de Google Cloud en el que creas y ejecutas evaluaciones:

  3. Si evalúas una carga de trabajo de aplicación o base de datos, verifica que hayas configurado el agente o el operador requerido en todas las instancias de procesamiento o clústeres que ejecutan tu carga de trabajo:

  4. Opcional: Si quieres incluir reglas personalizadas además de las prácticas recomendadas integradas de Google Cloud , sube una regla de ejemplo del repositorio de GitHub de GoogleCloudPlatform/workload-manager a un bucket de Cloud Storage cuyo nivel superior contenga las carpetas /lib y /rules. Para obtener más información sobre cómo subir reglas personalizadas, consulta Escribe reglas personalizadas con Rego.

  5. Para crear y ejecutar evaluaciones, verifica que tengas los roles y permisos necesarios.

  6. Si usas la API de Gestor de cargas de trabajo para crear evaluaciones, crea de forma manual el agente de servicio de Gestor de cargas de trabajo en el proyecto de consumidor y otórgale los siguientes roles:

    • Agente de servicio del Gestor de cargas de trabajo (roles/workloadmanager.serviceAgent) en los proyectos de destino

    • Si estableces una programación de evaluación, el trabajador de Gestor de cargas de trabajo (roles/workloadmanager.worker) en el proyecto del consumidor.

    Cuando usas la consola de Google Cloud , el Gestor de cargas de trabajo crea el agente de servicio automáticamente. Para obtener más información sobre cómo configurar agentes de servicio, consulta Agentes de servicio de Gestor de cargas de trabajo.

Roles obligatorios

Para obtener los permisos que necesitas para crear y ejecutar una evaluación de cargas de trabajo, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para crear y ejecutar una evaluación de cargas de trabajo. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear y ejecutar una evaluación de la carga de trabajo:

  • Crea y ejecuta una evaluación:
    • workloadmanager.evaluations.create en el proyecto de consumidor
    • workloadmanager.evaluations.run en el proyecto de consumidor
  • Crea un agente de servicio (solo para la primera evaluación): resourcemanager.projects.setIamPolicy en los proyectos de consumidor y de destino
  • Lee los datos de Cloud Asset Inventory (reglas personalizadas y prácticas recomendadas): cloudasset.assets.searchAllResources en el proyecto del consumidor
  • Lee reglas personalizadas de un bucket de Cloud Storage (opcional):
    • storage.objects.get en el proyecto de consumidor
    • storage.objects.list en el proyecto de consumidor
  • Crea notificaciones de alerta (opcional): monitoring.timeSeries.create en el proyecto del consumidor
  • Exporta los resultados de la evaluación a BigQuery (opcional):
    • bigquery.datasets.get en el proyecto de consumidor
    • bigquery.tables.create en el proyecto de consumidor
    • bigquery.tables.updateData en el proyecto de consumidor

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para obtener más información sobre los roles en los proyectos de consumidor y de destino, consulta Roles de IAM en proyectos de consumidor y de destino para evaluaciones y Roles y permisos de IAM del Gestor de cargas de trabajo.

Crea una evaluación de la carga de trabajo

Puedes crear una evaluación de la carga de trabajo con la consola de Google Cloud o la API de Gestor de cargas de trabajo. Para crear una evaluación que use reglas personalizadas, consulta Evalúa cargas de trabajo con reglas personalizadas.

Console

Para crear una evaluación de la carga de trabajo en la consola de Google Cloud , sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Gestor de cargas de trabajo.

    Ir al Gestor de cargas de trabajo

  2. Selecciona el proyecto de consumidor de Google Cloud en el que quieres almacenar y ejecutar la evaluación.

  3. Si se te solicita, haz clic en Habilitar para habilitar la API necesaria para el Gestor de cargas de trabajo.

  4. Haz clic en Nueva evaluación.

  5. En el panel Nombre y reglas, configura los detalles de la evaluación y selecciona las reglas que quieras evaluar:

    1. En Nombre de la evaluación, ingresa un nombre para la evaluación de la carga de trabajo.

    2. Opcional: En Descripción, ingresa una descripción para la evaluación de la carga de trabajo.

    3. En el campo Tipo de carga de trabajo, selecciona uno de los siguientes tipos de cargas de trabajo compatibles:

      • SAP

      • SQL Server

      • MySQL

      • Redis

      • OpenShift

      • Personalizado

      Cuando seleccionas Personalizado, puedes evaluar tus cargas de trabajo en función de las prácticas recomendadas deGoogle Cloud o de las reglas personalizadas almacenadas en Cloud Storage.

    4. En la Tabla de reglas, selecciona las reglas de prácticas recomendadas que deseas incluir en la evaluación de la carga de trabajo. Para obtener más información sobre cada regla, consulta la Referencia de prácticas recomendadas deGoogle Cloud .

  6. Haz clic en Continuar.

  7. En el panel Alcance y filtros, especifica los proyectos de destino y los filtros de recursos para la evaluación:

    1. En la sección Alcance de la evaluación, para agregar los proyectos de destino que contienen los recursos que deseas evaluar, haz clic en Explorar proyectos.

    2. Opcional: Para compartir los hallazgos de las reglas en los proyectos de destino, selecciona la casilla de verificación Compartir hallazgos. Para obtener más información, consulta Comparte los hallazgos de la evaluación.

    3. Opcional: En la sección Aplicar filtros a los recursos, para seleccionar recursos específicos de los proyectos de destino, haz clic en Agregar filtro y, luego, usa cualquiera de los siguientes tipos de filtros:

      • Cuenta de servicio: Filtra las instancias de Compute Engine por su cuenta de servicio adjunta.

      • Etiqueta: Filtra los recursos por pares clave-valor de etiqueta.

      • Nombre: Filtra los recursos por patrón de ID de recurso.

      Varios filtros dentro del mismo tipo de filtro usan la lógica OR. Los filtros de diferentes tipos usan la lógica AND.

    4. Si se te solicita, selecciona la región en la que deseas que el Gestor de cargas de trabajo almacene los datos de evaluación.

  8. Haz clic en Continuar.

  9. En el panel Frecuencia y notificación, configura el programa de evaluación, el destino de exportación y las notificaciones de alertas:

    1. En la sección Programación, selecciona la frecuencia con la que deseas que se ejecute la evaluación.

    2. Opcional: Para exportar los resultados de la evaluación a un conjunto de datos regional de BigQuery en la misma región que la evaluación, selecciona Guardar en el conjunto de datos de BigQuery y especifica el conjunto de datos. Para crear una tabla separada para la evaluación, selecciona Crear una nueva tabla de resultados para esta evaluación.

    3. Opcional: En la sección Notificación, selecciona los eventos para los que deseas recibir notificaciones de alerta y, luego, selecciona tus canales de notificaciones.

  10. Haz clic en Continuar.

  11. En el panel Revisión, revisa la configuración de la evaluación de la carga de trabajo. Para modificar cualquier parámetro de configuración, haz clic en el nombre del panel en el menú de navegación de la izquierda.

  12. Haz clic en Crear.

REST

Para crear una evaluación de la carga de trabajo con la API de Workload Manager, sigue estos pasos:

  1. Opcional: Para recuperar la lista de nombres de reglas disponibles para tu tipo de carga de trabajo, envía una solicitud GET al método projects.locations.rules.list:

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "X-Goog-User-Project: CONSUMER_PROJECT_ID" \
        "https://workloadmanager.googleapis.com/v1/projects/CONSUMER_PROJECT_ID/locations/LOCATION_ID/rules?evaluationType=EVALUATION_TYPE"
    

    Reemplaza lo siguiente:

    • CONSUMER_PROJECT_ID: Es el ID del proyecto de consumidor en el que ejecutas las evaluaciones.

    • LOCATION_ID: Es la región admitida para la evaluación, como us-central1.

    • EVALUATION_TYPE: Es el tipo de evaluación de la carga de trabajo, como SAP, SQL_SERVER, MYSQL, REDIS, OPENSHIFT o OTHER.

  2. Para crear la evaluación, envía una solicitud POST al método projects.locations.evaluations.create:

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        -H "X-Goog-User-Project: CONSUMER_PROJECT_ID" \
        -d '{
          "description": "DESCRIPTION",
          "evaluationType": "EVALUATION_TYPE",
          "ruleNames": [
            "RULE_NAMES"
          ],
          "resourceFilter": {
            "scopes": [
              "projects/TARGET_PROJECT_ID"
            ],
            "resourceIdPatterns": [
              "RESOURCE_ID_PATTERNS"
            ],
            "inclusionLabels": {
              "LABEL_KEY": "LABEL_VALUE"
            },
            "gceInstanceFilter": {
              "serviceAccounts": [
                "SERVICE_ACCOUNT_EMAIL"
              ]
            }
          },
          "schedule": "SCHEDULE",
          "bigQueryDestination": {
            "destinationDataset": "projects/BQ_PROJECT_ID/datasets/BQ_DATASET_ID",
            "createNewResultsTable": true
          }
        }' \
        "https://workloadmanager.googleapis.com/v1/projects/CONSUMER_PROJECT_ID/locations/LOCATION_ID/evaluations?evaluationId=EVALUATION_ID"
    

    Reemplaza lo siguiente:

    • CONSUMER_PROJECT_ID: Es el ID del proyecto de consumidor en el que creas la evaluación.

    • LOCATION_ID: Es la región admitida en la que el Gestor de cargas de trabajo almacena la evaluación, como us-central1.

    • EVALUATION_ID: Es un ID único para la evaluación.

    • DESCRIPTION: Es una descripción de la evaluación.

    • EVALUATION_TYPE: Es el tipo de evaluación de la carga de trabajo, como SAP, SQL_SERVER, MYSQL, REDIS, OPENSHIFT o OTHER.

    • RULE_NAMES: Es una lista separada por comas de los IDs de las reglas que se incluirán en la evaluación.

    • TARGET_PROJECT_ID: el ID del proyecto o número del proyecto de destino que contiene los recursos que se evaluarán

    • RESOURCE_ID_PATTERNS: Son patrones de nombres de recursos opcionales para filtrar los recursos evaluados, como //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance*.

    • LABEL_KEY y LABEL_VALUE: Son pares de etiquetas clave-valor opcionales para filtrar recursos.

    • SERVICE_ACCOUNT_EMAIL: Es la dirección de correo electrónico de la cuenta de servicio opcional para filtrar las instancias de Compute Engine.

    • SCHEDULE: expresión cron opcional en UTC para ejecuciones de evaluación recurrentes, como 0 */6 * * * para que se ejecute cada 6 horas

    • BQ_PROJECT_ID y BQ_DATASET_ID: ID del proyecto opcional y el ID del conjunto de datos regional de BigQuery para exportar los resultados de la evaluación

    Para obtener más información sobre los campos admitidos, consulta la referencia del recurso Evaluation.

Ejecuta una evaluación de la carga de trabajo

Además de ejecutar evaluaciones de forma periódica, puedes ejecutar una evaluación de carga de trabajo existente a pedido en cualquier momento con la consola de Google Cloud o la API de Workload Manager.

Console

Para ejecutar una evaluación de la carga de trabajo en la consola de Google Cloud , sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Gestor de cargas de trabajo.

    Ir al Gestor de cargas de trabajo

  2. Haz clic en el nombre de la evaluación que deseas ejecutar.

  3. En la página Información de la evaluación, haz clic en Ejecutar.

    Una evaluación de la carga de trabajo tarda unos minutos en completarse. Antes de ver los resultados más recientes, espera a que finalice la ejecución de la evaluación.

REST

Para ejecutar una evaluación de la carga de trabajo con la API de Workload Manager, envía una solicitud POST al método projects.locations.evaluations.executions.run:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: CONSUMER_PROJECT_ID" \
    -d '{
      "executionId": "EXECUTION_ID"
    }' \
    "https://workloadmanager.googleapis.com/v1/projects/CONSUMER_PROJECT_ID/locations/LOCATION_ID/evaluations/EVALUATION_ID/executions:run"

Reemplaza lo siguiente:

  • CONSUMER_PROJECT_ID: Es el ID del proyecto del consumidor que almacena la evaluación.

  • LOCATION_ID: Es la región de la evaluación, como us-central1.

  • EVALUATION_ID: Es el ID de la evaluación que deseas ejecutar.

  • EXECUTION_ID: Es un ID único opcional para esta ejecución. Para permitir que el Gestor de cargas de trabajo genere un ID automáticamente, omite este campo.

La solicitud devuelve un Operation de larga duración. Para verificar el estado de la ejecución o enumerar sus resultados, usa los métodos projects.locations.evaluations.executions.get y projects.locations.evaluations.executions.results.list.

Compartir los resultados de la evaluación

Compartir los hallazgos de la evaluación permite que los propietarios de recursos de los proyectos de destino vean los hallazgos de configuración en las consolas de sus proyectos locales y en las páginas integradas, como Compute Engine. Esta capacidad no requiere acceso directo de IAM al proyecto del consumidor.

Editar una evaluación para compartir los hallazgos

Para habilitar o inhabilitar el uso compartido de los hallazgos de una evaluación existente, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Gestor de cargas de trabajo.

    Ir al Gestor de cargas de trabajo

  2. Haz clic en el nombre de la evaluación que quieres editar.

  3. Haz clic en Editar.

  4. En la sección Alcance y filtros, selecciona o desmarca la casilla de verificación Compartir hallazgos.

  5. Haz clic en Guardar.

Visibilidad de los hallazgos compartidos

Cuando habilitas Compartir hallazgos, el Gestor de cargas de trabajo propaga los hallazgos de las reglas a todos los proyectos de destino que se especifican en el alcance de evaluación. Los hallazgos se pueden ver en la pestaña Hallazgos de reglas y en las páginas integradas, como la página Descripción general de Compute Engine.

Cuando inhabilitas Compartir hallazgos, Gestor de cargas de trabajo deja de propagar los hallazgos de reglas a los proyectos de destino, y los hallazgos permanecen visibles solo dentro del proyecto del consumidor.

Configura notificaciones de alertas para las evaluaciones

Puedes configurar las notificaciones de alertas para que el Gestor de cargas de trabajo notifique a los canales de notificación que elijas cuando se produzcan eventos de evaluación específicos, como cuando una evaluación detecte hallazgos nuevos o no se ejecute. Si no configuraste las notificaciones de alertas cuando creaste la evaluación, puedes agregarlas o actualizarlas para una evaluación existente en la consola de Google Cloud siguiendo estos pasos:

  1. En la consola de Google Cloud , ve a la página Gestor de cargas de trabajo.

    Ir al Gestor de cargas de trabajo

  2. Haz clic en el nombre de la evaluación para la que deseas habilitar las notificaciones de alertas.

  3. Haz clic en Editar.

  4. Elige la sección Notificación.

  5. Selecciona los eventos para los que deseas recibir notificaciones de alertas y, luego, selecciona tus canales de notificaciones.

  6. Haz clic en Guardar.

¿Qué sigue?