Créer et exécuter une évaluation

Vous pouvez utiliser Workload Manager pour créer et exécuter des évaluations automatisées qui analysent vos charges de travail par rapport aux normes du secteur et aux bonnes pratiques Google Cloud . En effectuant des évaluations régulières, vous pouvez détecter rapidement les dérives de configuration et les risques architecturaux dans vos projets, ce qui vous aide à améliorer la fiabilité, la sécurité et les performances des charges de travail.

Vous pouvez créer et exécuter des évaluations de charges de travail à l'aide de la console Google Cloud ou de l'API Workload Manager. Pour en savoir plus sur le fonctionnement des évaluations, consultez À propos des évaluations Workload Manager.

Limites

Workload Manager permet d'exécuter jusqu'à 25 évaluations simultanément toutes les heures par projet. Si un projet comporte plus de 25 évaluations, limitez les évaluations horaires à 25 ou définissez la planification des évaluations pour qu'elle s'exécute toutes les six heures ou moins fréquemment.

Avant de commencer

Avant de créer et d'exécuter une évaluation de charge de travail, assurez-vous de remplir les conditions préalables suivantes :

  1. Vérifiez que les ressources Google Cloud que vous souhaitez évaluer sont déjà créées dans le projet cible. Pour obtenir la liste des ressources et des règles compatibles, consultez la documentation de référence sur les bonnes pratiquesGoogle Cloud .

  2. Activez les API requises dans le projet client Google Cloud où vous créez et exécutez des évaluations :

  3. Si vous évaluez une charge de travail d'application ou de base de données, vérifiez que vous avez configuré l'agent ou l'opérateur requis sur toutes les instances de calcul ou tous les clusters qui exécutent votre charge de travail :

  4. Facultatif : Si vous souhaitez inclure des règles personnalisées en plus des bonnes pratiques Google Cloud intégrées, importez un exemple de règle depuis le dépôt GitHub GoogleCloudPlatform/workload-manager dans un bucket Cloud Storage dont le niveau supérieur contient les dossiers /lib et /rules. Pour en savoir plus sur l'importation de règles personnalisées, consultez Écrire des règles personnalisées à l'aide de Rego.

  5. Pour créer et exécuter des évaluations, vérifiez que vous disposez des rôles et autorisations requis.

  6. Si vous utilisez l'API Workload Manager pour créer des évaluations, créez manuellement l'agent de service Workload Manager dans le projet client et attribuez-lui les rôles suivants :

    • Agent de service Workload Manager (roles/workloadmanager.serviceAgent) dans les projets cibles.

    • Si vous définissez un calendrier d'évaluation, le nœud de calcul Workload Manager (roles/workloadmanager.worker) dans le projet client.

    Lorsque vous utilisez la console Google Cloud , Workload Manager crée automatiquement l'agent de service. Pour en savoir plus sur la configuration des agents de service, consultez Agents de service Workload Manager.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et exécuter une évaluation de charge de travail, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour créer et exécuter une évaluation de charge de travail. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer et exécuter une évaluation de charge de travail :

  • Créez et exécutez une évaluation :
    • workloadmanager.evaluations.create sur le projet client
    • workloadmanager.evaluations.run sur le projet client
  • Créer un agent de service (première évaluation uniquement) : resourcemanager.projects.setIamPolicy sur les projets client et cible
  • Lire les données de l'inventaire des éléments cloud (règles personnalisées et bonnes pratiques) : cloudasset.assets.searchAllResources sur le projet client
  • Lire des règles personnalisées à partir d'un bucket Cloud Storage (facultatif) :
    • storage.objects.get sur le projet client
    • storage.objects.list sur le projet client
  • Créer des notifications d'alerte (facultatif) : monitoring.timeSeries.create sur le projet client
  • Exporter les résultats de l'évaluation vers BigQuery (facultatif) :
    • bigquery.datasets.get sur le projet client
    • bigquery.tables.create sur le projet client
    • bigquery.tables.updateData sur le projet client

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles dans les projets client et cible, consultez Rôles IAM dans les projets client et cible pour les évaluations et Rôles et autorisations IAM de Workload Manager.

Créer une évaluation de charge de travail

Vous pouvez créer une évaluation de charge de travail à l'aide de la console Google Cloud ou de l'API Workload Manager. Pour créer une évaluation qui utilise des règles personnalisées, consultez Évaluer des charges de travail à l'aide de règles personnalisées.

Console

