Esamina gli insight sui criteri per i set di dati BigQuery

Questa pagina mostra come gestire gli insight sui criteri a livello di set di dati, ovvero risultati basati sul machine learning relativi all'utilizzo delle autorizzazioni per i set di dati BigQuery. Gli insight sui criteri possono aiutarti a identificare le entità che hanno autorizzazioni di cui non hanno bisogno.

Questa pagina si concentra sugli insight sui criteri per i set di dati. Il motore per suggerimenti offre anche insight sui criteri per i seguenti tipi di risorse:

Gli insight sui criteri a livello di set di dati sono talvolta collegati a suggerimenti sui ruoli. I suggerimenti sui ruoli suggeriscono azioni che puoi intraprendere per risolvere i problemi identificati dagli insight sui criteri a livello di set di dati.

Prima di iniziare

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per gestire gli insight sui criteri a livello di set di dati, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto:

  • Proprietario dati BigQuery ("roles/bigquery.dataOwner")
  • Amministratore motore per suggerimenti IAM ("roles/Recommender.iamAdmin")
  • Gestisci gli insight sui criteri a livello di set di dati con l'interfaccia a riga di comando gcloud o l'API REST: Consumer utilizzo dei servizi ("roles/serviceusage.serviceUsageConsumer")

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire gli insight sui criteri a livello di set di dati. Per visualizzare le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per gestire gli insight sui criteri a livello di set di dati sono necessarie le seguenti autorizzazioni:

  • Visualizza gli insight sui criteri a livello di set di dati:
    • recommender.iamPolicyInsights.get
    • recommender.iamPolicyInsights.list
  • Modifica insight sui criteri a livello di set di dati: recommender.iamPolicyInsights.update
  • Gestisci gli insight sui criteri a livello di set di dati con gcloud CLI o l'API REST: serviceusage.services.use

Potresti anche essere in grado di ottenere queste autorizzazioni con i ruoli personalizzati o altri ruoli predefiniti.

Elenca insight sui criteri a livello di set di dati

Per elencare tutti gli insight sui criteri a livello di set di dati per il tuo progetto, utilizza uno dei seguenti metodi:

gcloud

Utilizza il comando gcloud recommender insights list per visualizzare tutti gli insight sui criteri a livello di set di dati per il tuo progetto.

Prima di eseguire il comando, sostituisci i seguenti valori:

  • PROJECT_ID: l'ID del progetto per cui vuoi elencare gli insight.
  • LOCATION: la posizione dei set di dati di cui vuoi elencare gli insight.
gcloud recommender insights list --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION\
    --filter="insightSubtype:PERMISSIONS_USAGE_BIGQUERY_DATASET"

L'output elenca tutti gli insight sui criteri a livello di set di dati per il progetto nella località specificata. Ad esempio:

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE                     DESCRIPTION
101d03ad-6148-4628-943e-fcf1a3af6b57  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  0 of the permissions in this role binding were used in the past 90 days.
15133dd9-4cbc-41e9-8990-b189241676d8  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  0 of the permissions in this role binding were used in the past 90 days.
1590aeae-d5bf-4e3d-b7d5-e230212f5faf  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  4 of the permissions in this role binding were used in the past 90 days.
280e5a14-4d09-4ac6-8e14-be7407611ad7  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  0 of the permissions in this role binding were used in the past 90 days.
34102078-085f-45d3-ae72-81da16c75781  SECURITY  ACTIVE         2024-02-02T08:00:00Z  LOW       PERMISSIONS_USAGE_BIGQUERY_DATASET  10 of the permissions in this role binding were used in the past 90 days.

REST

Il metodo insights.list dell'API Recommender elenca tutti gli insight sui criteri a livello di set di dati per il tuo progetto.

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

  • PROJECT_ID: l'ID del progetto per cui vuoi elencare gli insight.
  • LOCATION: la posizione dei set di dati di cui vuoi elencare gli insight.

Metodo HTTP e URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights?filter=insightSubtype%20%3D%20PERMISSIONS_USAGE_BIGQUERY_DATASET

Per inviare la richiesta, espandi una di queste opzioni:

La risposta elenca tutti gli insight sui criteri a livello di set di dati per il tuo progetto nella località specificata. Ad esempio:

