Recommandations sur les risques liés aux modifications

Les recommandations sur les risques liés aux modifications vous aident à réduire le risque d'erreurs de configuration de l'infrastructure cloud en signalant de manière intelligente les modifications risquées apportées à vos ressources les plus importantes, et en fournissant des recommandations pour éviter et limiter les problèmes.

Introduction

Les erreurs de configuration sont une cause courante d'incidents dans le cloud. Ils peuvent se produire en raison d'erreurs humaines ou de modifications inattendues de la charge de travail et peuvent entraîner divers problèmes en termes de performances et de fiabilité, voire des pannes. De nombreuses erreurs de configuration peuvent passer inaperçues au départ, ce qui les rend difficiles à détecter et à résoudre.

Les recommandations sur les risques liés aux modifications font partie d'une nouvelle famille de recommandations et d'insights Active Assist dans le service Outil de recommandation. Les recommandations sur les risques liés aux modifications signalent automatiquement les modifications risquées pour les ressources cloud identifiées comme importantes en fonction de leur utilisation et d'autres signaux, afin d'éviter, de détecter et de limiter les problèmes (comme les interruptions de service) causées par des erreurs de configuration de ces ressources cloud importantes. Par exemple, si vous essayez de supprimer un projet très utilisé ou de modifier une stratégie IAM susceptible de constituer une dépendance essentielle au regard de son utilisation récente, les recommandations sur les risques liés aux modifications peuvent vous aider à éviter des problèmes inattendus en vous avertissant de manière proactive sur les risques associés à une modification donnée.

Champ d'application des recommandations sur les risques liés aux modifications

Les recommandations sur les risques liés aux modifications ne sont actuellement disponibles que pour les ressources et les actions recensées dans le tableau ci-dessous.

