Trovare gli account di servizio con autorizzazioni di movimento laterale

Questa pagina mostra come gestire gli approfondimenti sul movimento laterale, che identificano i ruoli che consentono a unaccount di serviziot in un progetto di impersonare unaccount di serviziot in un altro progetto. Per ulteriori informazioni sugli insight sul movimento laterale, vedi Come vengono generati gli insight sul movimento laterale.

A volte gli approfondimenti sul movimento laterale sono collegati ai consigli sui ruoli. I suggerimenti sui ruoli indicano le azioni che puoi intraprendere per risolvere i problemi identificati dagli approfondimenti sul movimento laterale.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire gli approfondimenti sul movimento laterale, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto, nella cartella o nell'organizzazione per cui vuoi gestire gli approfondimenti:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire gli approfondimenti sul movimento laterale. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per gestire gli insight sul lateral movement sono necessarie le seguenti autorizzazioni:

  • Per visualizzare gli insight sul movimento laterale:
    • recommender.iamPolicyLateralMovementInsights.get
    • recommender.iamPolicyLateralMovementInsights.list
  • Per modificare gli insight sul movimento laterale: recommender.iamPolicyLateralMovementInsights.update

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Elenco degli insight sul movimento laterale

Per elencare tutti gli approfondimenti sul movimento laterale per il tuo progetto, la tua cartella o la tua organizzazione, utilizza uno dei seguenti metodi:

Console

  1. Nella console Google Cloud vai alla pagina IAM.

    Vai a IAM

  2. Seleziona un progetto, una cartella o un'organizzazione.

La colonna Approfondimenti sulla sicurezza mostra tutti gli approfondimenti relativi alla sicurezza per il tuo progetto, inclusi gli approfondimenti sul movimento laterale. Gli insight sul movimento laterale hanno la forma N service account impersonations, dove N è il numero di service account che il account di servizio nel binding del ruolo può rappresentare.

gcloud

Utilizza il comando gcloud recommender insights list per visualizzare tutti gli insight sul movimento laterale per il tuo progetto, cartella o organizzazione.

Prima di eseguire il comando, sostituisci i seguenti valori:

  • RESOURCE_TYPE: Il tipo di risorsa per cui vuoi elencare gli approfondimenti. Utilizza il valore project, folder, o organization.
  • RESOURCE_ID: l'ID del progetto, della cartella o dell'organizzazione per cui vuoi elencare gli approfondimenti.
gcloud recommender insights list --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

L'output elenca tutti gli approfondimenti sul movimento laterale per il tuo progetto, cartella o organizzazione. Ad esempio:

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE              DESCRIPTION
046f8b89-bcee-46cd-9ac4-06818ed5273a  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
1328df82-5af2-4493-9850-d8ede4e72b27  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-2@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.
17f50957-333c-4f21-86c1-6a62216b309e  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-3@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.
187200d2-b42c-48fb-86d7-c2746a87fed2  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-4@another-project.iam.gserviceaccount.com from another project can impersonate 32 service account(s) under this project.
1f1740a4-ff98-4f64-99a4-5ef5df5a2097  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       CROSS_PROJECT_IMPERSONATION  Service account sa-5@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.

REST

Il metodo insights.list dell'API Recommender elenca tutti gli approfondimenti sul movimento laterale per il tuo progetto, la tua cartella o la tua organizzazione.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • RESOURCE_TYPE: Il tipo di risorsa per cui vuoi elencare gli approfondimenti. Utilizza il valore projects, folders, o organizations.
  • RESOURCE_ID: l'ID del progetto, della cartella o dell'organizzazione per cui vuoi elencare gli approfondimenti.
  • PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, come my-project.

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una di queste opzioni:

La risposta elenca tutti gli approfondimenti sul movimento laterale per il tuo progetto, cartella o organizzazione. Ad esempio:

{
  "insights": [
    {
      "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
      "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
      "content": {
        "impersonator": {
          "serviceAccount": "sa-1@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:sa-1@another-project.iam.gserviceaccount.com",
          "condition": {
            "expression": "",
            "title": "",
            "description": "",
            "location": ""
          }
        },
        "impersonationPermissionUsage": [
          {
            "permission": "iam.serviceAccounts.actAs"
            "used": false
          }
        ],
        "hasPermissionUsageData": true
      },
      "lastRefreshTime": "2022-05-24T07: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\"",
      "severity": "LOW"
    }
  ]
}

Per saperne di più sui componenti di un approfondimento, vedi Esaminare gli approfondimenti sul movimento laterale in questa pagina.

Ottenere un singolo insight sul movimento laterale

Per ottenere maggiori informazioni su un singolo approfondimento, inclusi descrizione, stato e eventuali consigli associati, utilizza uno dei seguenti metodi:

Console

  1. Nella console Google Cloud vai alla pagina IAM.

    Vai a IAM

  2. Seleziona un progetto, una cartella o un'organizzazione.
  3. Nella colonna Approfondimenti sulla sicurezza, fai clic su un approfondimento sul lateral movement. Gli insight sul movimento laterale hanno la forma N service account impersonations, dove N è il numero di service account che il account di servizio nel binding del ruolo può rappresentare.

La Google Cloud console apre un riquadro che mostra i dettagli dell'approfondimento.

gcloud

Utilizza il comando gcloud recommender insights describe con l'ID insight per visualizzare informazioni su un singolo insight.

  • INSIGHT_ID: l'ID dell'insight che vuoi visualizzare. Per trovare l'ID, elenca gli approfondimenti per il tuo progetto, cartella o organizzazione.
  • RESOURCE_TYPE: Il tipo di risorsa per cui vuoi gestire gli approfondimenti. Utilizza il valore project, folder, o organization.
  • RESOURCE_ID: L'ID del progetto, della cartella o dell'organizzazione per cui vuoi gestire gli approfondimenti.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global

L'output mostra in dettaglio l'approfondimento. Ad esempio, il seguente insight indica che il criterio IAM del progetto 123456789012 consente a sa-1@another-project.iam.gserviceaccount.com di rappresentare target-service-account-1@this-project.iam.gserviceaccount.com e 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:sa-1@another-project.iam.gserviceaccount.com
    resource: //cloudresourcemanager.googleapis.com/projects/123456789012
    role: roles/editor
  impersonator:
    isGoogleManaged: false
    serviceAccount: sa-1@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 sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
etag: '"f48fa6a1b15c7741"'
insightSubtype: CROSS_PROJECT_IMPERSONATION
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

Per saperne di più sui componenti di un insight, vedi Esaminare gli insight sul movimento laterale in questa pagina.

REST

Il metodo insights.get dell'API Recommender recupera un singolo approfondimento.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • RESOURCE_TYPE: Il tipo di risorsa per cui vuoi gestire gli insight. Utilizza il valore projects, folders, o organizations.
  • RESOURCE_ID: l'ID del progetto, della cartella o dell'organizzazione per cui vuoi gestire gli approfondimenti.
  • INSIGHT_ID: l'ID dell'insight che vuoi visualizzare. Se non conosci l'ID approfondimento, puoi trovarlo elencando gli approfondimenti nel tuo progetto, cartella o organizzazione. L'ID di un insight è tutto ciò che segue insights/ nel campo name dell'insight.
  • PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, come my-project.

Metodo HTTP e URL:

GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene l'approfondimento. Ad esempio, il seguente insight indica che il criterio IAM del progetto 123456789012 consente a sa-1@another-project.iam.gserviceaccount.com di rappresentare target-service-account-1@this-project.iam.gserviceaccount.com e 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 sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
  "content": {
    "impersonator": {
      "serviceAccount": "sa-1@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:sa-1@another-project.iam.gserviceaccount.com",
      "condition": {
        "expression": "",
        "title": "",
        "description": "",
        "location": ""
      }
    },
    "impersonationPermissionUsage": [
      {
        "permission": "iam.serviceAccounts.actAs"
        "used": false
      }
    ],
    "hasPermissionUsageData": true
  },
  "lastRefreshTime": "2022-05-24T07: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\"",
  "severity": "LOW"
}

