Gérer les insights sur les mouvements latéraux

En plus de proposer des recommandations, l'outil de recommandation utilise le machine learning (ML) pour fournir des insights détaillés. Les insights sont des observations qui mettent en évidence des traits caractéristiques concernant l'utilisation des ressources. Par exemple, vous pouvez grâce à eux obtenir des informations supplémentaires sur l'utilisation des autorisations dans votre projet ou identifier les comptes de service inutilisés. Certains insights renvoient également à des recommandations, car ils fournissent des informations pertinentes à leurs sujets.

IAM propose plusieurs types d'insights. Cette page explique comment gérer les insights sur les mouvements latéraux (google.iam.policy.LateralMovementInsight), qui identifient les rôles permettant à un compte de service d'un projet d'emprunter l'identité d'un compte de service d'un autre projet. Pour en savoir plus sur les insights sur les mouvements latéraux, consultez la section Comment les insights sur les mouvements latéraux sont générés.

Avant de commencer

Autorisations requises

Les autorisations requises pour utiliser les insights sur les mouvements latéraux dépendent de ce que vous souhaitez faire.

Autorisations d'afficher les insights

Pour afficher les insights sur les mouvements latéraux, vous devez disposer d'un rôle comprenant les autorisations suivantes :

  • recommender.iamPolicyLateralMovementInsights.get
  • recommender.iamPolicyLateralMovementInsights.list

Pour obtenir ces autorisations tout en suivant le principe du moindre privilège, demandez à votre administrateur de vous attribuer l'un des rôles suivants :

  • Lecteur de l'outil de recommandation IAM (roles/recommender.iamViewer)
  • IAM > Examinateur de sécurité (roles/iam.securityReviewer)

Votre administrateur peut également vous attribuer un autre rôle qui inclut les autorisations requises, par exemple un rôle personnalisé ou un rôle prédéfini moins restrictif.

Autorisations de modifier les insights

Pour modifier les insights sur les mouvements latéraux, vous devez disposer d'un rôle qui inclut les autorisations suivantes :

  • recommender.iamPolicyLateralMovementInsights.get
  • recommender.iamPolicyLateralMovementInsights.list
  • recommender.iamPolicyLateralMovementInsights.update

Pour obtenir ces autorisations tout en suivant le principe du moindre privilège, demandez à votre administrateur de vous attribuer le rôle d'Administrateur de l'outil de recommandation IAM (roles/recommender.iamAdmin).

Votre administrateur peut également vous attribuer un autre rôle qui inclut les autorisations requises, par exemple un rôle personnalisé ou un rôle prédéfini moins restrictif.

Répertorier les insights sur les mouvements latéraux

Pour répertorier tous les insights sur les mouvements latéraux de votre projet, utilisez l'une des méthodes suivantes :

Console

  1. Dans Cloud Console, accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez un projet.

La colonne Insights sur la sécurité affiche tous les insights concernant la sécurité de votre projet, y compris les insights sur les mouvements latéraux. Les insights sur les mouvements latéraux se présentent sous la forme N service account impersonations, où N correspond au nombre de comptes de service dont le compte de service de la liaison de rôle peut emprunter l'identité.

gcloud

Utilisez la commande gcloud recommender insights list pour afficher tous les insights sur les mouvements latéraux de votre projet.

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

  • PROJECT_ID : ID du projet pour lequel vous souhaitez répertorier des insights. Cette liste comprend également des insights sur les mouvements latéraux pour les liaisons de rôles au niveau du compte de service au sein de votre projet.
gcloud recommender insights list --insight-type=google.iam.policy.LateralMovementInsight \
    --project=PROJECT_ID \
    --location=global

Le résultat affiche tous les insights sur les mouvements latéraux de votre projet. Exemple :

INSIGHT_ID                            LOCATION  INSIGHT_TYPE                              CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME
0bd428af-d16c-4ac0-83eb-826dbce8c9bb  global    google.iam.policy.LateralMovementInsight  SECURITY  ACTIVE         2021-03-13T08:00:00Z
13088eec-9573-415f-81a7-46e1a260e860  global    google.iam.policy.LateralMovementInsight  SECURITY  ACTIVE         2021-03-13T08:00:00Z
1343077a-c1fe-409f-a7d5-3d01349e7651  global    google.iam.policy.LateralMovementInsight  SECURITY  ACTIVE         2021-03-13T08:00:00Z
31cc14c0-8c9d-4713-a6e5-de6976b0d778  global    google.iam.policy.LateralMovementInsight  SECURITY  ACTIVE         2021-03-13T08:00:00Z
4f0fd42b-5637-47af-9200-e0e55adbf321  global    google.iam.policy.LateralMovementInsight  SECURITY  ACTIVE         2021-03-13T08:00:00Z