Pour créer une évaluation de charge de travail dans la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Workload Manager.

    Accéder à Workload Manager

  2. Sélectionnez le projet client Google Cloud dans lequel vous souhaitez stocker et exécuter l'évaluation.

  3. Si vous y êtes invité, cliquez sur Activer afin d'activer l'API requise pour Workload Manager.

  4. Cliquez sur Nouvelle évaluation.

  5. Dans le volet Nom et règles, configurez les détails de l'évaluation et sélectionnez les règles à évaluer :

    1. Dans le champ Nom de l'évaluation, saisissez un nom pour l'évaluation de charge de travail.

    2. (Facultatif) Dans le champ Description, saisissez une description pour l'évaluation de charge de travail.

    3. Dans le champ Type de charge de travail, sélectionnez l'un des types de charges de travail compatibles suivants :

      • SAP

      • SQL Server

      • MySQL

      • Redis

      • OpenShift

      • Personnalisée

      Lorsque vous sélectionnez Personnalisé, vous pouvez évaluer vos charges de travail par rapport aux Google Cloud bonnes pratiques ou à des règles personnalisées stockées dans Cloud Storage.

    4. Dans le tableau des règles, sélectionnez les règles de bonnes pratiques à inclure dans l'évaluation de la charge de travail. Pour en savoir plus sur chaque règle, consultez la documentation de référence sur les bonnes pratiquesGoogle Cloud .

  6. Cliquez sur Continuer.

  7. Dans le volet Champ d'application et filtres, spécifiez les projets cibles et les filtres de ressources pour l'évaluation :

    1. Dans la section Champ d'application de l'évaluation, pour ajouter les projets cibles contenant les ressources que vous souhaitez évaluer, cliquez sur Parcourir les projets.

    2. Facultatif : Pour partager les résultats des règles entre les projets cibles, cochez la case Partager les résultats. Pour en savoir plus, consultez Partager les résultats de l'évaluation.

    3. Facultatif : Dans la section Appliquer des filtres aux ressources, pour sélectionner des ressources spécifiques dans les projets cibles, cliquez sur Ajouter un filtre, puis utilisez l'un des types de filtres suivants :

      • Compte de service : filtrez les instances Compute Engine en fonction du compte de service qui leur est associé.

      • Étiquette : filtrez les ressources par paires d'étiquettes clé/valeur.

      • Nom : filtre les ressources par format d'ID de ressource.

      Plusieurs filtres utilisés dans un même type de filtre reposent sur la logique OR. Les filtres de différents types de filtres utilisent la logique AND.

    4. Si vous y êtes invité, sélectionnez la région dans laquelle vous souhaitez que Workload Manager stocke les données d'évaluation.

  8. Cliquez sur Continuer.

  9. Dans le volet Fréquence et notifications, configurez la planification de l'évaluation, la destination d'exportation et les notifications d'alerte :

    1. Dans la section Programmation, sélectionnez la fréquence d'exécution de l'évaluation.

    2. Facultatif : Pour exporter les résultats de l'évaluation vers un ensemble de données BigQuery régional situé dans la même région que votre évaluation, sélectionnez Enregistrer dans un ensemble de données BigQuery et spécifiez l'ensemble de données. Pour créer une table distincte pour l'évaluation, sélectionnez Créer une table de résultats pour cette évaluation.

    3. Facultatif : Dans la section Notification, sélectionnez les événements pour lesquels vous souhaitez recevoir des notifications d'alerte, puis sélectionnez vos canaux de notification.

  10. Cliquez sur Continuer.

  11. Dans le volet Vérifier, vérifiez les paramètres d'évaluation de la charge de travail. Pour modifier des paramètres, cliquez sur le nom du volet dans le panneau de navigation de gauche.

  12. Cliquez sur Créer.

REST

Pour créer une évaluation de charge de travail à l'aide de l'API Workload Manager, procédez comme suit :

  1. Facultatif : Pour récupérer la liste des noms de règles disponibles pour votre type de charge de travail, envoyez une requête GET à la méthode 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"
    

    Remplacez les éléments suivants :

  2. Pour créer l'évaluation, envoyez une requête POST à la méthode 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"
    

    Remplacez les éléments suivants :

    • CONSUMER_PROJECT_ID : ID du projet client dans lequel vous créez l'évaluation

    • LOCATION_ID : région prise en charge dans laquelle Workload Manager stocke l'évaluation, par exemple us-central1

    • EVALUATION_ID : identifiant unique de l'évaluation

    • DESCRIPTION : description de l'évaluation

    • EVALUATION_TYPE : type d'évaluation de la charge de travail, tel que SAP, SQL_SERVER, MYSQL, REDIS, OPENSHIFT ou OTHER

    • RULE_NAMES : liste d'ID de règles à inclure dans l'évaluation, séparés par une virgule

    • TARGET_PROJECT_ID : ID ou numéro du projet cible contenant les ressources à évaluer

    • RESOURCE_ID_PATTERNS : modèles de noms de ressources facultatifs pour filtrer les ressources évaluées, par exemple //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance*

    • LABEL_KEY et LABEL_VALUE : paires d'étiquettes clé/valeur facultatives pour filtrer les ressources

    • SERVICE_ACCOUNT_EMAIL : adresse e-mail du compte de service facultative pour filtrer les instances Compute Engine

    • SCHEDULE : expression cron facultative au format UTC pour les exécutions d'évaluation récurrentes, par exemple 0 */6 * * * pour une exécution toutes les six heures.

    • BQ_PROJECT_ID et BQ_DATASET_ID : ID du projet et ID d'ensemble de données BigQuery régional facultatifs pour l'exportation des résultats d'évaluation

    Pour en savoir plus sur les champs compatibles, consultez la documentation de référence sur la ressource Evaluation.