Per saperne di più sui componenti di un insight, vedi Esaminare gli insight sul movimento laterale in questa pagina.

Esaminare gli insight sul movimento laterale

Dopo aver ottenuto un singolo approfondimento, puoi esaminarne i contenuti per comprendere il pattern di utilizzo delle risorse che mette in evidenza.

Console

Quando fai clic su un insight sul movimento laterale nella console Google Cloud , la console Google Cloud apre un riquadro che mostra i dettagli dell'insight. L'aspetto di questi dettagli dipende dal fatto che l'insight sia associato a un suggerimento.

Se l'approfondimento è associato a un suggerimento, il riquadro mostra i dettagli del suggerimento.

Se l'insight non è associato a un consiglio, il riquadro mostra quanto segue:

  • Il progetto di origine del service account: il progetto in cui è stato creato il service account con autorizzazioni di rappresentazione.

  • Service account che possono essere rappresentati in questo progetto. Un elenco di tutti i service account nel progetto attuale che il account di servizio con autorizzazioni di rappresentazione può rappresentare.

  • Autorizzazioni che consentono la rappresentazione nel progetto: un elenco delle autorizzazioni di rappresentazione di cui dispone il account di servizio.

  • Autorizzazioni attuali: un elenco di tutte le autorizzazioni del account di servizio.

gcloud

I contenuti di un approfondimento sono determinati dai relativi sottotipi. Gli approfondimenti sul movimento laterale (google.iam.policy.LateralMovementInsight) hanno il sottotipo CROSS_PROJECT_IMPERSONATION.