REST

La méthode insights.list de l'API Recommender répertorie tous les insights sur les mouvements latéraux de votre projet.

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

  • PROJECT_ID : ID du projet pour lequel vous souhaitez répertorier des insights.

Méthode HTTP et URL :

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights

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

La réponse répertorie tous les insights sur les mouvements latéraux de votre projet. Exemple :

{
  "insights": [
    {
      "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
      "description": "Service account service-account@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
      "content": {
        "impersonator": {
          "serviceAccount": "service-account@another-project.iam.gserviceaccount.com",
          "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
          "isGoogleManaged": false
        },
        "targetServiceAccounts": [
          "target-service-account-1@this-project.iam.gserviceaccount.com",
          "target-service-account-2@this-project.iam.gserviceaccount.com"
        ],
        "impersonationPolicy": {
          "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
          "role": "roles/editor",
          "member": "serviceAccount:service-account@another-project.iam.gserviceaccount.com",
          "condition": {
            "expression": "",
            "title": "",
            "description": "",
            "location": ""
          }
        },
        "impersonationPermissionUsage": [
          {
            "permission": "iam.serviceAccounts.actAs"
            "used": false
          }
        ],
        "hasPermissionUsageData": true
      },
      "lastRefreshTime": "2021-03-13T08:00:00Z",
      "observationPeriod": "7776000s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
        }
      ],
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ],
      "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
      "etag": "\"f48fa6a1b15c7741\""
    }
  ]
}

Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les mouvements latéraux sur cette page.

Obtenir un seul insight sur les mouvements latéraux

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 :

Console

  1. Dans Cloud Console, accédez à la page IAM.

    Accéder à IAM

  2. Sélectionnez un projet.
  3. Dans la colonne Insights sur la sécurité, cliquez sur un insight sur les mouvements latéraux. Les insights sur les mouvements latéraux se présentent sous la forme N service account impersonations, où N correspond au nombre de comptes de service dont le compte de service de la liaison de rôle peut emprunter l'identité.

Cloud Console ouvre un volet contenant les détails de l'insight.

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 cet ID, répertoriez les insights de votre projet.
  • PROJECT_ID : ID du projet pour lequel vous souhaitez gérer des insights.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --project=PROJECT_ID \
    --location=global

Le résultat affiche les détails de l'insight. Par exemple, l'insight suivant indique que la stratégie IAM du projet 123456789012 autorise service-account@another-project.iam.gserviceaccount.com à emprunter l'identité de target-service-account-1@this-project.iam.gserviceaccount.com et de target-service-account-2@this-project.iam.gserviceaccount.com.

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f
category: SECURITY
content:
  hasPermissionUsageData: true
  impersonationPermissionUsage:
  - permission: iam.serviceAccounts.actAs
    used: false
  impersonationPolicy:
    condition:
      description: ''
      expression: ''
      location: ''
      title: ''
    member: serviceAccount:service-account@another-project.iam.gserviceaccount.com
    resource: //cloudresourcemanager.googleapis.com/projects/123456789012
    role: roles/editor
  impersonator:
    isGoogleManaged: false
    serviceAccount: service-account@another-project.iam.gserviceaccount.com
    serviceAccountOwner: //cloudresourcemanager.googleapis.com/projects/987654321098
  targetServiceAccounts:
  - target-service-account-1@this-project.iam.gserviceaccount.com
  - target-service-account-2@this-project.iam.gserviceaccount.com
description: Service account service-account@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
etag: '"f48fa6a1b15c7741"'
insightSubtype: CROSS_PROJECT_IMPERSONATION
lastRefreshTime: '2021-03-13T08:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
observationPeriod: 7776000s
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 mouvements latéraux 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, effectuez les remplacements suivants :

  • PROJECT_ID : ID du projet pour lequel vous souhaitez gérer des 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 de votre projet. L'ID d'un insight correspond à tout ce qui suit insights/ dans le champ name de l'insight.

