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 set di dati BigQuery. Gli insight sulle norme possono aiutarti a identificare quali entità hanno autorizzazioni non necessarie.

Questa pagina è incentrata sugli insight relativi ai criteri per i set di dati. Il motore per suggerimenti offre anche norme insight per i seguenti tipi di risorse:

A volte gli insight sui criteri a livello di set di dati sono collegati a dei ruoli. I suggerimenti sui ruoli suggeriscono azioni che per risolvere i problemi identificati dagli insight sulle norme 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 gcloud CLI 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 le autorizzazioni necessarie per gestire gli insight sui criteri a livello di set di dati. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

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

  • Visualizza insight sui criteri a livello di set di dati:
    • recommender.iamPolicyInsights.get
    • recommender.iamPolicyInsights.list
  • Modifica gli 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 riuscire a ottenere queste autorizzazioni con ruoli personalizzati 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 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 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 del i 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 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

L'API Recommender insights.list che elenca tutti gli insight sui criteri a livello di set di dati per 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 del i 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 delle seguenti opzioni:

La risposta elenca tutti gli insight sui criteri a livello di set di dati per 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 approfondimento, consulta Esaminare insight sui criteri a livello di set di dati su questa pagina.

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

Per ottenere maggiori informazioni su un singolo approfondimento, tra cui la descrizione, lo stato e gli eventuali consigli associati, utilizza i seguenti metodi:

gcloud

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

  • INSIGHT_ID: l'ID dell'insight che vuoi vista. Per trovare l'ID, elenca gli approfondimenti relativi alla tua progetto.
  • PROJECT_ID: l'ID del il progetto per cui vuoi gestire gli insight.
  • LOCATION: la posizione del di cui vuoi ottenere l'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, gli insight seguenti indicano che tutti gli utenti con il ruolo Editor nel progetto my-project (projectEditor:my-project) ha il ruolo Editor dati BigQuery (roles/bigquery.dataEditor) sul set di dati dataset-1, ma nessuno degli per il ruolo sono state utilizzate 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 approfondimento, consulta Esaminare insight sui criteri a livello di set di dati su questa pagina.

REST

L'API Recommender insights.get ottiene un singolo insight.

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

  • PROJECT_ID: l'ID del il progetto per cui vuoi gestire gli insight.
  • LOCATION: la posizione del di cui vuoi ottenere l'insight.
  • INSIGHT_ID: l'ID dell'insight che vuoi visualizzare. Se non conosci l'ID insight, puoi trovarlo elenca gli approfondimenti nel tuo progetto. L'ID di un approfondimento è tutto dopo insights/ nel campo name per l'approfondimento.

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 delle seguenti opzioni:

