Examiner et appliquer les recommandations concernant les règles d'administration

Cette page explique comment afficher, comprendre et appliquer les recommandations concernant les règles d'administration. Les recommandations concernant les règles d'administration vous aident à définir les règles d'administration appropriées sans perturber les systèmes.

Avant de commencer

  • Activez les API Organization Policy et Recommender, si ce n'est pas déjà fait.

    Rôles requis pour activer les API

    Pour activer des API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer les API

  • Configurez l'authentification.

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    gcloud

    Dans la console Google Cloud , activez Cloud Shell.

    Activer Cloud Shell

    En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement de shell dans lequel la Google Cloud CLI est déjà installée, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

  • Comprendre les recommandations concernant les règles d'administration

Rôles IAM requis

Cette section décrit les rôles et les autorisations IAM dont vous avez besoin pour utiliser les recommandations de règles d'administration.

Pour obtenir les autorisations nécessaires pour gérer les recommandations de règles d'administration, demandez à votre administrateur de vous accorder les rôles IAM suivants sur la ressource pour laquelle vous souhaitez gérer les recommandations (projet, dossier ou organisation) :

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 gérer les recommandations de règles d'administration. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour gérer les recommandations de règles d'administration :

  • Pour afficher les recommandations concernant les règles d'administration :
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
  • Pour appliquer et ignorer les recommandations concernant les règles d'administration :
    • recommender.orgPolicyRecommendations.get
    • recommender.orgPolicyRecommendations.list
    • recommender.orgPolicyRecommendations.update
  • Pour gérer les règles d'administration :
    • orgpolicy.policy.get
    • orgpolicy.policy.set
    • orgpolicy.constraints.list
    • orgpolicy.policies.create
    • orgpolicy.policies.delete
    • orgpolicy.policies.list
    • orgpolicy.policies.update

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

Limites

La version Preview de l'outil de recommandation de règles d'administration présente les limites suivantes :

  • Les insights ne sont disponibles que pour les projets, dossiers et organisations qui comportent des recommandations.

  • Les recommandations ne sont faites que pour les contraintes qui ne sont pas configurées sur une ressource donnée ou sur l'une de ses ressources enfants.

Contraintes compatibles

Les recommandations ne sont disponibles que pour les contraintes de règles d'administration suivantes :

Lire et appliquer les recommandations

Vous pouvez examiner et appliquer des recommandations de règles d'administration à l'aide de la Google Cloud CLI et de l'API Recommender.

gcloud

Examinez les recommandations :

Pour répertorier vos recommandations, exécutez la commande gcloud recommender recommendations list :

gcloud recommender recommendations list \
    --location=global \
    --recommender=google.orgpolicy.policy.Recommender \
    --RESOURCE_TYPE=RESOURCE_ID \
    --filter="recommenderSubtype:RECOMMENDER_SUBTYPE" \
    --format=FORMAT

Remplacez les valeurs suivantes :

  • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez répertorier les recommandations. Utilisez la valeur project, folder ou organization.

  • RESOURCE_ID : ID du projet Google Cloud , du dossier ou de l'organisation pour lesquels vous souhaitez répertorier les recommandations. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossiers et d'organisations sont numériques, tels que 123456789012.

  • RECOMMENDER_SUBTYPE : facultatif. ID du sous-type pour lequel vous souhaitez afficher des recommandations. Voici quelques exemples de sous-types valides :

    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION fournit des recommandations pour la contrainte iam.managed.disableServiceAccountKeyCreation.
    • ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_UPLOAD fournit des recommandations pour la contrainte iam.managed.disableServiceAccountKeyUpload
  • FORMAT : format de la réponse. Utilisez la valeur json ou yaml.

