Consulter les insights sur les règles d'administration pour les projets, les dossiers et les organisations

Cette page explique comment gérer les insights sur les règles de l'organisation, qui sont des informations sur la configuration et l'utilisation des ressources. Les insights sur les règles d'administration peuvent vous aider à identifier les ressources qui ne sont pas protégées par les règles d'administration.

Les insights sur les règles d'administration sont parfois associés à des recommandations sur les règles d'administration. Les recommandations sur les règles d'administration suggèrent des actions que vous pouvez effectuer pour résoudre les problèmes identifiés par les insights sur les règles d'administration.

Avant de commencer

Rôles requis

Pour obtenir les autorisations nécessaires pour afficher et modifier les insights sur les règles d'administration, demandez à votre administrateur de vous accorder le rôle IAM Administrateur du Recommandeur de règles d'administration (roles/recommender.orgPolicyAdmin) sur la ressource pour laquelle vous souhaitez gérer les insights (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.

Ce rôle prédéfini contient les autorisations requises pour afficher et modifier les insights sur les 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 afficher et modifier les insights sur les règles d'administration:

  • recommender.orgPolicyInsights.get
  • recommender.orgPolicyInsights.list
  • recommender.orgPolicyInsights.update

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

Répertorier les insights sur les règles d'administration

Pour répertorier tous les insights sur les stratégies de l'organisation pour votre projet, dossier ou organisation, utilisez l'une des méthodes suivantes:

gcloud

Utilisez la commande gcloud recommender insights list pour afficher tous les insights sur les règles d'administration de votre projet, dossier ou organisation.

Avant d'exécuter la commande, remplacez les valeurs suivantes :

  • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez répertorier des insights. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID: ID du projet, du dossier ou de l'organisation pour lequel vous souhaitez répertorier des insights.
gcloud recommender insights list --insight-type=google.orgpolicy.policy.Insight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

Le résultat affiche tous les insights sur les stratégies de l'organisation pour votre projet, votre dossier ou votre organisation. Exemple :

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE                                          DESCRIPTION
66d543f3-845d-49d6-a26b-80d84804d8a8  SECURITY  ACTIVE         2024-12-10T08:00:00Z  HIGH      RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION  Scanned 3 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.

REST

La méthode insights.list de l'API Recommender répertorie tous les insights sur les stratégies de l'organisation pour votre projet, votre dossier ou votre organisation.

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

  • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez répertorier des insights. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID: ID du projet, du dossier ou de l'organisation pour lequel vous souhaitez répertorier des insights.
  • 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/insightTypes/google.orgpolicy.policy.Insight/insights

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

La réponse répertorie tous les insights sur les stratégies de l'organisation pour votre projet, votre dossier ou votre organisation. Exemple :

[
  {
    "associatedRecommendations": [
      {
        "recommendation": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f"
      }
    ],
    "category": "SECURITY",
    "content": {
      "consolidatedPolicy": {
        "inheritFromParent": false,
        "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
        "policyRules": {
          "rules": [
            {
              "enforce": false
            }
          ]
        },
        "reset": false
      },
      "constraint": {
        "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
        "name": "Disable service account key creation"
      },
      "evaluatedResources": [
        {
          "numOfResources": "2",
          "resourceType": "iam.googleapis.com/ServiceAccountKey"
        },
        {
          "numOfResources": "1",
          "resourceType": "cloudresourcemanager.googleapis.com/Project"
        }
      ],
      "violations": [
        {
          "numOfResources": "0",
          "resourceType": "iam.googleapis.com/ServiceAccountKey"
        },
        {
          "numOfResources": "0",
          "resourceType": "cloudresourcemanager.googleapis.com/Project"
        }
      ]
    },
    "description": "Scanned 3 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"9a1ad019022f9f56\"",
    "insightSubtype": "RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "lastRefreshTime": "2024-12-07T08:00:00Z",
    "name": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8",
    "observationPeriod": "86400s",
    "severity": "HIGH",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les règles d'administration sur cette page.

Obtenir un seul insight sur une règle d'administration

Pour obtenir plus d'informations sur un seul insight, y compris sa description, son état et toutes les recommandations auxquelles il est associé, utilisez l'une des méthodes suivantes :

gcloud

Pour afficher les informations sur un seul insight, exécutez la commande gcloud recommender insights describe avec l'ID de l'insight.

  • INSIGHT_ID : ID de l'insight que vous souhaitez afficher. Pour trouver l'ID, répertoriez les insights sur votre projet, dossier ou organisation.
  • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez gérer des insights. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID: ID du projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les insights.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.orgpolicy.policy.Insight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

Le résultat affiche les détails de l'insight. Par exemple, deux ressources sont analysées pour les clés de compte de service externes, et aucune infraction n'est détectée:

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
category: SECURITY
content:
  consolidatedPolicy:
    inheritFromParent: false
    name: 'projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation'
    policyRules:
      rules: [
        "enforce": false
      ]
    reset: false
  constraint: {
    id: constraints/iam.managed.disableServiceAccountKeyCreation
    name: Disable service account key creation
  }
  evaluatedResources:
  - numOfResources: '1'
    resourceType: cloudresourcemanager.googleapis.com/Project
  - numOfResources: '2'
    resourceType: iam.googleapis.com/ServiceAccountKey
  violations:
  - numOfResources: '0'
    resourceType: iam.googleapis.com/ServiceAccountKey
  - numOfResources: '0'
    resourceType: cloudresourcemanager.googleapis.com/Project
description: Scanned 3 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.
etag: '"34ddfdcefd214fd7"'
insightSubtype: RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION
lastRefreshTime: '2024-12-10T08:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8
observationPeriod: 86400s
severity: HIGH
stateInfo:
  state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les règles d'administration sur cette page.

REST

La méthode insights.get de l'API Recommender permet d'obtenir un seul insight.

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 des insights. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID: ID du projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les insights.
  • INSIGHT_ID : ID de l'insight que vous souhaitez afficher. Si vous ne connaissez pas l'ID de l'insight, vous pouvez le trouver en répertoriant les insights dans votre projet, dossier ou organisation. L'ID d'un insight correspond à tout ce qui suit insights/ dans le champ name de l'insight.
  • 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/insightTypes/google.orgpolicy.policy.Insight/insights/INSIGHT_ID

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

La réponse contient les détails de l'insight. Par exemple, deux ressources sont analysées pour les clés de compte de service externes, et aucune infraction n'est détectée:

[
  {
    "associatedRecommendations": [
      {
        "recommendation": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f"
      }
    ],
    "category": "SECURITY",
    "content": {
      "consolidatedPolicy": {
        "inheritFromParent": false,
        "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
        "policyRules": {
          "rules": [
            {
              "enforce": false
            }
          ]
        },
        "reset": false
      },
      "constraint": {
        "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
        "name": "Disable service account key creation"
      },
      "evaluatedResources": [
        {
          "numOfResources": "1",
          "resourceType": "cloudresourcemanager.googleapis.com/Project"
        },
        {
          "numOfResources": "2",
          "resourceType": "iam.googleapis.com/ServiceAccountKey"
        }
      ],
      "violations": [
        {
          "numOfResources": "0",
          "resourceType": "iam.googleapis.com/ServiceAccountKey"
        },
        {
          "numOfResources": "0",
          "resourceType": "cloudresourcemanager.googleapis.com/Project"
        }
      ]
    },
    "description": "Scanned 2 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"9a1ad019022f9f56\"",
    "insightSubtype": "RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "lastRefreshTime": "2024-12-03T08:00:00Z",
    "name": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8",
    "observationPeriod": "86400s",
    "severity": "HIGH",
    "stateInfo": {
      "state": "ACTIVE",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les règles d'administration sur cette page.

Examiner les insights sur les règles d'administration

Après avoir obtenu un seul insight, vous pouvez consulter son contenu pour comprendre la configuration de la stratégie de l'organisation sur vos ressources, y compris les cas de non-respect.

Les insights sur les règles de l'organisation (google.orgpolicy.policy.Insight) incluent les composants suivants, mais pas nécessairement dans cet ordre:

  • associatedRecommendations: identifiants de toutes les recommandations associées à l'insight. Si aucune recommandation n'est associée à l'insight, ce champ est vide.
  • category: la catégorie des insights sur les règles de l'organisation est toujours SECURITY.
  • content: fournit des informations sur les ressources et la stratégie de l'organisation qui ont été analysées. Ce champ contient les éléments suivants :
    • constraint: contrainte analysée.
    • consolidatedPolicy: règle de l'organisation pour la ressource analysée.
    • evaluatedResources: ressources évaluées pour générer l'insight.
    • violations: nombre et types de ressources qui ne respectent pas le règlement de l'organisation.
  • description : résumé lisible de l'insight.
  • etag : identifiant unique de l'état actuel d'un insight. Chaque fois que l'insight change, une nouvelle valeur etag est assignée à ce champ.

    Pour modifier l'état d'un insight, vous devez indiquer l'etag de l'insight existant. L'utilisation de l'etag permet de garantir que l'opération n'est effectuée que si l'insight n'a pas changé depuis qu'il a été récupéré.

  • insightSubtype : sous-type de l'insight
  • lastRefreshTime: date de la dernière actualisation de l'insight. Elle donne une idée de la fraîcheur des données utilisées pour générer l'insight.
  • name : nom de l'insight, au format suivant :

    RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/INSIGHT_ID

    Les espaces réservés prennent les valeurs suivantes :

    • RESOURCE_TYPE: type de ressource pour lequel l'insight a été généré.
    • RESOURCE_ID: ID du projet, du dossier ou de l'organisation dans lequel l'insight a été généré.
    • INSIGHT_ID : ID unique de l'insight.
  • observationPeriod : période d'observation ayant donné lieu à la génération de l'insight. Les données sources permettant de générer l'insight se terminent à la dernière actualisation (lastRefreshTime) et commencent à la dernière actualisation (lastRefreshTime) en décomptant la période d'observation (observationPeriod).
  • severity : gravité de l'insight. Les insights sur les règles d'administration ont un niveau de gravité de HIGH.
  • stateInfo: état de l'insight. Les insights passent par différents états après leur création:

    • ACTIVE (actif) : l'insight a été généré, mais aucune action n'a été effectuée, ou l'état de l'insight n'a pas été mis à jour suite à l'action qui a été effectuée. Les insights dans cet état sont mis à jour lorsque les données sous-jacentes changent.
    • ACCEPTED (accepté) : des actions ont été effectuées en réponse à l'insight. Les insights passent dans cet état lorsqu'une recommandation associée a été marquée comme CLAIMED, SUCCEEDED ou FAILED, ou lorsque l'insight a été accepté directement. Lorsqu'un insight est à l'état ACCEPTED, son contenu ne peut pas changer. Une fois dans cet état, les insights sont conservés pendant 90 jours.
  • targetResources: nom complet de la ressource du projet, du dossier ou de l'organisation auquel l'insight est destiné. Exemple : //cloudresourcemanager.googleapis.com/projects/1234567890

Marquer un insight sur une stratégie d'organisation comme ACCEPTED

Si vous effectuez une action en réponse à un insight actif, vous pouvez marquer cet insight comme ACCEPTED. L'état ACCEPTED indique à l'API Recommender que vous avez effectué une action sur la base de cet insight, ce qui lui permettra d'affiner ses recommandations futures.

Les insights acceptés sont conservés pendant 90 jours après avoir été marqués comme ACCEPTED.

gcloud

Pour marquer un insight comme ACCEPTED, exécutez la commande gcloud recommender insights mark-accepted avec l'ID de l'insight.

  • INSIGHT_ID : ID de l'insight que vous souhaitez afficher. Pour trouver l'ID, répertoriez les insights sur votre projet, dossier ou organisation.
  • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez gérer des insights. Utilisez la valeur project, folder ou organization.
  • RESOURCE_ID: ID du projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les insights.
  • ETAG : identifiant d'une version de l'insight. Pour obtenir la valeur etag, procédez comme suit :

    1. Consultez l'insight à l'aide de la commande gcloud recommender insights describe.
    2. Dans le résultat, recherchez le champ etag et copiez sa valeur, guillemets compris. Exemple :"d3cdec23cc712bd0"
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.orgpolicy.policy.Insight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global \
    --etag=ETAG

Le résultat affiche l'insight, dont l'état est maintenant ACCEPTED :

associatedRecommendations:
- recommendation: folders/234567890123/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
category: SECURITY
content:
  consolidatedPolicy:
    inheritFromParent: false
    name: 'projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation'
    policyRules:
      rules: [
        "enforce": false
      ]
    reset: false
  constraint: {
    id: constraints/iam.managed.disableServiceAccountKeyCreation
    name: Disable service account key creation
  }
  evaluatedResources:
  - numOfResources: '0'
    resourceType: iam.googleapis.com/ServiceAccountKey
  - numOfResources: '1'
    resourceType: cloudresourcemanager.googleapis.com/Folder
  - numOfResources: '1'
    resourceType: cloudresourcemanager.googleapis.com/Project
  violations:
  - numOfResources: '0'
    resourceType: iam.googleapis.com/ServiceAccountKey
  - numOfResources: '0'
    resourceType: cloudresourcemanager.googleapis.com/Folder
  - numOfResources: '0'
    resourceType: cloudresourcemanager.googleapis.com/Project
description: Scanned 2 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyUpload.
etag: '"2cbb89b22fe2dab7"'
insightSubtype: RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_UPLOAD
lastRefreshTime: '2024-12-10T08:00:00Z'
name: folders/234567890123/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8
observationPeriod: 86400s
severity: HIGH
stateInfo:
  state: ACCEPTED
targetResources:
- //cloudresourcemanager.googleapis.com/folders/234567890123

Pour en savoir plus sur les informations d'état d'un insight, consultez la section Examiner les insights sur les règles d'administration sur cette page.

REST

La méthode insights.markAccepted de l'API Recommender marque un insight comme ACCEPTED.

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

  • RESOURCE_TYPE : type de ressource pour lequel vous souhaitez gérer des insights. Utilisez la valeur projects, folders ou organizations.
  • RESOURCE_ID: ID du projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les insights.
  • INSIGHT_ID : ID de l'insight que vous souhaitez afficher. Si vous ne connaissez pas l'ID de l'insight, vous pouvez le trouver en répertoriant les insights dans votre projet, dossier ou organisation. L'ID d'un insight correspond à tout ce qui suit insights/ dans le champ name de l'insight.
  • ETAG : identifiant d'une version de l'insight. Pour obtenir la valeur etag, procédez comme suit :
    1. Obtenez l'insight à l'aide de la méthode insights.get.
    2. Recherchez et copiez la valeur etag à partir de la réponse.
  • 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/insightTypes/google.orgpolicy.policy.Insight/insights/INSIGHT_ID:markAccepted

Corps JSON de la requête :

{
  "etag": "ETAG"
}

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

La réponse contient l'insight, dont l'état est ACCEPTED :

[
  {
    "associatedRecommendations": [
      {
        "recommendation": "projects/123456789012/locations/global/recommenders/google.orgpolicy.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f"
      }
    ],
    "category": "SECURITY",
    "content": {
      "consolidatedPolicy": {
        "inheritFromParent": false,
        "name": "projects/123456789012/policies/iam.managed.disableServiceAccountKeyCreation",
        "policyRules": {
          "rules": [
            {
              "enforce": false
            }
          ]
        },
        "reset": false
      },
      "constraint": {
        "id": "constraints/iam.managed.disableServiceAccountKeyCreation",
        "name": "Disable service account key creation"
      },
      "evaluatedResources": [
        {
          "numOfResources": "1",
          "resourceType": "cloudresourcemanager.googleapis.com/Project"
        },
        {
          "numOfResources": "2",
          "resourceType": "iam.googleapis.com/ServiceAccountKey"
        }
      ],
      "violations": [
        {
          "numOfResources": "0",
          "resourceType": "iam.googleapis.com/ServiceAccountKey"
        },
        {
          "numOfResources": "0",
          "resourceType": "cloudresourcemanager.googleapis.com/Project"
        }
      ]
    },
    "description": "Scanned 2 resources and found 0 violations for constraints/iam.managed.disableServiceAccountKeyCreation.",
    "etag": "\"9a1ad019022f9f56\"",
    "insightSubtype": "RESOURCE_VIOLATION_DISABLE_SERVICE_ACCOUNT_KEY_CREATION",
    "lastRefreshTime": "2024-12-03T08:00:00Z",
    "name": "projects/123456789012/locations/global/insightTypes/google.orgpolicy.policy.Insight/insights/66d543f3-845d-49d6-a26b-80d84804d8a8",
    "observationPeriod": "86400s",
    "severity": "HIGH",
    "stateInfo": {
      "state": "ACCEPTED",
      "stateMetadata": {
        "reviewedBy": "alice",
        "priority": "high"
      }
    },
    "targetResources": [
      "//cloudresourcemanager.googleapis.com/projects/123456789012"
    ]
  }
]

Pour en savoir plus sur les informations d'état d'un insight, consultez la section Examiner les insights sur les règles d'administration sur cette page.

Étape suivante