La risposta contiene l'insight. Ad esempio, gli insight seguenti indicano che tutti gli utenti con il ruolo Editor nel progetto my-project (projectEditor:my-project) ha il ruolo Editor dati BigQuery (roles/bigquery.dataEditor) sul set di dati dataset-1, ma nessuno degli per il ruolo sono state utilizzate 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 approfondimento, consulta Esaminare insight sui criteri a livello di set di dati su 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 pattern della risorsa l'utilizzo che mette in evidenza.

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

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

  • associatedRecommendations: gli identificatori di eventuali consigli associati con l'insight. Se non ci sono 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 il parametro i seguenti componenti:

    • condition: tutte le condizioni associate all'associazione che concede il ruolo all'entità. Se ci sono non ci sono condizioni, questo campo contiene una condizione vuota.
    • exercisedPermissions: le autorizzazioni nel ruolo utilizzate dall'entità durante la di osservazione.
    • inferredPermissions: le autorizzazioni nel ruolo del motore per suggerimenti determinato, mediante ML, che l'entità di cui avranno bisogno in base alle autorizzazioni esercitate.
    • member: l'entità di cui è stato analizzato l'utilizzo delle autorizzazioni.
    • role: il ruolo per cui è stato analizzato l'utilizzo delle autorizzazioni.
  • description: un riepilogo leggibile dell'approfondimento.
  • etag: un identificatore univoco per lo stato attuale di un approfondimento. Ogni volta che l'insight cambia, viene assegnato un nuovo valore etag.

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

  • insightSubtype: il sottotipo di approfondimento.
  • lastRefreshTime: la data dell'ultimo aggiornamento dell'insight. 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 a cui si riferisce l'insight.
    • INSIGHT_ID: un ID univoco per l'insight.
  • observationPeriod: il periodo di tempo che ha portato all'approfondimento. La i dati di origine utilizzati per generare l'insight terminano alle ore lastRefreshTime e inizia alle ore lastRefreshTime meno observationPeriod.
  • stateInfo: gli insight vengono sottoposti a più transizioni di stato dopo viene proposto:

    • ACTIVE: l'insight è stato generato, ma non è stata eseguita alcuna azione. o è stata eseguita un'azione senza aggiornare lo stato dell'insight. Attivo gli insight vengono aggiornati quando i dati sottostanti cambiano.
    • ACCEPTED: sono state intraprese azioni in base alle informazioni. Consigli vengono accettati quando un consiglio associato è stato contrassegnato come CLAIMED SUCCEEDED, o FAILED, oppure l'insight è stato accettato direttamente. Quando un approfondimento è nello stato ACCEPTED, i contenuti dell'insight non possono modifica. Gli insight accettati vengono conservati per 90 giorni dopo vengono accettati.
  • targetResources: il nome completo della risorsa del set di dati a cui si riferisce l'insight. Ad esempio: //bigquery.googleapis.com/projects/my-project/datasets/my-dataset.

Contrassegna un insight sul criterio a livello di set di dati come ACCEPTED

Se intervieni sulla base di un approfondimento attivo, puoi contrassegnarlo come ACCEPTED. Lo stato ACCEPTED indica API Recommender che hai intrapreso in base a questo informazioni, che aiutano a perfezionare i consigli.

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

gcloud

Utilizza la Comando gcloud recommender insights mark-accepted con il tuo ID insight da contrassegnare un approfondimento come ACCEPTED.

  • INSIGHT_ID: l'ID dell'insight che vuoi vista. Per trovare l'ID, elenca gli approfondimenti relativi alla tua progetto.
  • PROJECT_ID: l'ID del il progetto per cui vuoi gestire gli insight.
  • LOCATION: la posizione del del set di dati di cui vuoi contrassegnare l'insight come ACCEPTED.
  • ETAG: un identificatore di una versione dell'insight. A scarica etag, procedi nel seguente modo:

    1. Ottieni l'insight usando il comando gcloud recommender insights describe.
    2. Trova e copia il valore etag dall'output, incluso il relativo citazioni. 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'insight, ora con lo stato 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 scoprire di più sulle informazioni sullo stato di un approfondimento, consulta la sezione Esaminare insight sui criteri a livello di set di dati su questa pagina.

REST

L'API Recommender insights.markAccepted contrassegna un insight come ACCEPTED.

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

  • PROJECT_ID: l'ID del il progetto per cui vuoi gestire gli insight.
  • LOCATION: la posizione del del set di dati di cui vuoi contrassegnare l'insight come ACCEPTED.
  • INSIGHT_ID: l'ID dell'insight che vuoi visualizzare. Se non conosci l'ID insight, puoi trovarlo elenca gli approfondimenti nel tuo progetto. L'ID di un approfondimento è tutto dopo insights/ nel campo name per l'approfondimento.
  • ETAG: un identificatore di una versione dell'insight. A scarica etag, procedi nel seguente modo:
    1. Ottieni informazioni utilizzando 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 delle seguenti opzioni:

La risposta contiene l'insight, ora con lo stato 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 scoprire di più sulle informazioni sullo stato di un approfondimento, consulta la sezione Esaminare insight sui criteri a livello di set di dati su questa pagina.

Passaggi successivi