Gli approfondimenti di CROSS_PROJECT_IMPERSONATION sono composti dai seguenti elementi, non necessariamente in questo ordine:

  • associatedRecommendations: Gli identificatori di eventuali suggerimenti associati all'insight. Se non sono presenti suggerimenti associati all'insight, questo campo è vuoto.
  • category: la categoria per gli approfondimenti IAM è sempre SECURITY.
  • content: riporta i dettagli della capacità dell'account di servizio di simulare l'identità degli account di servizio in altri progetti. Questo campo contiene i seguenti componenti:

    • hasPermissionUsageData: un valore booleano che indica se sono presenti dati sull'utilizzo delle autorizzazioni per questa associazione dei ruoli. I dati sull'utilizzo delle autorizzazioni indicano se le autorizzazioni nel binding del ruolo sono state utilizzate. Questi dati non sono disponibili per i binding dei ruoli condizionali.
    • impersonationPermissionUsage: un elenco di autorizzazioni di rappresentazione e le relative informazioni sull'utilizzo. Se un'autorizzazione è stata utilizzata negli ultimi 90 giorni, è considerata utilizzata. In caso contrario, viene considerato inutilizzato.

      Se hasPermissionUsageData è false, il campo impersonationPermissionUsage è vuoto.

    • impersonationPolicy: informazioni sul binding del ruolo che concede le autorizzazioni di rappresentazione dell'account di servizio.
    • impersonator: dettagli sul account di servizio che ha l'autorizzazione a rappresentare service account nel tuo progetto, tra cui:
      • isGoogleManaged: indica se il account di servizio è di proprietà di Google e gestito da Google.
      • serviceAccount: l'indirizzo email del account di servizio.
      • serviceAccountOwner: il progetto proprietario del account di servizio. Se Google è proprietario del account di servizio, il valore di questo campo è Google managed. Se un progetto al di fuori della tua organizzazione è proprietario del account di servizio, il valore di questo campo è Unknown to your org.
    • targetServiceAccounts: un elenco degli account di servizio per cui l'account di servizio nel campo impersonator dispone dell'autorizzazione a rappresentare. Se l'utente malintenzionato può impersonare più di 1500 service account, l'elenco è vuoto. Per scoprire quanti service account può impersonare l'utente che impersona, consulta il campo description.
  • description: un riepilogo dell'insight leggibile.
  • etag: un identificatore univoco per lo stato attuale di un insight. Ogni volta che l'insight cambia, viene assegnato un nuovo valore etag.

    Per modificare lo stato di un approfondimento, devi fornire etag dell'approfondimento esistente. L'utilizzo di etag consente di garantire che le operazioni vengano eseguite solo se l'insight non è cambiato dall'ultima volta che l'hai recuperato.

  • insightSubtype: Il sottotipo di insight.
  • lastRefreshTime: la data dell'ultimo aggiornamento dell'approfondimento, che indica l'aggiornamento dei dati utilizzati per generare l'approfondimento.
  • name: il nome dell'insight, nel seguente formato:

    RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

    I segnaposto hanno i seguenti valori:

    • RESOURCE_TYPE: Il tipo di risorsa per cui è stato generato l'insight.
    • RESOURCE_ID: l'ID del progetto, della cartella o dell'organizzazione in cui è stato generato l'approfondimento.
    • INSIGHT_ID: un ID univoco per l'insight.
  • observationPeriod: il periodo di tempo che precede l'insight. I dati di origine utilizzati per generare l'insight terminano il giorno lastRefreshTime e iniziano il giorno lastRefreshTime meno observationPeriod.
  • severity: la gravità dell'insight. Tutti gli insight sul movimento laterale hanno una gravità pari a LOW.
  • stateInfo: gli approfondimenti passano attraverso più transizioni di stato dopo essere stati proposti:

    • ACTIVE: l'approfondimento è stato generato, ma non sono state intraprese azioni o è stata intrapresa un'azione senza aggiornare lo stato dell'approfondimento. Gli insight attivi vengono aggiornati quando cambiano i dati di base.
    • ACCEPTED: è stata intrapresa un'azione in base all'approfondimento. Gli approfondimenti vengono accettati quando un consiglio associato è stato contrassegnato come CLAIMED, SUCCEEDED o FAILED oppure quando l'approfondimento è stato accettato direttamente. Quando un approfondimento si trova nello stato ACCEPTED, il suo contenuto non può cambiare. Gli approfondimenti accettati vengono conservati per 90 giorni dopo l'accettazione.
  • targetResources: il nome completo della risorsa dell'organizzazione, della cartella, del progetto o del account di servizio a cui si riferisce l'approfondimento. Ad esempio, //cloudresourcemanager.googleapis.com/projects/123456789012.

REST

I contenuti di un approfondimento sono determinati dai relativi sottotipi. Gli approfondimenti sul movimento laterale (google.iam.policy.LateralMovementInsight) hanno il sottotipo CROSS_PROJECT_IMPERSONATION.

