Questa pagina spiega come visualizzare, comprendere e applicare il ruolo IAM per i set di dati BigQuery. Guida per i suggerimenti sui ruoli di applicare il principio del privilegio minimo assicurando che le entità dispongano ma solo le autorizzazioni di cui hanno effettivamente bisogno.
Prima di iniziare
Enable the IAM and Recommender APIs.
Comprendere i suggerimenti per i ruoli.
Ruoli IAM richiesti
Per ottenere le autorizzazioni necessarie per gestire i suggerimenti sui ruoli a livello di set di dati, chiedi all'amministratore di concederti seguenti ruoli IAM:
-
Visualizzatore del ruolo (
roles/iam.roleViewer
) del tuo progetto -
Amministratore motore per suggerimenti IAM (
roles/recommender.iamAdmin
) nel tuo progetto -
Proprietario dati BigQuery (
roles/bigquery.dataOwner
) sul tuo set di dati
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire i consigli sui ruoli a livello di set di dati. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per gestire i consigli sui ruoli a livello di set di dati sono necessarie le seguenti autorizzazioni:
-
Per visualizzare i consigli:
-
iam.roles.get
del tuo progetto -
iam.roles.list
sul tuo progetto -
recommender.iamPolicyRecommendations.get
sul tuo progetto -
recommender.iamPolicyRecommendations.list
del tuo progetto -
recommender.iamPolicyInsights.get
sul tuo progetto -
recommender.iamPolicyInsights.list
sul tuo progetto -
bigquery.datasets.getIamPolicy
nel tuo set di dati
-
-
Per applicare e ignorare i consigli:
-
recommender.iamPolicyRecommendations.update
sul tuo progetto -
bigquery.datasets.setIamPolicy
sul tuo set di dati
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Revisione e applicazione dei suggerimenti
Puoi esaminare e applicare i consigli sui ruoli a livello di set di dati con Google Cloud CLI e l'API Recommender.
gcloud
Esamina i consigli:
Per elencare i suggerimenti a livello di set di dati, esegui
gcloud recommender recommendations list
filtrando solo per i suggerimenti sui set di dati BigQuery:
gcloud recommender recommendations list \
--location=LOCATION \
--recommender=google.iam.policy.Recommender \
--project=PROJECT_ID \
--format=json \
--filter="recommenderSubtype:REMOVE_ROLE_BIGQUERY_DATASET OR recommenderSubtype:REPLACE_ROLE_BIGQUERY_DATASET"
Sostituisci i seguenti valori:
LOCATION
: la regione in cui Cloud Storage dei set di dati, ad esempious
ous-central1
.PROJECT_ID
: l'ID del progetto Google Cloud che contiene i tuoi set di dati BigQuery. Gli ID progetto sono stringhe alfanumeriche, comemy-project
.
La risposta è simile al seguente esempio. In questo esempio, 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
.
Tuttavia, questo ruolo non è stato utilizzato in passato
per 90 giorni. Di conseguenza, il suggerimento per il ruolo ti consiglia di revocare il ruolo:
[ { "associatedInsights": [ { "insight": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/984eccca-0241-472f-baab-2557dd0d7282" } ], "content": { "operationGroups": [ { "operations": [ { "action": "remove", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "projectEditor:my-project", "/iamPolicy/bindings/*/role": "roles/bigquery.dataEditor" }, "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1", "resourceType": "bigquery.googleapis.com/Dataset" } ] } ], "overview": { "addedRoles": [], "member": "projectEditor:my-project", "minimumObservationPeriodInDays": "0", "removedRole": "roles/bigquery.dataEditor", "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" } }, "description": "This role has not been used during the observation window.", "etag": "\"3b123bc08d028128\"", "lastRefreshTime": "2024-02-04T08:00:00Z", "name": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/0e9831fe-6810-476b-b14d-2b64bda17288", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 37 } } }, "priority": "P4", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "stateInfo": { "state": "ACTIVE" }, "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ] }, { "associatedInsights": [ { "insight": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/9d11057e-9c71-410f-ad55-fc82d87761d0" } ], "content": { "operationGroups": [ { "operations": [ { "action": "remove", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "user:alicexz@google.com", "/iamPolicy/bindings/*/role": "roles/bigquery.dataOwner" }, "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1", "resourceType": "bigquery.googleapis.com/Dataset" } ] } ], "overview": { "addedRoles": [], "member": "user:alicexz@google.com", "minimumObservationPeriodInDays": "0", "removedRole": "roles/bigquery.dataOwner", "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" } }, "description": "This role has not been used during the observation window.", "etag": "\"1da285f7aa6438f1\"", "lastRefreshTime": "2024-02-04T08:00:00Z", "name": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/56013294-cf81-402a-8cde-25489545777c", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 64 } } }, "priority": "P4", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "stateInfo": { "state": "ACTIVE" }, "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ] } ]
Esamina attentamente ogni consiglio e pensa a come cambierà il l'accesso dell'entità alle risorse Google Cloud. Per scoprire come esaminare i consigli dall'interfaccia a riga di comando gcloud, consulta la sezione Esaminare i consigli in questa pagina.
Per applicare un consiglio:
Utilizza la Comando
gcloud recommender recommendations mark-claimed
di modificare lo stato del suggerimento inCLAIMED,
, impedendo la di cambiare il consiglio quando lo applichi:gcloud recommender recommendations mark-claimed \ RECOMMENDATION_ID \ --location=LOCATION \ --recommender=google.iam.policy.Recommender \ --project=PROJECT_ID \ --format=FORMAT \ --etag=ETAG \ --state-metadata=STATE_METADATA
Sostituisci i seguenti valori:
-
RECOMMENDATION_ID
: l'identificatore univoco del consiglio. Questo valore viene visualizzato alla fine del camponame
nel suggerimento. Ad esempio, se il camponame
èprojects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
, l'ID consiglio èfb927dc1-9695-4436-0000-f0f285007c0f
. -
LOCATION
: la regione in cui BigQuery del set di dati, ad esempious
ous-central1
. -
PROJECT_ID
: l'ID del progetto Google Cloud che contiene i tuoi set di dati BigQuery. Gli ID progetto sono stringhe alfanumeriche, comemy-project
. -
FORMAT
: il formato della risposta. Utilizza le funzionalità dijson
oyaml
. -
ETAG
: il valore del campoetag
nel consiglio, ad esempio"dd0686e7136a4cbb"
. Tieni presente che questo valore può includere virgolette. -
STATE_METADATA
: facoltativo. Chiave-valore separata da virgola che contengono i metadati che hai scelto per il suggerimento. Per ad esempio--state-metadata=reviewedBy=alice,priority=high
. La sostituisce il campostateInfo.stateMetadata
in un consiglio per i nostri esperti.
Se il comando va a buon fine, la risposta mostra il consiglio in uno stato
CLAIMED
, come mostrato nell'esempio seguente. Per chiarezza, l'esempio omette la maggior parte dei campi:... "priority": "P1", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "stateInfo": { "state": "CLAIMED" } ...
-
Recupera il criterio di autorizzazione per il set di dati, quindi modificare e impostare il criterio di autorizzazione in modo che rifletta il un consiglio per i nostri esperti.
Aggiorna lo stato del consiglio su
SUCCEEDED
se hai potuto applicarlo o suFAILED
se non è stato possibile applicarlo:gcloud recommender recommendations COMMAND \ RECOMMENDATION_ID \ --location=LOCATION \ --recommender=google.iam.policy.Recommender \ --project=PROJECT_ID \ --format=FORMAT \ --etag=ETAG \ --state-metadata=STATE_METADATA
Sostituisci i seguenti valori:
-
COMMAND
: utilizzamark-succeeded
se hai potuto applicare il consiglio oppuremark-failed
se non hai potuto applicarlo. -
RECOMMENDATION_ID
: l'identificatore univoco del consiglio. Questo valore viene visualizzato alla fine del camponame
nel suggerimento. Ad esempio, se il camponame
èprojects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
, l'ID suggerimento èfb927dc1-9695-4436-0000-f0f285007c0f
. -
LOCATION
: la regione in cui BigQuery del set di dati, ad esempious
ous-central1
. -
PROJECT_ID
: l'ID del progetto Google Cloud che contiene i tuoi set di dati BigQuery. Gli ID progetto sono stringhe alfanumeriche, comemy-project
. -
FORMAT
: il formato della risposta. Utilizza le funzionalità dijson
oyaml
. -
ETAG
: il valore del campoetag
nel consiglio, ad esempio"dd0686e7136a4cbb"
. Tieni presente che questo valore può includere virgolette. -
STATE_METADATA
: facoltativo. Coppie chiave-valore separate da virgole che contengono la tua scelta di metadati sul consiglio. Ad esempio,--state-metadata=reviewedBy=alice,priority=high
. I metadati sostituiscono il campostateInfo.stateMetadata
nel consiglio.
Ad esempio, se hai contrassegnato il consiglio come riuscito, la risposta mostra il consiglio in uno stato
SUCCEEDED
. Per chiarezza, questo omette la maggior parte dei campi nell'esempio seguente:... "priority": "P1", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "stateInfo": { "state": "SUCCEEDED" } ...
-
REST
Queste istruzioni presuppongono che tu abbia eseguito l'autenticazione
e imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS
.
Esamina i consigli:
Per elencare tutti i suggerimenti disponibili per i set di dati BigQuery, utilizza lo strumento
recommendations.list
.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del progetto Google Cloud che contiene i set di dati BigQuery. Gli ID progetto sono stringhe alfanumeriche, comemy-project
.LOCATION
: la regione in cui Si trovano i set di dati BigQuery, ad esempious
ous-central1
.-
PAGE_SIZE
: facoltativo. Il numero massimo di risultati da restituire per questo richiesta. Se non specificato, il server determinerà il numero di risultati da restituire. Se il numero di consigli è superiore alle dimensioni della pagina, la risposta contiene un token di paginazione che puoi utilizzare per recuperare la pagina di risultati successiva. -
PAGE_TOKEN
: facoltativo. Il token di impaginazione restituito in una sessione la risposta desiderata con questo metodo. Se specificato, l'elenco dei consigli inizierà dove richiesta precedente terminata. PROJECT_ID
: il tuo progetto Google Cloud ID. Gli ID progetto sono stringhe alfanumeriche, ad esempiomy-project
.
Metodo HTTP e URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.iam.policy.Recommender/recommendations?filter=recommenderSubtype%20%3D%20REMOVE_ROLE_BIGQUERY_DATASET%20OR%20recommenderSubtype%20%3D%20REPLACE_ROLE_BIGQUERY_DATASET&pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN
Per inviare la richiesta, espandi una di queste opzioni:
La risposta è simile all'esempio seguente. In questo esempio, tutti gli utenti
con il ruolo Editor nel progetto "my-project"
(projectEditor:my-project
) hanno il ruolo Editor dati BigQuery
(roles/bigquery.dataEditor
) sul set di dati dataset-1
.
Tuttavia, questo ruolo non è stato utilizzato in passato
per 90 giorni. Di conseguenza, il suggerimento per il ruolo ti consiglia di revocare il ruolo:
{ "recommendations": [ { "name": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/0e9831fe-6810-476b-b14d-2b64bda17288", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2024-02-02T08:00:00Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 37 } } }, "content": { "operationGroups": [ { "operations": [ { "action": "remove", "resourceType": "bigquery.googleapis.com/Dataset", "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1", "path": "/iamPolicy/bindings/*/members/*", "pathFilters": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "projectEditor:my-project", "/iamPolicy/bindings/*/role": "roles/bigquery.dataEditor" } } ] } ], "overview": { "resource": "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1", "member": "projectEditor:my-project", "removedRole": "roles/bigquery.dataEditor", "addedRoles": [], "minimumObservationPeriodInDays": "0" } }, "stateInfo": { "state": "ACTIVE" }, "etag": "\"d008ad3780bad5e0\"", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", "associatedInsights": [ { "insight": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/984eccca-0241-472f-baab-2557dd0d7282" } ], "priority": "P4", "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ] } ] }
Esamina attentamente ogni consiglio e pensa a come cambierà il l'accesso dell'entità alle risorse Google Cloud. Per scoprire come rivedere i suggerimenti dell'API REST, consulta la sezione in basso. consigli in questa pagina.
Per applicare un consiglio:
Contrassegna il consiglio come
CLAIMED
:Per contrassegnare un consiglio come
CLAIMED
in modo da evitare che venga modificato durante l'applicazione, utilizza lo strumento dell'API Recommenderrecommendations.markClaimed
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
PROJECT_ID
: l'ID del Progetto Google Cloud che contiene i tuoi set di dati BigQuery. Gli ID progetto sono stringhe alfanumeriche, comemy-project
.LOCATION
: la regione in cui si trova il set di dati BigQuery, ad esempious
ous-central1
.RECOMMENDATION_ID
: l'identificatore univoco per il consiglio. Questo valore viene visualizzato alla fine del camponame
nel consiglio. Ad esempio, se il camponame
èprojects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
, l'ID consiglio èfb927dc1-9695-4436-0000-f0f285007c0f
.ETAG
: il valore del parametroetag
nel suggerimento, ad esempio"dd0686e7136a4cbb"
. Utilizza i backslash per eseguire l'escapismo delle virgolette, ad esempio"\"df7308cca9719dcc\""
.STATE_METADATA
: facoltativo. Un oggetto che contiene coppie chiave/valore con la tua scelta di metadati sul consiglio. Ad esempio:{"reviewedBy": "alice", "priority": "high"}
. I metadati sostituiscono il valore CampostateInfo.stateMetadata
nel consiglio.
Metodo HTTP e URL:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed
Corpo JSON della richiesta:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
La risposta mostra il consiglio in uno stato
CLAIMED
, come mostrato di seguito esempio. Per chiarezza, questo esempio omette la maggior parte dei campi:... "stateInfo": { "state": "CLAIMED" }, "etag": "\"7caf4103d7669e12\"", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", ...
Ottieni il criterio di autorizzazione per il progetto, quindi modifica il criterio di autorizzazione in modo che rifletta il consiglio.
Aggiorna lo stato del consiglio su
SUCCEEDED
se hai potuto applicarlo o suFAILED
se non è stato possibile applicarlo:SUCCEEDED
Per contrassegnare un consiglio come
SUCCEEDED
e indicare che è stato possibile applicarlo, utilizza lo strumentorecommendations.markSucceeded
.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del Progetto Google Cloud che contiene i tuoi set di dati BigQuery. Gli ID progetto sono stringhe alfanumeriche, comemy-project
.LOCATION
: la regione in cui si trova il set di dati BigQuery, ad esempious
ous-central1
.RECOMMENDATION_ID
: l'identificatore univoco per il consiglio. Questo valore viene visualizzato alla fine del camponame
nel consiglio. Ad esempio, se il camponame
èprojects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
, l'ID consiglio èfb927dc1-9695-4436-0000-f0f285007c0f
.ETAG
: il valore del parametroetag
nel suggerimento, ad esempio"dd0686e7136a4cbb"
. Utilizza i backslash per eseguire l'escapismo delle virgolette, ad esempio"\"df7308cca9719dcc\""
.STATE_METADATA
: facoltativo. Un oggetto che contiene coppie chiave/valore con la tua scelta di metadati sul consiglio. Ad esempio:{"reviewedBy": "alice", "priority": "high"}
. I metadati sostituiscono il valore CampostateInfo.stateMetadata
nel consiglio.
Metodo HTTP e URL:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded
Corpo JSON della richiesta:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
La risposta mostra il consiglio in uno stato
SUCCEEDED
, come mostrato di seguito esempio. Per chiarezza, questo esempio omette la maggior parte dei campi:... "stateInfo": { "state": "SUCCEEDED" }, "etag": "\"7caf4103d7669e12\"", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", ...
FAILED
Per contrassegnare un consiglio come
FAILED
e indicare che non è stato possibile applicarlo, utilizza lo strumentorecommendations.markFailed
.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del Progetto Google Cloud che contiene i tuoi set di dati BigQuery. Gli ID progetto sono stringhe alfanumeriche, comemy-project
.LOCATION
: la regione in cui si trova il set di dati BigQuery, ad esempious
ous-central1
.RECOMMENDATION_ID
: l'identificatore univoco per il consiglio. Questo valore viene visualizzato alla fine del camponame
nel consiglio. Ad esempio, se il camponame
èprojects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
, l'ID consiglio èfb927dc1-9695-4436-0000-f0f285007c0f
.ETAG
: il valore del parametroetag
nel suggerimento, ad esempio"dd0686e7136a4cbb"
. Utilizza i backslash per eseguire l'escapismo delle virgolette, ad esempio"\"df7308cca9719dcc\""
.STATE_METADATA
: facoltativo. Un oggetto che contiene coppie chiave/valore con la tua scelta di metadati sul consiglio. Ad esempio:{"reviewedBy": "alice", "priority": "high"}
. I metadati sostituiscono il valore CampostateInfo.stateMetadata
nel consiglio.
Metodo HTTP e URL:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed
Corpo JSON della richiesta:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
La risposta mostra il consiglio in uno stato
FAILED
, come mostrato nell'esempio seguente. Per chiarezza, questo esempio omette la maggior parte dei campi:... "stateInfo": { "state": "FAILED" }, "etag": "\"7caf4103d7669e12\"", "recommenderSubtype": "REMOVE_ROLE_BIGQUERY_DATASET", ...
Informazioni sui consigli
Ogni consiglio include informazioni che ti aiutano a capire perché è stato fornito.
Per maggiori dettagli sui campi di un suggerimento, consulta
Riferimento Recommendation
.
Per vedere l'utilizzo delle autorizzazioni su cui si basa questo suggerimento, visualizza il
approfondimenti sulle norme associati al consiglio.
Questi approfondimenti sono elencati nel campo associatedInsights
. Per visualizzare un criterio
insight associato al suggerimento:
- Copia l'ID dell'insight associato. L'ID è tutto ciò che segue
insights/
nelinsight
campo. Ad esempio, se il campoinsight
riportaprojects/123456789012/locations/us/insightTypes/google.iam.policy.Insight/insights/7849add9-73c0-419e-b169-42b3671173fb
, l'ID informazione è7849add9-73c0-419e-b169-42b3671173fb
. - Segui le istruzioni per ottenere un'informazione sulle norme utilizzando l'ID informazione che hai copiato.
Passaggi successivi
- Scopri di più su Recommender.
- Scopri come utilizzare consentire gli insight sui criteri per BigQuery set di dati.