{
  "insights": [
    {
      "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57",
      "description": "0 of the permissions in this role binding were used in the past 90 days.",
      "content": {
        "role": "roles/bigquery.dataEditor",
        "member": "projectEditor:my-project",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [],
        "inferredPermissions": [],
        "currentTotalPermissionsCount": "37"
      },
      "lastRefreshTime": "2024-02-02T08:00:00Z",
      "observationPeriod": "7779600s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e"
        }
      ],
      "targetResources": [
        "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1"
      ],
      "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET",
      "etag": "\"35d4af47524d3f0c\"",
      "severity": "LOW"
    },
    {
      "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/15133dd9-4cbc-41e9-8990-b189241676d8",
      "description": "0 of the permissions in this role binding were used in the past 90 days.",
      "content": {
        "role": "roles/bigquery.dataViewer",
        "member": "projectViewer:my-project",
        "condition": {
          "expression": "",
          "title": "",
          "description": "",
          "location": ""
        },
        "exercisedPermissions": [],
        "inferredPermissions": [],
        "currentTotalPermissionsCount": "17"
      },
      "lastRefreshTime": "2024-02-02T08:00:00Z",
      "observationPeriod": "7779600s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "associatedRecommendations": [
        {
          "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/bc9b4c28-cc93-4a91-97ea-ff67e3cef1b4"
        }
      ],
      "targetResources": [
        "//bigquery.googleapis.com/projects/my-project/datasets/dataset-2"
      ],
      "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET",
      "etag": "\"eafa79df1b329063\"",
      "severity": "LOW"
    }
  ]
}

Per scoprire di più sui componenti di un insight, consulta Esaminare gli insight sui criteri a livello di set di dati in questa pagina.

Ottieni un singolo insight sui criteri a livello di set di dati

Per ottenere maggiori informazioni su un singolo insight, inclusi la descrizione, lo stato e gli eventuali suggerimenti associati, utilizza uno dei seguenti metodi:

gcloud

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

  • INSIGHT_ID: l'ID dell'approfondimento che vuoi visualizzare. Per trovare l'ID, elenca gli insight per il progetto.
  • PROJECT_ID: l'ID del progetto per cui vuoi gestire gli insight.
  • LOCATION: la posizione del set di dati di cui vuoi ottenere gli insight.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION

L'output mostra l'insight in dettaglio. Ad esempio, i seguenti insight indicano che tutti gli utenti con il ruolo Editor nel progetto my-project (projectEditor:my-project) hanno il ruolo Editor dati BigQuery (roles/bigquery.dataEditor) nel set di dati dataset-1, ma che nessuna delle autorizzazioni associate a questo ruolo è stata utilizzata negli ultimi 90 giorni:

associatedRecommendations:
- recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '37'
  exercisedPermissions: []
  inferredPermissions: []
  member: projectEditor:my-project
  role: roles/bigquery.dataEditor
description: 0 of the permissions in this role binding were used in the past 90 days.
etag: '"5f2f352a738f7a24"'
insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET
lastRefreshTime: '2024-02-04T08:00:00Z'
name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACTIVE
targetResources:
- //bigquery.googleapis.com/projects/my-project/datasets/dataset-1

Per scoprire di più sui componenti di un insight, consulta Esaminare gli insight sui criteri a livello di set di dati in questa pagina.

REST

Il metodo insights.get dell'API Recommender riceve un singolo insight.

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

  • PROJECT_ID: l'ID del progetto per cui vuoi gestire gli insight.
  • LOCATION: la posizione del set di dati di cui vuoi ottenere gli insight.
  • INSIGHT_ID: l'ID dell'approfondimento che vuoi visualizzare. Se non conosci l'ID insight, puoi trovarlo elencare gli insight nel tuo progetto. L'ID di un insight è costituito da tutto ciò che segue insights/ nel campo name per l'insight.

Metodo HTTP e URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene l'insight. Ad esempio, i seguenti insight indicano che tutti gli utenti con il ruolo Editor nel progetto my-project (projectEditor:my-project) hanno il ruolo Editor dati BigQuery (roles/bigquery.dataEditor) nel set di dati dataset-1, ma che nessuna delle autorizzazioni associate a questo ruolo è stata utilizzata negli ultimi 90 giorni:

{
  "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57",
  "description": "0 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/bigquery.dataEditor",
    "member": "projectEditor:my-project",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [],
    "inferredPermissions": [],
    "currentTotalPermissionsCount": "37"
  },
  "lastRefreshTime": "2024-02-02T08:00:00Z",
  "observationPeriod": "7779600s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e"
    }
  ],
  "targetResources": [
    "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1"
  ],
  "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET",
  "etag": "\"35d4af47524d3f0c\"",
  "severity": "LOW"
}

Per scoprire di più sui componenti di un insight, consulta Esaminare gli insight sui criteri a livello di set di dati in questa pagina.

Esamina gli insight sui criteri a livello di set di dati

Dopo aver ottenuto un singolo insight, puoi esaminarne i contenuti per comprendere il modello di utilizzo delle risorse evidenziato.

I contenuti di un approfondimento sono determinati dai relativi sottotipi. Gli insight sui criteri a livello di set di dati (google.iam.policy.Insight) hanno il sottotipo PERMISSIONS_USAGE_BIGQUERY_DATASET.

Gli insight PERMISSIONS_USAGE_BIGQUERY_DATASET hanno i seguenti componenti, non necessariamente in questo ordine:

  • associatedRecommendations: gli identificatori per tutti i suggerimenti associati all'insight. Se non esistono suggerimenti associati all'insight, questo campo è vuoto.
  • category: la categoria per gli insight IAM è sempre SECURITY.
  • content: segnala l'utilizzo delle autorizzazioni di un'entità per un ruolo specifico. Questo campo contiene i seguenti componenti:

    • condition: tutte le condizioni associate all'associazione che concede il ruolo all'entità. In assenza di condizioni, questo campo contiene una condizione vuota.
    • exercisedPermissions: le autorizzazioni nel ruolo utilizzate dall'entità durante il periodo di osservazione.
    • inferredPermissions: le autorizzazioni nel ruolo che il motore per suggerimenti ha stabilito, tramite ML, che l'entità probabilmente avrà bisogno in base alle autorizzazioni utilizzate.
    • member: l'entità di cui è stato analizzato l'utilizzo delle autorizzazioni.
    • role: il ruolo per il quale è stato analizzato l'utilizzo delle autorizzazioni.
  • description: un riepilogo leggibile dell'approfondimento.
  • etag: un identificatore univoco dello stato attuale di un approfondimento. Ogni volta che l'approfondimento cambia, viene assegnato un nuovo valore etag.

    Per modificare lo stato di un insight, devi fornire il valore etag dell'insight esistente. L'utilizzo di etag contribuisce ad assicurare che le operazioni vengano eseguite solo se l'insight non è cambiato dall'ultimo recupero.

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

    projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID

    I segnaposto hanno i seguenti valori:

    • PROJECT_ID: l'ID del progetto in cui è stato generato l'insight.
    • LOCATION: la posizione del set di dati a cui si riferisce l'insight.
    • INSIGHT_ID: un ID univoco per l'approfondimento.
  • observationPeriod: il periodo di tempo che ha portato all'approfondimento. I dati di origine utilizzati per generare l'insight terminano il giorno lastRefreshTime e iniziano a lastRefreshTime meno observationPeriod.
  • stateInfo: una volta proposte, gli approfondimenti passano attraverso più transizioni di stato:

    • ACTIVE: l'insight è stato generato, ma non sono state intraprese azioni oppure è stata intrapresa un'azione senza aggiornare lo stato dell'insight. Gli insight attivi vengono aggiornati quando i dati sottostanti cambiano.
    • ACCEPTED: è stata intrapresa un'azione in base alle informazioni. Gli insight vengono accettati quando un suggerimento associato è stato contrassegnato come CLAIMED, SUCCEEDED o FAILED oppure quando l'insight è stato accettato direttamente. Quando un insight è nello stato ACCEPTED, il suo contenuto non può cambiare. Gli insight accettati vengono conservati per 90 giorni dopo l'accettazione.
  • targetResources: il nome completo della risorsa del set di dati a cui è destinato l'insight. Ad esempio, //bigquery.googleapis.com/projects/my-project/datasets/my-dataset.