La réponse est semblable à l'exemple suivant. Dans cet exemple, deux ressources sont analysées pour les clés de compte de service externes, et aucune infraction n'est détectée. Par conséquent, la recommandation suggère de définir iam.managed.disableServiceAccountKeyCreation pour éviter de futurs cas de non-respect.

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "add",
              "path": "/",
              "resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
              "resourceType": "orgpolicy.googleapis.com/Policy",
              "value": {
                "etag": "",
                "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
                "spec": {
                  "etag": "",
                  "inheritFromParent": false,
                  "reset": false,
                  "rules": [
                    {
                      "enforce": true
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "overview": {
        "constraint": {
          "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
          "name": "Disable service account key creation"
        },
        "enforcedResources": [
          {
            "numOfResources": "2",
            "resourceType": "iam.googleapis.com/ServiceAccountKey"
          },
          {
            "numOfResources": "1",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    },
    "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"826e992a0f9793ff\"",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY"
    },
    "priority": "P1",
    "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

Pour en savoir plus sur les composants d'une recommandation, consultez Comprendre les recommandations.

Pour appliquer une recommandation, procédez comme suit :

  1. Utilisez la commande gcloud recommender recommendations mark-claimed pour définir l'état de la recommandation sur CLAIMED, ce qui empêche la recommandation de changer pendant que vous l'appliquez :

    gcloud recommender recommendations mark-claimed \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.orgpolicy.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    Remplacez les valeurs suivantes :

    • RECOMMENDATION_ID : identifiant unique de la recommandation. Cette valeur apparaît à la fin du champ name de la recommandation. Dans l'exemple précédent, l'identifiant est fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez gérer les recommandations. Utilisez la valeur project, folder ou organization.
    • RESOURCE_ID : ID du projet, du dossier ou de l'organisation Google Cloudpour lequel vous souhaitez lister les recommandations. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
    • FORMAT : format de la réponse. Utilisez la valeur json ou yaml.
    • ETAG : identifiant d'une version de la recommandation, par exemple "7caf4103d7669e12". Notez que cette valeur peut inclure des guillemets.
    • STATE_METADATA : facultatif. Paires clé/valeur séparées par une virgule qui contiennent les métadonnées de votre choix concernant la recommandation. Par exemple : --state-metadata=reviewedBy=alice,priority=high. Les métadonnées remplacent le champ stateInfo.stateMetadata dans la recommandation.

    Si la commande aboutit, la réponse affiche la recommandation à l'état CLAIMED, comme indiqué dans l'exemple suivant. Pour plus de clarté, l'exemple omet la plupart des champs :

    
      {
        "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
        "etag": "\"826e992a0f9793ff\"",
        "lastRefreshTime": "2024-12-07T08:00:00Z",
        "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "primaryImpact": {
          "category": "SECURITY"
        },
        "priority": "P1",
        "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
        "stateInfo": {
          "state": "CLAIMED",
          "stateMetadata": {\
            "reviewedBy": "alice",
            "priority": "high"
          }
        },
        "targetResources": [
          "//cloudresourcemanager.googleapis.com/projects/123456789012"
        ]
      }
    
  2. Mettez à jour et appliquez la règle d'administration pour le projet, le dossier ou l'organisation spécifiés par RESOURCE_TYPE et RESOURCE_ID afin qu'elle reflète la recommandation.

  3. Mettez à jour l'état de la recommandation sur SUCCEEDED si vous avez appliqué la recommandation ou sur FAILED si vous ne pouvez pas appliquer la recommandation :

    gcloud recommender recommendations COMMAND \
        RECOMMENDATION_ID \
        --location=global \
        --recommender=google.iam.policy.Recommender \
        --RESOURCE_TYPE=RESOURCE_ID \
        --format=FORMAT \
        --etag=ETAG \
        --state-metadata=STATE_METADATA
    

    Remplacez les valeurs suivantes :

    • COMMAND : utilisez mark-succeeded si vous avez appliqué la recommandation ou mark-failed si vous n'avez pas pu l'appliquer.
    • RECOMMENDATION_ID : identifiant unique de la recommandation. Cette valeur apparaît à la fin du champ name de la recommandation. Dans l'exemple précédent, l'identifiant est fb927dc1-9695-4436-0000-f0f285007c0f.
    • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez gérer les recommandations. Utilisez la valeur project, folder ou organization.
    • RESOURCE_ID : ID du projet, du dossier ou de l'organisation Google Cloudpour lequel vous souhaitez répertorier les recommandations. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
    • FORMAT : format de la réponse. Utilisez la valeur json ou yaml.
    • ETAG : identifiant d'une version de la recommandation, par exemple "7caf4103d7669e12". Notez que cette valeur peut inclure des guillemets.
    • STATE_METADATA : facultatif. Paires clé/valeur séparées par une virgule qui contiennent les métadonnées de votre choix concernant la recommandation. Par exemple : --state-metadata=reviewedBy=alice,priority=high. Les métadonnées remplacent le champ stateInfo.stateMetadata dans la recommandation.

    Par exemple, si vous avez marqué la recommandation comme réussie, la réponse affiche la recommandation avec l'état SUCCEEDED. Pour plus de clarté, cet exemple omet la plupart des champs :

    
      {
        "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
        "etag": "\"826e992a0f9793ff\"",
        "lastRefreshTime": "2024-12-07T08:00:00Z",
        "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
        "primaryImpact": {
          "category": "SECURITY"
        },
        "priority": "P1",
        "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
        "stateInfo": {
          "state": "SUCCEEDED",
          "stateMetadata": {
            "reviewedBy": "alice",
            "priority": "high"
          }
        },
        "targetResources": [
          "//cloudresourcemanager.googleapis.com/projects/123456789012"
        ]
      }
    

    Pour rétablir les modifications apportées à la règle d'administration, définissez la règle d'administration sur sa configuration d'origine, qui est fournie dans le champ configuredPolicy de l'insight associé.

REST

Examinez les recommandations :

Pour lister toutes les recommandations disponibles pour votre projet, votre dossier ou votre organisation, utilisez la méthode recommendations.list de l'API Recommender.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • RESOURCE_TYPE : type de ressource pour laquelle vous souhaitez gérer les recommandations. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les recommandations. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
  • PAGE_SIZE : facultatif. Nombre maximal de résultats à renvoyer pour cette requête. Si cette valeur n'est pas spécifiée, le serveur détermine le nombre de résultats à renvoyer. Si le nombre de recommandations est supérieur à la taille de la page, la réponse contient un jeton de pagination que vous pouvez utiliser pour récupérer la page de résultats suivante.
  • PAGE_TOKEN : facultatif. Jeton de pagination renvoyé dans une réponse précédente de cette méthode. Si spécifié, la liste de recommandations commence à la fin de la requête précédente.
  • FILTER : facultatif. Expression de filtre permettant de limiter les recommandations renvoyées. Vous pouvez filtrer les recommandations en fonction du champ stateInfo.state. Par exemple, stateInfo.state:"DISMISSED" ou stateInfo.state:"FAILED".
  • PROJECT_ID : ID de votre projet Google Cloud . Les ID de projet sont des chaînes alphanumériques, telles que my-project.

Méthode HTTP et URL :

GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Pour envoyer votre requête, développez l'une des options suivantes :

La réponse est semblable à l'exemple suivant. Dans cet exemple, deux ressources sont analysées pour détecter les clés de compte de service externes, et aucune non-conformité n'est détectée. Par conséquent, la recommandation suggère de définir iam.managed.disableServiceAccountKeyCreation pour éviter de futurs cas de non-respect.

[
  {
    "associatedInsights": [
      {
        "insight": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8"
      }
    ],
    "content": {
      "operationGroups": [
        {
          "operations": [
            {
              "action": "add",
              "path": "/",
              "resource": "//orgpolicy.googleapis.com/projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
              "resourceType": "orgpolicy.googleapis.com/Policy",
              "value": {
                "etag": "",
                "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
                "spec": {
                  "etag": "",
                  "inheritFromParent": false,
                  "reset": false,
                  "rules": [
                    {
                      "enforce": true
                    }
                  ]
                }
              }
            }
          ]
        }
      ],
      "overview": {
        "constraint": {
          "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
          "name": "Disable service account key creation"
        },
        "enforcedResources": [
          {
            "numOfResources": "2",
            "resourceType": "iam.googleapis.com/ServiceAccountKey"
          },
          {
            "numOfResources": "1",
            "resourceType": "cloudresourcemanager.googleapis.com/Project"
          }
        ]
      }
    },
    "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"826e992a0f9793ff\"",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
    "primaryImpact": {
      "category": "SECURITY"
    },
    "priority": "P1",
    "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

Pour en savoir plus sur les composants d'une recommandation, consultez Comprendre les recommandations.

Pour appliquer une recommandation, procédez comme suit :

  1. Définissez l'état de la recommandation sur CLAIMED :

    Pour marquer une recommandation comme CLAIMED, ce qui empêche la recommandation de changer pendant que vous l'appliquez, utilisez la méthode recommendations.markClaimed de l'API Recommender.

    Avant d'utiliser les données de requête, effectuez les remplacements suivants :

    • RESOURCE_TYPE : type de ressource pour laquelle vous souhaitez gérer les recommandations. Utilisez la valeur projects, folders ou organizations.
    • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les recommandations. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossiers et d'organisations sont numériques, tels que 123456789012.
    • RECOMMENDATION_ID : identifiant unique de la recommandation. Cette valeur s'affiche à la fin du champ name de la recommandation. Par exemple, si le champ name est projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, l'ID de la recommandation est fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG : valeur du champ etag dans la recommandation, telle que "dd0686e7136a4cbb". Utilisez des barres obliques inverses pour échapper les guillemets (par exemple, "\"df7308cca9719dcc\"").
    • STATE_METADATA : facultatif. Objet contenant des paires clé/valeur avec les métadonnées de votre choix concernant la recommandation. Exemple : {"reviewedBy": "alice", "priority": "high"}. Les métadonnées remplacent le champ stateInfo.stateMetadata de la recommandation.
    • PROJECT_ID : ID de votre projet Google Cloud . Les ID de projet sont des chaînes alphanumériques, telles que my-project.

    Méthode HTTP et URL :

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed

    Corps JSON de la requête :

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    La réponse affiche la recommandation à l'état CLAIMED, comme illustré dans l'exemple suivant. Pour plus de clarté, cet exemple omet la plupart des champs :

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "CLAIMED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

  2. Mettez à jour la règle d'administration pour le projet, le dossier ou l'organisation spécifié par RESOURCE_TYPE et RESOURCE_ID afin qu'elle reflète la recommandation.

  3. Mettez à jour l'état de la recommandation sur SUCCEEDED si vous avez appliqué la recommandation ou sur FAILED si vous ne pouvez pas appliquer la recommandation :

    SUCCEEDED

    Pour marquer une recommandation comme SUCCEEDED, indiquant que vous avez pu l'appliquer, utilisez la méthode recommendations.markSucceeded de l'API Recommender.

    Avant d'utiliser les données de requête, effectuez les remplacements suivants :

    • RESOURCE_TYPE : type de ressource pour laquelle vous souhaitez gérer les recommandations. Utilisez la valeur projects, folders ou organizations.
    • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les recommandations. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossiers et d'organisations sont numériques, tels que 123456789012.
    • RECOMMENDATION_ID : identifiant unique de la recommandation. Cette valeur s'affiche à la fin du champ name de la recommandation. Par exemple, si le champ name est projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, l'ID de la recommandation est fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG : valeur du champ etag dans la recommandation, telle que "dd0686e7136a4cbb". Utilisez des barres obliques inverses pour échapper les guillemets (par exemple, "\"df7308cca9719dcc\"").
    • STATE_METADATA : facultatif. Objet contenant des paires clé/valeur avec les métadonnées de votre choix concernant la recommandation. Exemple : {"reviewedBy": "alice", "priority": "high"}. Les métadonnées remplacent le champ stateInfo.stateMetadata de la recommandation.
    • PROJECT_ID : ID de votre projet Google Cloud . Les ID de projet sont des chaînes alphanumériques, telles que my-project.

    Méthode HTTP et URL :

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded

    Corps JSON de la requête :

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    La réponse affiche la recommandation à l'état SUCCEEDED, comme illustré dans l'exemple suivant. Pour plus de clarté, cet exemple omet la plupart des champs :

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "SUCCEEDED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

    FAILED

    Pour marquer une recommandation comme FAILED, indiquant que vous n'avez pas pu l'appliquer, utilisez la méthode recommendations.markFailed de l'API Recommender.

    Avant d'utiliser les données de requête, effectuez les remplacements suivants :

    • RESOURCE_TYPE : type de ressource pour laquelle vous souhaitez gérer les recommandations. Utilisez la valeur projects, folders ou organizations.
    • RESOURCE_ID : ID duGoogle Cloud projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les recommandations. Les ID de projet sont des chaînes alphanumériques, telles que my-project. Les ID de dossier et d'organisation sont numériques, tels que 123456789012.
    • RECOMMENDATION_ID : identifiant unique de la recommandation. Cette valeur s'affiche à la fin du champ name de la recommandation. Par exemple, si le champ name est projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f, l'ID de la recommandation est fb927dc1-9695-4436-0000-f0f285007c0f.
    • ETAG : valeur du champ etag dans la recommandation, telle que "dd0686e7136a4cbb". Utilisez des barres obliques inverses pour échapper les guillemets (par exemple, "\"df7308cca9719dcc\"").
    • STATE_METADATA : facultatif. Objet contenant des paires clé/valeur avec les métadonnées de votre choix concernant la recommandation. Exemple : {"reviewedBy": "alice", "priority": "high"}. Les métadonnées remplacent le champ stateInfo.stateMetadata de la recommandation.
    • PROJECT_ID : ID de votre projet Google Cloud . Les ID de projet sont des chaînes alphanumériques, telles que my-project.

    Méthode HTTP et URL :

    POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed

    Corps JSON de la requête :

    {
      "etag": "ETAG",
      "stateMetadata": {
        "STATE_METADATA"
      }
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    La réponse affiche la recommandation à l'état FAILED, comme illustré dans l'exemple suivant. Pour plus de clarté, cet exemple omet la plupart des champs :

    {
      "description": "After analyzing 3 resources and finding 0 violations, Organization Policy Recommender recommends that you disable the creation of service account external keys on your project by enforcing constraints/iam.managed.disableServiceAccountKeyCreation.",
      "etag": "\"826e992a0f9793ff\"",
      "lastRefreshTime": "2024-12-07T08:00:00Z",
      "name": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f",
      "primaryImpact": {
        "category": "SECURITY"
      },
      "priority": "P1",
      "recommenderSubtype": "ADD_POLICY_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
      "stateInfo": {
        "state": "FAILED",
        "stateMetadata": {
          "reviewedBy": "alice",
          "priority": "high"
        }
      },
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ]
    }
    

Comprendre les recommandations

Chaque recommandation inclut des informations qui vous aident à comprendre pourquoi elle a été faite, ainsi que des suggestions de modifications à apporter à la configuration de vos règles d'administration. Voici ses principaux attributs :

  • description : résumé de la recommandation, dans un format lisible par l'humain.

  • recommenderSubtype : identifiant d'un sous-type de recommandations. Chaque contrainte possède un recommenderSubtype unique.

  • content : contient les modifications recommandées pour votre règle d'administration.

    • overview : informations condensées sur la recommandation.

    • constraint : fournit des informations sur la contrainte.

    • enforced_resources : fournit des informations sur les ressources concernées par cette règle d'administration si vous appliquez la recommandation.

    • operationGroups : ensemble d'une ou de plusieurs opérations sur la règle d'administration lorsque vous appliquez une recommandation.

  • associatedInsights : nom de ressource des insights qui ont conduit à cette recommandation.

Pour en savoir plus sur les attributs d'une recommandation, consultez la documentation de référence sur les recommandations.

Les insights et les recommandations sont générés pour les ressources sur lesquelles aucune des règles d'administration compatibles n'est définie, ni sur aucune de leurs ressources enfants. Pour voir la configuration de la règle d'administration sur laquelle cette recommandation est basée, consultez les insights sur les règles d'administration associés à la recommandation. Ces insights sont listés dans le champ associatedInsights. Pour afficher un insight de règle d'administration associé à la recommandation, procédez comme suit :

  1. Identifiez les insights du champ associatedInsights qui sont des insights sur les règles d'administration. Les insights sur les règles d'administration ont le type d'insight google.orgpolicy.policy.Insight. Ce type apparaît après insightTypes dans le champ insight.

  2. Copiez l'ID de l'insight sur la règle d'administration. L'ID correspond à tout ce qui suit insights/ dans le champ insight. Par exemple, si le champ "Insight" indique projects/123456789012/locations/us/insightTypes/google.orgpolicy.policy.Insight/insights/fb927dc1-9695-4436-0000-f0f285007c0f, l'ID de l'insight est fb927dc1-9695-4436-0000-f0f285007c0f.

  3. Suivez les instructions pour obtenir un insight sur les règles d'administration à l'aide de l'ID d'insight que vous avez copié.

Exporter des recommandations vers BigQuery

Pour afficher les instantanés quotidiens de toutes les recommandations pour votre organisation, y compris les recommandations concernant les règles d'administration, vous pouvez exporter vos recommandations vers BigQuery.

Pour exporter vos recommandations vers BigQuery, vous devez configurer un transfert de données à l'aide du service de transfert de données BigQuery. Pour savoir comment configurer un transfert de données, consultez Exporter des recommandations vers BigQuery.

Étapes suivantes