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

Cette page explique comment afficher, comprendre et appliquer les recommandations de règles de l'organisation. 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.

    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 d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

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

  • Découvrez 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 stratégie de l'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 la page 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 associés à des recommandations.

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

Contraintes acceptées

Les recommandations ne sont disponibles que pour les contraintes de stratégie de l'organisation suivantes:

Lire et appliquer les recommandations

Vous pouvez examiner et appliquer les recommandations concernant les règles de l'organisation à 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 projet, du dossier ou de l' Google Cloud 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 obtenir des recommandations. Les sous-types valides sont les suivants:

    • 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 futures infractions.

[
  {
    "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 la section 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, telle 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 de l'organisation 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 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, telle 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 annuler les modifications apportées à la règle d'administration de l'organisation, définissez la règle de l'organisation 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 ci-dessous, 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: l' Google Cloud ID de votre projet. 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 infraction n'est détectée. Par conséquent, la recommandation suggère de définir iam.managed.disableServiceAccountKeyCreation pour éviter de futures infractions.

[
  {
    "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 la section 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 sa modification lorsque vous l'appliquez, utilisez la méthode recommendations.markClaimed de l'API Recommender.

    Avant d'utiliser les données de requête ci-dessous, 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: l' Google Cloud ID de votre projet. 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 ci-dessous, 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: l' Google Cloud ID de votre projet. 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 ci-dessous, 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: l' Google Cloud ID de votre projet. 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 et 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 apportées à votre stratégie d'organisation.

    • overview: informations récapitulatives 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 plusieurs opérations sur la stratégie de l'organisation lorsque vous appliquez une recommandation.

  • associatedInsights: nom de la 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.

Des insights et des recommandations sont générés pour les ressources auxquelles aucune des règles d'administration compatibles n'est appliquée, ni à aucune de ses ressources enfants. Pour afficher la configuration des règles 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 de l'organisation. Les insights sur les règles d'administration de l'organisation sont de type google.orgpolicy.policy.Insight. Ce type apparaît après insightTypes dans le champ insight.

  2. Copiez l'ID de l'insight sur les stratégies de l'organisation. L'ID correspond à tout ce qui suit insights/ dans le champ insight. Par exemple, si le champ d'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 de l'organisation en utilisant l'ID d'insight que vous avez copié.

Exporter des recommandations vers BigQuery

Pour afficher des 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.

Étape suivante