Contrassegna un insight sui criteri a livello di set di dati come ACCEPTED

Se intervieni in base a un approfondimento attivo, puoi contrassegnare questo insight come ACCEPTED. Lo stato ACCEPTED indica all'API Recommender che hai eseguito un'azione in base a questo insight, il che consente di perfezionare i suggerimenti.

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

gcloud

Utilizza il comando gcloud recommender insights mark-accepted con il tuo ID insight per contrassegnare un insight come ACCEPTED.

  • INSIGHT_ID: l'ID dell'approfondimento che vuoi visualizzare. Per trovare l'ID, elenca gli insight per il progetto.
  • PROJECT_ID: l'ID del progetto per cui vuoi gestire gli insight.
  • LOCATION: la posizione del set di dati di cui vuoi contrassegnare l'insight come ACCEPTED.
  • ETAG: l'identificatore di una versione dell'insight. Per ricevere etag, segui questi passaggi:

    1. Ottieni gli insight utilizzando il comando gcloud recommender insights describe.
    2. Trova e copia il valore etag dall'output, incluse le virgolette che le contengono. Ad esempio, "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.policy.Insight \
    --project=PROJECT_ID \
    --location=LOCATION \
    --etag=ETAG

L'output mostra l'approfondimento, ora con lo stato di ACCEPTED:

associatedRecommendations:
- recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e
category: SECURITY
content:
  condition:
    description: ''
    expression: ''
    location: ''
    title: ''
  currentTotalPermissionsCount: '37'
  exercisedPermissions: []
  inferredPermissions: []
  member: projectEditor:my-project
  role: roles/bigquery.dataEditor
description: 0 of the permissions in this role binding were used in the past 90 days.
etag: '"5f2f352a738f7a24"'
insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET
lastRefreshTime: '2024-02-04T08:00:00Z'
name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57
observationPeriod: 7776000s
severity: LOW
stateInfo:
  state: ACCEPTED
targetResources:
- //bigquery.googleapis.com/projects/my-project/datasets/dataset-1

Per saperne di più sulle informazioni sullo stato di un insight, consulta Esaminare gli insight sui criteri a livello di set di dati in questa pagina.

REST

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

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

  • PROJECT_ID: l'ID del progetto per cui vuoi gestire gli insight.
  • LOCATION: la posizione del set di dati di cui vuoi contrassegnare l'insight come ACCEPTED.
  • INSIGHT_ID: l'ID dell'approfondimento che vuoi visualizzare. Se non conosci l'ID insight, puoi trovarlo elencare gli insight nel tuo progetto. L'ID di un insight è costituito da tutto ciò che segue insights/ nel campo name per l'insight.
  • ETAG: l'identificatore di una versione dell'insight. Per scaricare etag, segui questi passaggi:
    1. Ottieni insight utilizzando il metodo insights.get.
    2. Trova e copia il valore etag dalla risposta.

Metodo HTTP e URL:

POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID:markAccepted

Corpo JSON della richiesta:

{
  "etag": "ETAG"
}

Per inviare la richiesta, espandi una di queste opzioni:

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

{
  "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57",
  "description": "0 of the permissions in this role binding were used in the past 90 days.",
  "content": {
    "role": "roles/bigquery.dataEditor",
    "member": "projectEditor:my-project",
    "condition": {
      "expression": "",
      "title": "",
      "description": "",
      "location": ""
    },
    "exercisedPermissions": [],
    "inferredPermissions": [],
    "currentTotalPermissionsCount": "37"
  },
  "lastRefreshTime": "2024-02-02T08:00:00Z",
  "observationPeriod": "7779600s",
  "stateInfo": {
    "state": "ACCEPTED"
  },
  "category": "SECURITY",
  "associatedRecommendations": [
    {
      "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e"
    }
  ],
  "targetResources": [
    "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1"
  ],
  "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET",
  "etag": "\"35d4af47524d3f0c\"",
  "severity": "LOW"
}

Per saperne di più sulle informazioni sullo stato di un insight, consulta Esaminare gli insight sui criteri a livello di set di dati in questa pagina.

Passaggi successivi