Exécuter une évaluation de charge de travail

En plus d'exécuter des évaluations de manière récurrente, vous pouvez exécuter une évaluation de charge de travail existante à la demande et à tout moment à l'aide de la console Google Cloud ou de l'API Workload Manager.

Console

Pour exécuter une évaluation de charge de travail dans la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Workload Manager.

    Accéder à Workload Manager

  2. Cliquez sur le nom de l'évaluation que vous souhaitez exécuter.

  3. Sur la page Informations sur l'évaluation, cliquez sur Exécuter.

    L'évaluation de charge de travail prend quelques minutes. Avant d'afficher les derniers résultats, attendez que l'évaluation soit terminée.

REST

Pour exécuter une évaluation de charge de travail à l'aide de l'API Workload Manager, envoyez une requête POST à la méthode 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"

Remplacez les éléments suivants :

  • CONSUMER_PROJECT_ID : ID du projet client qui stocke l'évaluation.

  • LOCATION_ID : région de l'évaluation, par exemple us-central1.

  • EVALUATION_ID : ID de l'évaluation que vous souhaitez exécuter.

  • EXECUTION_ID : identifiant unique facultatif pour cette exécution. Pour permettre à Workload Manager de générer un ID automatiquement, omettez ce champ.

La requête renvoie une Operation de longue durée. Pour vérifier l'état de l'exécution ou lister ses résultats, utilisez les méthodes projects.locations.evaluations.executions.get et projects.locations.evaluations.executions.results.list.

Partager les résultats de l'évaluation

Le partage des résultats d'évaluation permet aux propriétaires de ressources des projets cibles de consulter les résultats de configuration dans les consoles de leurs projets locaux et sur les pages intégrées telles que Compute Engine. Cette fonctionnalité ne nécessite pas d'accès IAM direct au projet du client.

Modifier une évaluation pour partager les résultats

Pour activer ou désactiver le partage des résultats d'une évaluation existante, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Workload Manager.

    Accéder à Workload Manager

  2. Cliquez sur le nom de l'évaluation que vous souhaitez modifier.

  3. Cliquez sur Modifier.

  4. Dans la section Champ d'application et filtres, cochez ou décochez la case Partager les résultats.

  5. Cliquez sur Enregistrer.

Visibilité des résultats partagés

Lorsque vous activez l'option Partager les résultats, Workload Manager propage les résultats des règles à tous les projets cibles spécifiés dans le champ d'application de l'évaluation. Les résultats sont visibles dans l'onglet Résultats de la règle et sur les pages intégrées, telles que la page Vue d'ensemble de Compute Engine.

Lorsque vous désactivez l'option Partager les résultats, Workload Manager cesse de propager les résultats des règles aux projets cibles, et les résultats ne restent visibles que dans le projet client.

Définir des notifications d'alerte pour les évaluations

Vous pouvez configurer des notifications d'alerte afin que Workload Manager envoie des notifications aux canaux de notification de votre choix lorsque des événements d'évaluation spécifiques se produisent, par exemple lorsqu'une évaluation détecte de nouveaux résultats ou ne s'exécute pas. Si vous n'avez pas configuré de notifications d'alerte lorsque vous avez créé l'évaluation, vous pouvez les ajouter ou les mettre à jour pour une évaluation existante dans la console Google Cloud en procédant comme suit :

  1. Dans la console Google Cloud , accédez à la page Workload Manager.

    Accéder à Workload Manager

  2. Cliquez sur le nom de l'évaluation pour laquelle vous souhaitez activer les notifications d'alerte.

  3. Cliquez sur Modifier.

  4. Sélectionnez la section Notification.

  5. Sélectionnez les événements pour lesquels vous souhaitez recevoir des notifications d'alerte, puis sélectionnez vos canaux de notification.

  6. Cliquez sur Enregistrer.

Étapes suivantes