Méthode HTTP et URL :

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/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, l'insight suivant indique que la stratégie IAM du projet 123456789012 autorise service-account@another-project.iam.gserviceaccount.com à emprunter l'identité de target-service-account-1@this-project.iam.gserviceaccount.com et de target-service-account-2@this-project.iam.gserviceaccount.com.

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
  "description": "Service account service-account@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
  "content": {
    "impersonator": {
      "serviceAccount": "service-account@another-project.iam.gserviceaccount.com",
      "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
      "isGoogleManaged": false
    },
    "targetServiceAccounts": [
      "target-service-account-1@this-project.iam.gserviceaccount.com",
      "target-service-account-2@this-project.iam.gserviceaccount.com"
    ],
    "impersonationPolicy": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "role": "roles/editor",
      "member": "serviceAccount:service-account@another-project.iam.gserviceaccount.com",
      "condition": {
        "expression": "",
        "title": "",
        "description": "",
        "location": ""
      }
    },
    "impersonationPermissionUsage": [
      {
        "permission": "iam.serviceAccounts.actAs"
        "used": false
      }
    ],
    "hasPermissionUsageData": true
  },
  "lastRefreshTime": "2021-03-13T08:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
  "etag": "\"f48fa6a1b15c7741\""
}

Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les mouvements latéraux sur cette page.

Examiner les insights sur les mouvements latéraux

Après avoir obtenu un seul insight, vous pouvez consulter son contenu pour comprendre le modèle d'utilisation des ressources qu'il met en évidence.

Console

Lorsque vous cliquez sur un insight sur les mouvements latéraux dans Cloud Console, un volet affichant les détails de l'insight s'ouvre. L'apparence de ces détails varie selon que l'insight est associé à une recommandation ou non.

Si l'insight est associé à une recommandation, le volet affiche les détails de la recommandation.

Si l'insight n'est pas associé à une recommandation, le volet affiche les éléments suivants :

  • Projet d'origine du compte de service : projet dans lequel le compte de service avec autorisations d'usurpation d'identité a été créé.

  • Comptes de service dont l'identité peut être usurpée dans ce projet. Liste de tous les comptes de service du projet actuel dont le compte de service avec autorisations d'usurpation d'identité peut usurper l'identité.

  • Autorisations autorisant l'usurpation d'identité dans le projet : liste des autorisations d'usurpation d'identité dont dispose le compte de service.

  • Autorisations actuelles : liste de toutes les autorisations du compte de service.

gcloud

Le contenu d'un insight est déterminé par ses sous-types. Les insights sur les mouvements latéraux (google.iam.policy.LateralMovementInsight) sont compatibles avec les insights avec le sous-type CROSS_PROJECT_IMPERSONATION.

Les insights CROSS_PROJECT_IMPERSONATION 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 IAM est toujours SECURITY.
  • content : affiche les détails de la capacité du compte de service à emprunter l'identité des comptes de service d'autres projets. Ce champ contient les éléments suivants :

    • hasPermissionUsageData: valeur booléenne indiquant s'il existe des données d'utilisation pour les autorisations pour cette liaison de rôle. Les données d'utilisation des autorisations indiquent si les autorisations de la liaison de rôle ont été utilisées. Ces données ne sont pas disponibles pour les liaisons de rôle conditionnelles.
    • impersonationPermissionUsage: liste des autorisations d'emprunt d'identité et des informations d'utilisation. Si hasPermissionUsageData est défini sur "false", ce champ est vide.
    • impersonationPolicy : informations sur la liaison de rôle qui donne aux autorisations d'emprunt d'identité du compte de service.
    • impersonator : compte de service autorisé à emprunter l'identité des comptes de service de votre projet
    • targetServiceAccounts: liste des comptes de service dont le compte de service dans le champ impersonator est autorisé à emprunter l'identité. Si l'emprunt d'identité peut emprunter plus de 1 500 comptes de service, la liste est vide. Pour connaître le nombre de comptes de service que l'emprunteur peut emprunter, consultez le champ description.
  • 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 :

    projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

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

    • PROJECT_ID : ID du projet 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. Tous les insights sur les mouvements latéraux ont une gravité de LOW.
  • 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 ou du compte de service auquel l'insight est destiné. Exemple : //cloudresourcemanager.googleapis.com/projects/1234567890.

REST

Le contenu d'un insight est déterminé par ses sous-types. Les insights sur les mouvements latéraux (google.iam.policy.LateralMovementInsight) sont compatibles avec les insights avec le sous-type CROSS_PROJECT_IMPERSONATION.

