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 de règles d'administration vous aident à définir les règles d'administration appropriées sans perturber les systèmes.

Avant de commencer

  • Enable the Organization Policy and Recommender APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  • Configurez l'authentification.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    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. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      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 de 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'organisation, 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 bêta de l'outil de recommandation de règles d'administration présente les limites suivantes :

  • Les insights ne sont disponibles que pour les projets, les dossiers et les 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 acceptées

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

Lire et appliquer les recommandations

Vous pouvez examiner et appliquer des recommandations concernant les règles d'administration à l'aide de 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 Google Cloud projet, du dossier ou de l'organisation pour 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.

  • RECOMMENDER_SUBTYPE : facultatif. ID du sous-type pour lequel vous souhaitez afficher les recommandations. Voici les 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 d'autres 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 lorsque 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 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, tel que "7caf4103d7669e12". Notez que cette valeur peut inclure des guillemets.
    • STATE_METADATA : facultatif. Paires clé/valeur séparées par des virgules contenant votre choix de métadonnées relatives à la recommandation. Par exemple : --state-metadata=reviewedBy=alice,priority=high. Les métadonnées remplacent le champ stateInfo.stateMetadata de 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 pu l'appliquer ou sur FAILED si vous n'avez pas pu l'appliquer :

    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 appliquer la recommandation.
    • 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, tel que "7caf4103d7669e12". Notez que cette valeur peut inclure des guillemets.
    • STATE_METADATA : facultatif. Paires clé/valeur séparées par des virgules contenant votre choix de métadonnées relatives à la recommandation. Par exemple : --state-metadata=reviewedBy=alice,priority=high. Les métadonnées remplacent le champ stateInfo.stateMetadata de 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 répertorier toutes les recommandations disponibles pour votre projet, dossier ou 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 lequel vous souhaitez gérer les recommandations. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID : ID du projet, du dossier ou de l'organisationGoogle Cloud pour lequel 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 les clés de compte de service externes, et aucune violation n'est détectée. Par conséquent, la recommandation suggère de définir iam.managed.disableServiceAccountKeyCreation pour éviter d'autres 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 définir l'état d'une recommandation sur CLAIMED, ce qui empêche la modification de la recommandation lorsque 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 lequel vous souhaitez gérer les recommandations. Utilisez la valeur projects, folders ou organizations.
    • RESOURCE_ID : ID du projet, du dossier ou de l'organisationGoogle Cloud pour lequel 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: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é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 :

    SUCCEEDED

    Pour marquer une recommandation comme SUCCEEDED, ce qui indique 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 lequel vous souhaitez gérer les recommandations. Utilisez la valeur projects, folders ou organizations.
    • RESOURCE_ID : ID du projet, du dossier ou de l'organisationGoogle Cloud pour lequel 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: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, ce qui indique 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 lequel vous souhaitez gérer les recommandations. Utilisez la valeur projects, folders ou organizations.
    • RESOURCE_ID : ID du projet, du dossier ou de l'organisationGoogle Cloud pour lequel 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 pour vous aider à comprendre pourquoi elle a été émise, ainsi que des suggestions de modifications à apporter à la configuration de vos règles d'administration. Voici ses principaux attributs :

  • description : résumé lisible de la recommandation.

  • 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 générales 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 afficher 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 répertoriés dans le champ associatedInsights. Pour afficher un insight sur les règles d'administration associé à la recommandation, procédez comme suit :

  1. Identifiez les insights dans le 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 les règles de l'organisation. 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 en utilisant 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 de l'organisation, 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