Ressource Action Plates-formes Critères utilisés pour déterminer l'importance des ressources
Projet Suppression
  • Console Google Cloud
  • CLI gcloud
  • Outil de recommandation d'API
  • Utilisation du projet (appels d'API, trafic réseau et utilisation des services Google Cloud)
  • Facturation
  • Utilisation au cours des 30 derniers jours
Compte de service Suppression
  • Console Google Cloud
  • CLI gcloud
  • Outil de recommandation d'API
  • Nombre d'authentifications
  • Utilisation au cours des 90 derniers jours
Règlement IAM Modifier
  • Console Google Cloud
  • CLI gcloud
  • Outil de recommandation d'API
  • Nombre d'autorisations utilisées
  • Utilisation au cours des 90 derniers jours
  • Appartenance à un projet important

Avant de commencer

Avant de commencer à utiliser cette fonctionnalité, vous devez configurer le service :

  1. Activez l'API Recommender sur un seul projet de facturation. Vous pouvez ensuite utiliser ce même projet de facturation pour examiner des recommandations et des insights pour d'autres projets, pour l'ensemble de l'organisation ou pour le compte de facturation, à l'aide de la fonctionnalité facturation-projet de gcloud/API.
  2. Accordez des autorisations à l'utilisateur ou au compte de service que vous utiliserez pour accéder à cette fonctionnalité.

Autorisations

Pour afficher les recommandations sur les risques liés aux modifications, vous devez disposer des autorisations spécifiques associées à la ressource concernée.

  • Projet

    • recommender.resourcemanagerProjectChangeRiskRecommendations.get
    • recommender.resourcemanagerProjectChangeRiskRecommendations.list
    • recommender.resourcemanagerProjectChangeRiskInsights.get
    • recommender.resourcemanagerProjectChangeRiskInsights.list
  • Compte de service

    • recommender.iamServiceAccountChangeRiskRecommendations.get
    • recommender.iamServiceAccountChangeRiskRecommendations.list
    • recommender.iamServiceAccountChangeRiskInsights.get
    • recommender.iamServiceAccountChangeRiskInsights.list
  • Stratégie IAM

    • recommender.iamPolicyChangeRiskRecommendations.get
    • recommender.iamPolicyChangeRiskRecommendations.list
    • recommender.iamPolicyChangeRiskInsights.get
    • recommender.iamPolicyChangeRiskInsights.list

Vous pouvez également attribuer le rôle roles/recommender.viewer pour couvrir ces autorisations.

Comprendre la réponse des recommandations et insights sur les risques liés aux modifications

Le tableau suivant fournit une description des champs présentés dans l'objet de recommandation et d'insight :

Recommandation

Field name Type Description
associatedInsights string Insights associés à cette recommandation. projects/[project_number]/locations/global/ insightTypes/google.resourcemanager.project. ChangeRiskInsight/insights/[fingerprint]
asset object Contient le nom de l'élément et le type d'élément de la ressource associée.
etag string Empreinte de RecommenderConfig. Fournit un verrouillage optimiste lors de la mise à jour.
updateTime string Horodatage de la dernière mise à jour de la recommandation. Horodatage au format RFC 3339 UTC Zulu, précis à la nanoseconde près. Exemple : 2022-01-10T22:47:38.421626Z.

Insight

Field name Type Description
associatedRecommendations string Recommandation associée à cette recommandation. projects/[project_number]/locations/global/ recommenders/google.resourcemanager.project. ChangeRiskRecommender/recommendations/ [recommendation_id]
constraint object Contient la contrainte des recommandations sur les risques liés aux modifications que l'utilisateur doit éviter. This project should not be deleted.
importance object Contient la liste des raisons pour lesquelles nous avons déterminé que cette ressource est importante. Par exemple, une utilisation intensive.
risk object Contient des informations sur l'évaluation des risques. Par exemple, des valeurs d'activité relatives à l'utilisation des ressources sont utilisées pour déterminer l'importance.
updateTime string Horodatage de la dernière mise à jour de la recommandation. Horodatage au format RFC 3339 UTC Zulu, précis à la nanoseconde près. Exemple : 2022-01-10T22:47:38.421626Z.

Afficher les recommandations sur les risques liés aux modifications

En plus du modèle d'utilisation décrit ci-dessus, vous pouvez utiliser l'approche standard du service de recommandation pour afficher les recommandations et les insights sur les risques liés aux modifications pour un projet, un compte de service ou une stratégie IAM :

  • Console Google Cloud
  • API
  • gcloud

Console Google Cloud

Vous pouvez consulter des recommandations et des insights sur les risques liés aux modifications sur les pages de produit elles-mêmes. Les recommandations seront actives automatiquement tant que vous disposerez des autorisations indiquées ci-dessus.

Active Assist vous avertit des risques de suppression d'une ressource importante et vous indique ce que vous devez faire lorsque cet avertissement s'affiche dans les situations suivantes :

gcloud et API

Les sections suivantes présentent les commandes permettant de demander des recommandations et des insights sur les risques liés aux modifications via gcloud et l'API pour un projet, un compte de service ou une stratégie IAM.

Projet

Les insights et les recommandations sont accessibles via la console Google Cloud, gcloud ou l'API Recommender pour tous les clients.

gcloud

Pour afficher les recommandations et les insights à l'aide de gcloud, procédez comme indiqué ci-dessous. Pour en savoir plus, consultez les pages Utiliser l'API – Insights et Utiliser l'API – Recommandations.

Recommandations :

Pour répertorier les recommandations pour le projet dans lequel vous avez activé l'API Recommender, exécutez la commande suivante :

gcloud recommender recommendations list
--recommender=google.resourcemanager.project.ChangeRiskRecommender
--project=PROJECT_ID  --location=global --format=yaml

Remplacez les éléments suivants :

  • PROJECT_ID  : ID du projet
Insights :

Un ensemble de commandes semblable peut être utilisé pour recenser des insights :

gcloud recommender insights list
--insight-type=google.resourcemanager.project.ChangeRiskInsight
--project=PROJECT_ID  --location=global --format=yaml

Remplacez les éléments suivants :

  • PROJECT_ID  : ID du projet

API

Pour afficher les recommandations et les insights, vous pouvez utiliser curl pour envoyer une requête aux API de l'outil de recommandation.

Recommandations

Pour répertorier les recommandations pour le projet dans lequel vous avez activé l'API Recommender, exécutez la commande suivante :

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/
recommenders/google.resourcemanager.project.ChangeRiskRecommender/recommendations"

Remplacez les éléments suivants :

  • BILLING_PROJECT_ID  : ID du projet de facturation.
Insights :

Un ensemble de commandes semblable peut être utilisé pour recenser des insights :

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/insightTypes/google.resourcemanager.project.ChangeRiskInsight/insights"

Remplacez l'élément suivant : * BILLING_PROJECT_ID  : ID du projet de facturation.

Compte de service

Les insights et les recommandations concernant un compte de service sont accessibles via la console Google Cloud, gcloud ou l'API Recommender pour tous les clients.

gcloud

Pour afficher les recommandations et les insights à l'aide de gcloud, procédez comme indiqué ci-dessous. Pour en savoir plus, consultez les pages Utiliser l'API – Insights et Utiliser l'API – Recommandations.

Recommandations :

Pour recenser les recommandations pour un compte de service sur lequel vous avez activé l'API Recommender, exécutez la commande suivante :

gcloud recommender recommendations list
--recommender=google.iam.serviceAccount.ChangeRiskRecommender
--project=PROJECT_ID  --location=global --format=yaml

Remplacez les éléments suivants :

  • PROJECT_ID  : ID du projet
Insights :

Un ensemble de commandes semblable peut être utilisé pour recenser des insights :

gcloud recommender insights list
--insight-type=google.iam.serviceAccount.ChangeRiskInsight
--project=PROJECT_ID  --location=global --format=yaml

Remplacez les éléments suivants : * PROJECT_ID  : ID du projet.

API

Pour afficher les recommandations et les insights, vous pouvez utiliser curl pour envoyer une requête aux API de l'outil de recommandation.

Recommandations :

Pour recenser les recommandations pour un compte de service sur lequel vous avez activé l'API Recommender, exécutez la commande suivante :

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/
recommenders/google.iam.serviceAccount.ChangeRiskRecommender/recommendations"

Remplacez les éléments suivants :

  • PROJECT_ID  : ID du projet
  • BILLING_PROJECT_ID  : ID du projet de facturation.
Insights :

Un ensemble de commandes semblable peut être utilisé pour recenser des insights :

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/insightTypes/google.iam.serviceAccount.ChangeRiskInsight/insights"

Remplacez les éléments suivants : * PROJECT_ID  : ID du projet. * BILLING_PROJECT_ID  : ID du projet de facturation.

Stratégie IAM

Les insights et les recommandations concernant une stratégie IAM sont accessibles via la console Google Cloud, gcloud ou l'API Recommender pour tous les clients.

gcloud

Pour afficher les recommandations et les insights à l'aide de gcloud, procédez comme indiqué ci-dessous. Pour en savoir plus, consultez les pages Utiliser l'API – Insights et Utiliser l'API – Recommandations.

Recommandations :

Pour recenser les recommandations d'une stratégie IAM sur laquelle vous avez activé l'API Recommender, exécutez la commande suivante :

gcloud recommender recommendations list --recommender=google.iam.policy.ChangeRiskRecommender --project=PROJECT_ID  --location=global --format=yaml

Remplacez les éléments suivants :

  • PROJECT_ID  : ID du projet
Insights :

Un ensemble de commandes semblable peut être utilisé pour recenser des insights :

gcloud recommender insights list --insight-type=google.iam.policy.ChangeRiskInsight --project=PROJECT_ID  --location=global --format=yaml

Remplacez les éléments suivants : * PROJECT_ID  : ID du projet.

API

Pour afficher les recommandations et les insights, vous pouvez utiliser curl pour envoyer une requête aux API de l'outil de recommandation.

Recommandations :

Pour recenser les recommandations d'une stratégie IAM sur laquelle vous avez activé l'API Recommender, exécutez la commande suivante :

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/\recommenders/google.iam.policy.ChangeRiskRecommender/recommendations"

Remplacez les éléments suivants :

  • PROJECT_ID  : ID du projet
Insights :

Un ensemble de commandes semblable peut être utilisé pour recenser des insights :

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: BILLING_PROJECT_ID " "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/insightTypes/google.iam.policy.ChangeRiskInsight/insights"

Remplacez les éléments suivants : * PROJECT_ID  : ID du projet. * BILLING_PROJECT_ID  : ID du projet de facturation.

Suppressions risquées avec gcloud CLI

Lorsque vous supprimez des ressources via gcloud CLI, vous pouvez utiliser l'option cachée facultative --recommend=yes dans la version ALPHA pour interrompre les modifications risquées. Des exemples de modifications risquées disponibles avec les recommandations sont présentés ci-dessous. Si aucune évaluation des risques n'est affichée, la modification est considérée comme risquée.

Supprimer le projet

La commande suivante permet de supprimer un projet :

  gcloud alpha projects delete PROJECT_ID  --recommend=yes

Vous trouverez ci-dessous les modifications risquées disponibles avec les recommandations :

  Shutting down this project will immediately:
    - Stop all traffic and billing.
    - Start deleting resources.
    - Schedule the final deletion of the project after 30 days.
    - Block your access to the project.
    - Notify the owner of the project.

  Learn more about the shutdown process at
  https://cloud.google.com/resource-manager/docs/creating-managing-projects#shutting_down_projects

  WARNING: If you shut down this project you risk losing data or interrupting your services. In the last 30 days we observed this project had:
    - It had significant usage, including 9942 API calls.
    - It contains at least 1 highly utilized service account.
    - It included at least 211 resources.

  We recommend verifying this is the correct project to shut down.

  View the full risk assessment at: https://console.cloud.google.com/home/recommendations/view-link/projects/123456/locations/global/recommenders/google.resourcemanager.project.ChangeRiskRecommender/recommendations/reco-id-0000-0000-000000000

  Do you want to continue (Y/n)?  n

Suppression d'un compte de service

La commande suivante permet de supprimer un compte de service :

  gcloud alpha iam service-accounts delete example@PROJECT_ID .iam.gserviceaccount.com --recommend=yes

Vous trouverez ci-dessous les modifications risquées disponibles avec les recommandations :

  You are about to delete service account [example@PROJECT_ID .iam.gserviceaccount.com]

  Deleting this service account (SA) will delete all associated key IDs, and will prevent the account from authenticating to any Google Cloud service API.

  You cannot restore or roll back this change easily. We highly recommend disabling the account first, testing for any unexpected impact, and only then deleting.

  WARNING: If you delete this SA you risk interrupting your service, as we observed it was substantially used in the last 90 days.

  We recommend verifying this is the correct account to delete.

  View the full risk assessment at: https://console.cloud.google.com/home/recommendations/view-link/projects/123456/locations/global/recommenders/google.iam.serviceAccount.ChangeRiskRecommender/recommendations/reco-id-0000-0000-000000000

  Do you want to continue (Y/n)?  n

Si l'erreur suivante s'affiche :

  ERROR: (gcloud.alpha.iam.service-accounts.delete) NOT_FOUND: Method not found.
  - '@type': type.googleapis.com/google.rpc.DebugInfo
    detail: 'Method ListInsights not found for service recommender.googleapis.com. Method not visible to labels: {PUBLIC}'

Assurez-vous que la configuration du projet est définie sur un projet autorisé pour l'utilisation de l'API Alpha Recommender à l'aide de la commande suivante :

  gcloud config set project PROJECT_ID

Suppression d'une liaison de stratégie IAM d'un projet

La commande suivante permet de supprimer une liaison de stratégie IAM d'un projet :

  gcloud alpha projects remove-iam-policy-binding PROJECT_ID  --member=YOUR_EMAIL@DOMAIN.COM  --role=roles/owner --recommend=yes

Vous trouverez ci-dessous les modifications risquées disponibles avec les recommandations :

  You are about to delete the role [roles/owner].

  WARNING: If you remove the role [roles/owner], there is a high risk that you might cause interruptions because it was used in the last 90 days.

  We recommend you verify the details and replace them with less privileged roles, if necessary.

  View the full risk assessment at: https://console.cloud.google.com/home/recommendations/view-link/projects/123456/locations/global/recommenders/google.iam.policy.ChangeRiskRecommender/recommendations/reco-id-0000-0000-000000000

  Do you want to continue (Y/n)?  n

Commentaires et assistance

Envoyez un e-mail à l'adresse active-assistance-feedback@google.com en cas de problème technique, de questions ou de commentaires.