Les insights CROSS_PROJECT_IMPERSONATION 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 IAM est toujours SECURITY.
  • content : affiche les détails de la capacité du compte de service à emprunter l'identité des comptes de service d'autres projets. Ce champ contient les éléments suivants :

    • hasPermissionUsageData: valeur booléenne indiquant s'il existe des données d'utilisation pour les autorisations pour cette liaison de rôle. Les données d'utilisation des autorisations indiquent si les autorisations de la liaison de rôle ont été utilisées. Ces données ne sont pas disponibles pour les liaisons de rôle conditionnelles.
    • impersonationPermissionUsage: liste des autorisations d'emprunt d'identité et des informations d'utilisation. Si hasPermissionUsageData est défini sur "false", ce champ est vide.
    • impersonationPolicy : informations sur la liaison de rôle qui donne aux autorisations d'emprunt d'identité du compte de service.
    • impersonator : compte de service autorisé à emprunter l'identité des comptes de service de votre projet
    • targetServiceAccounts: liste des comptes de service dont le compte de service dans le champ impersonator est autorisé à emprunter l'identité. Si l'emprunt d'identité peut emprunter plus de 1 500 comptes de service, la liste est vide. Pour connaître le nombre de comptes de service que l'emprunteur peut emprunter, consultez le champ description.
  • 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 :

    projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

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

    • PROJECT_ID : ID du projet 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. Tous les insights sur les mouvements latéraux ont une gravité de LOW.
  • 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 ou du compte de service auquel l'insight est destiné. Exemple : //cloudresourcemanager.googleapis.com/projects/1234567890.

Marquer un insight sur les mouvements latéraux 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.

Console

Si un insight est associé à une recommandation, l'application de la recommandation fait passer l'état de l'insight à ACCEPTED.

Pour signaler un aperçu comme ACCEPTED sans appliquer de recommandation, utilisez l'outil gcloud ou l'API REST.

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 cet ID, répertoriez les insights de votre projet.
  • PROJECT_ID : ID du projet pour lequel vous souhaitez gérer des 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.iam.policy.LateralMovementInsight \
    --project=PROJECT_ID \
    --location=global \
    --etag=ETAG

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

associatedRecommendations:
- recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f
category: SECURITY
content:
  hasPermissionUsageData: true
  impersonationPermissionUsage:
  - permission: iam.serviceAccounts.actAs
    used: false
  impersonationPolicy:
    condition:
      description: ''
      expression: ''
      location: ''
      title: ''
    member: serviceAccount:service-account@another-project.iam.gserviceaccount.com
    resource: //cloudresourcemanager.googleapis.com/projects/123456789012
    role: roles/editor
  impersonator:
    isGoogleManaged: false
    serviceAccount: service-account@another-project.iam.gserviceaccount.com
    serviceAccountOwner: //cloudresourcemanager.googleapis.com/projects/987654321098
  targetServiceAccounts:
  - target-service-account-1@this-project.iam.gserviceaccount.com
  - target-service-account-2@this-project.iam.gserviceaccount.com
description: Service account service-account@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
etag: '"f48fa6a1b15c7741"'
insightSubtype: CROSS_PROJECT_IMPERSONATION
lastRefreshTime: '2021-03-13T08:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
observationPeriod: 7776000s
stateInfo:
  state: ACCEPTED
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 mouvements latéraux 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 :

  • PROJECT_ID : ID du projet pour lequel vous souhaitez gérer des 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 de votre projet. 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.

Méthode HTTP et URL :

POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/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 :

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
  "description": "Service account service-account@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
  "content": {
    "impersonator": {
      "serviceAccount": "service-account@another-project.iam.gserviceaccount.com",
      "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098",
      "isGoogleManaged": false
    },
    "targetServiceAccounts": [
      "target-service-account-1@this-project.iam.gserviceaccount.com",
      "target-service-account-2@this-project.iam.gserviceaccount.com"
    ],
    "impersonationPolicy": {
      "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012",
      "role": "roles/editor",
      "member": "serviceAccount:service-account@another-project.iam.gserviceaccount.com",
      "condition": {
        "expression": "",
        "title": "",
        "description": "",
        "location": ""
      }
    },
    "impersonationPermissionUsage": [
      {
        "permission": "iam.serviceAccounts.actAs"
        "used": false
      }
    ],
    "hasPermissionUsageData": true
  },
  "lastRefreshTime": "2021-03-13T08:00:00Z",
  "observationPeriod": "7776000s",
  "stateInfo": {
    "state": "ACCEPTED"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f"
    }
  ],
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "CROSS_PROJECT_IMPERSONATION",
  "etag": "\"f48fa6a1b15c7741\""
}

Pour en savoir plus sur les informations d'état d'un insight, consultez la section Examiner les insights sur les mouvements latéraux sur cette page.

Étape suivante