Gli approfondimenti di CROSS_PROJECT_IMPERSONATION sono composti dai seguenti elementi, non necessariamente in questo ordine:

  • associatedRecommendations: Gli identificatori di eventuali suggerimenti associati all'insight. Se non sono presenti suggerimenti associati all'insight, questo campo è vuoto.
  • category: la categoria per gli approfondimenti IAM è sempre SECURITY.
  • content: riporta i dettagli della capacità dell'account di servizio di simulare l'identità degli account di servizio in altri progetti. Questo campo contiene i seguenti componenti:

    • hasPermissionUsageData: un valore booleano che indica se sono presenti dati sull'utilizzo delle autorizzazioni per questa associazione dei ruoli. I dati sull'utilizzo delle autorizzazioni indicano se le autorizzazioni nel binding del ruolo sono state utilizzate. Questi dati non sono disponibili per i binding dei ruoli condizionali.
    • impersonationPermissionUsage: un elenco di autorizzazioni di rappresentazione e le relative informazioni sull'utilizzo. Se un'autorizzazione è stata utilizzata negli ultimi 90 giorni, è considerata utilizzata. In caso contrario, viene considerato inutilizzato.

      Se hasPermissionUsageData è false, il campo impersonationPermissionUsage è vuoto.

    • impersonationPolicy: informazioni sul binding del ruolo che concede le autorizzazioni di rappresentazione dell'account di servizio.
    • impersonator: dettagli sul account di servizio che ha l'autorizzazione a rappresentare service account nel tuo progetto, tra cui:
      • isGoogleManaged: indica se il account di servizio è di proprietà di Google e gestito da Google.
      • serviceAccount: l'indirizzo email del account di servizio.
      • serviceAccountOwner: il progetto proprietario del account di servizio. Se Google è proprietario del account di servizio, il valore di questo campo è Google managed. Se un progetto al di fuori della tua organizzazione è proprietario del account di servizio, il valore di questo campo è Unknown to your org.
    • targetServiceAccounts: un elenco degli account di servizio per cui l'account di servizio nel campo impersonator dispone dell'autorizzazione a rappresentare. Se l'utente malintenzionato può impersonare più di 1500 service account, l'elenco è vuoto. Per scoprire quanti service account può impersonare l'utente che impersona, consulta il campo description.
  • description: un riepilogo dell'insight leggibile.
  • etag: un identificatore univoco per lo stato attuale di un insight. Ogni volta che l'insight cambia, viene assegnato un nuovo valore etag.

    Per modificare lo stato di un approfondimento, devi fornire etag dell'approfondimento esistente. L'utilizzo di etag consente di garantire che le operazioni vengano eseguite solo se l'insight non è cambiato dall'ultima volta che l'hai recuperato.

  • insightSubtype: Il sottotipo di insight.
  • lastRefreshTime: la data dell'ultimo aggiornamento dell'approfondimento, che indica l'aggiornamento dei dati utilizzati per generare l'approfondimento.
  • name: il nome dell'insight, nel seguente formato:

    RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID

    I segnaposto hanno i seguenti valori:

    • RESOURCE_TYPE: Il tipo di risorsa per cui è stato generato l'insight.
    • RESOURCE_ID: l'ID del progetto, della cartella o dell'organizzazione in cui è stato generato l'approfondimento.
    • INSIGHT_ID: un ID univoco per l'insight.
  • observationPeriod: il periodo di tempo che precede l'insight. I dati di origine utilizzati per generare l'insight terminano il giorno lastRefreshTime e iniziano il giorno lastRefreshTime meno observationPeriod.
  • severity: la gravità dell'insight. Tutti gli insight sul movimento laterale hanno una gravità pari a LOW.
  • stateInfo: gli approfondimenti passano attraverso più transizioni di stato dopo essere stati proposti:

    • ACTIVE: l'approfondimento è stato generato, ma non sono state intraprese azioni o è stata intrapresa un'azione senza aggiornare lo stato dell'approfondimento. Gli insight attivi vengono aggiornati quando cambiano i dati di base.
    • ACCEPTED: è stata intrapresa un'azione in base all'approfondimento. Gli approfondimenti vengono accettati quando un consiglio associato è stato contrassegnato come CLAIMED, SUCCEEDED o FAILED oppure quando l'approfondimento è stato accettato direttamente. Quando un approfondimento si trova nello stato ACCEPTED, il suo contenuto non può cambiare. Gli approfondimenti accettati vengono conservati per 90 giorni dopo l'accettazione.
  • targetResources: il nome completo della risorsa dell'organizzazione, della cartella, del progetto o del account di servizio a cui si riferisce l'approfondimento. Ad esempio, //cloudresourcemanager.googleapis.com/projects/123456789012.

Contrassegnare un insight sul movimento laterale come ACCEPTED

Se intraprendi un'azione in base a un approfondimento attivo, puoi contrassegnarlo come ACCEPTED. Lo stato ACCEPTED indica all'API Recommender che hai intrapreso un'azione in base a questo approfondimento, il che contribuisce a perfezionare i tuoi consigli.

Gli approfondimenti accettati vengono conservati per 90 giorni dopo essere stati contrassegnati come ACCEPTED.

Console

Se un insight è associato a un consiglio, l'applicazione del consiglio modifica lo stato dell'insight in ACCEPTED.

Per contrassegnare un insight come ACCEPTED senza applicare un suggerimento, utilizza gcloud CLI o l'API REST.

gcloud

Utilizza il comando gcloud recommender insights mark-accepted con l'ID approfondimento per contrassegnare un approfondimento come ACCEPTED.

  • INSIGHT_ID: l'ID dell'insight che vuoi visualizzare. Per trovare l'ID, elenca gli approfondimenti per il tuo progetto, cartella o organizzazione.
  • RESOURCE_TYPE: Il tipo di risorsa per cui vuoi gestire gli approfondimenti. Utilizza il valore project, folder, o organization.
  • RESOURCE_ID: L'ID del progetto, della cartella o dell'organizzazione per cui vuoi gestire gli approfondimenti.
  • ETAG: un identificatore per una versione dell'insight. Per ottenere etag, segui questi passaggi:

    1. Ottieni l'approfondimento utilizzando il comando gcloud recommender insights describe.
    2. Trova e copia il valore etag dall'output, incluse le virgolette di chiusura. Ad esempio, "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.LateralMovementInsight \
    --RESOURCE_TYPE=RESOURCE_ID \
    --location=global \
    --etag=ETAG

L'output mostra l'approfondimento, ora con lo stato 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:sa-1@another-project.iam.gserviceaccount.com
    resource: //cloudresourcemanager.googleapis.com/projects/123456789012
    role: roles/editor
  impersonator:
    isGoogleManaged: false
    serviceAccount: sa-1@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 sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.
etag: '"f48fa6a1b15c7741"'
insightSubtype: CROSS_PROJECT_IMPERSONATION
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACCEPTED
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

Per saperne di più sullo stato di un insight, vedi Esaminare gli insight sul movimento laterale in questa pagina.

REST

Il metodo insights.markAccepted dell'API Recommender contrassegna un approfondimento come ACCEPTED.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • RESOURCE_TYPE: Il tipo di risorsa per cui vuoi gestire gli insight. Utilizza il valore projects, folders, o organizations.
  • RESOURCE_ID: l'ID del progetto, della cartella o dell'organizzazione per cui vuoi gestire gli approfondimenti.
  • INSIGHT_ID: l'ID dell'insight che vuoi visualizzare. Se non conosci l'ID approfondimento, puoi trovarlo elencando gli approfondimenti nel tuo progetto, cartella o organizzazione. L'ID di un insight è tutto ciò che segue insights/ nel campo name dell'insight.
  • ETAG: un identificatore per una versione dell'insight. Per ottenere etag, procedi nel seguente modo:
    1. Ottieni l'approfondimento utilizzando il metodo insights.get.
    2. Trova e copia il valore di etag dalla risposta.
  • PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, come my-project.

Metodo HTTP e URL:

POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID:markAccepted

Corpo JSON della richiesta:

{
  "etag": "ETAG"
}

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene l'approfondimento, ora con lo stato ACCEPTED:

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860",
  "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.",
  "content": {
    "impersonator": {
      "serviceAccount": "sa-1@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:sa-1@another-project.iam.gserviceaccount.com",
      "condition": {
        "expression": "",
        "title": "",
        "description": "",
        "location": ""
      }
    },
    "impersonationPermissionUsage": [
      {
        "permission": "iam.serviceAccounts.actAs"
        "used": false
      }
    ],
    "hasPermissionUsageData": true
  },
  "lastRefreshTime": "2022-05-24T07: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\"",
  "severity": "LOW"
}

Per saperne di più sullo stato di un insight, vedi Esaminare gli insight sul movimento laterale in questa pagina.

Passaggi successivi