Controllo dell'accesso basato su ruoli (RBAC) in Cloud Data Fusion consente di gestire le autorizzazioni utente tra istanze e spazi dei nomi. Questo modello di accesso ti aiuta a isolare le aree di lavoro e a proteggere le pipeline controllando chi può visualizzare, progettare ed eseguire i workload di integrazione.
RBAC è disponibile nelle istanze di Cloud Data Fusion con versione 6.5 e successive. A meno che non sia necessario per scopi di automazione, utilizza la consoleGoogle Cloud per eseguire le attività RBAC. Per saperne di più, consulta Panoramica controllo dell'accesso basato su ruoli (RBAC).
Abilita RBAC per un'istanza esistente
Puoi abilitare RBAC per un'istanza Cloud Data Fusion esistente in esecuzione nella versione 6.5 o successive.
Console
Per abilitare RBAC in un'istanza Cloud Data Fusion esistente:
- Vai ai dettagli dell'istanza:
Nella Google Cloud console, vai alla pagina Cloud Data Fusion.
Fai clic su Istanze, quindi sul nome dell'istanza per andare alla pagina Dettagli istanza.
- Assicurati che sia stato eseguito l'upgrade dell'istanza alla versione 6.5 o successive. Se l'istanza è precedente alla versione 6.5, esegui l'upgrade alla versione 6.5 o successiva.
- Fai clic su Abilita RBAC.
- Fai clic su Salva.
- Attendi il completamento dell'operazione di aggiornamento dell'istanza.
gcloud
Per abilitare RBAC su un'istanza Cloud Data Fusion esistente, esegui questo comando:
gcloud beta data-fusion instances update --enable_rbac --location=REGION INSTANCE_ID
API REST
Abilita RBAC per un'istanza esistente con l'API patch di Cloud Data Fusion. Imposta il flag enableRbac su true e utilizza il parametro di query updateMask utilizzando il seguente comando di esempio:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
gcurl https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances/$INSTANCE?updateMask=enable_rbac -X PATCH -d '{"enable_rbac": "true"}'
Disabilita RBAC per un'istanza esistente
Se hai un'istanza esistente con RBAC abilitato, puoi disabilitarlo se necessario. La disattivazione di RBAC non influisce sulle pipeline o sulle configurazioni esistenti nell'istanza. Disattiva semplicemente l'isolamento della sicurezza tra gli spazi dei nomi.
Console
Per disattivare RBAC su un'istanza Cloud Data Fusion esistente:
Vai ai dettagli dell'istanza:
Nella Google Cloud console, vai alla pagina Cloud Data Fusion.
Fai clic su Istanze, quindi sul nome dell'istanza per andare alla pagina Dettagli istanza.
Fai clic su Disabilita RBAC.
Fai clic su Salva.
Attendi il completamento dell'operazione di aggiornamento dell'istanza.
gcloud
Per disattivare RBAC per un'istanza esistente, utilizza l'argomento --no-enable_rbac anziché --enable-rbac.
gcloud beta data-fusion instances update --no-enable_rbac --location=REGION INSTANCE_ID
Esempio di utilizzo:
gcloud beta data-fusion instances update --no-enable_rbac --location=us-east1 cdf-test-instance
API REST
Disabilita RBAC per un'istanza esistente con l'API patch di Cloud Data Fusion. Imposta il flag enableRbac su false e utilizza il parametro di query updateMask utilizzando il seguente comando di esempio:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
gcurl https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances/$INSTANCE?updateMask=enable_rbac -X PATCH -d '{"enable_rbac": "false"}'
Crea una nuova istanza abilitata per RBAC
Console
Per creare una nuova istanza di Cloud Data Fusion con RBAC abilitato:
Vai alla pagina Istanze Cloud Data Fusion:
Fai clic su Istanze.
Fai clic su Crea un'istanza e inserisci i dettagli dell'istanza.
Seleziona la versione Enterprise. RBAC è supportato solo nella versione Enterprise.
In Opzioni avanzate, seleziona Abilita controllo degli accessi granulare basato su ruoli.
Questa funzionalità è disponibile solo nelle istanze che utilizzano Cloud Data Fusion versione 6.5 e successive.
Fai clic su Crea.
gcloud
Per creare una nuova istanza abilitata per RBAC, esegui questo comando:
gcloud beta data-fusion instances create --edition=enterprise \
--enable_rbac \
--location=REGION INSTANCE_ID \
--version=6.5.0
Esempio di utilizzo:
gcloud beta data-fusion instances create --edition=enterprise \
--enable_rbac \
--location=us-east1 \
--version=6.5.0
API REST
Per creare un'istanza abilitata per RBAC utilizzando l'API REST, passa il flag enableRbac impostato su true nelle opzioni dell'istanza, come mostrato nei seguenti comandi:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances?instanceId=$INSTANCE -X POST -d '{"description": "RBAC CDF instance created through REST", "type": "ENTERPRISE", "enableRbac": "true"}'
Concedi agli utenti i ruoli Cloud Data Fusion predefiniti (obbligatorio)
Dopo aver attivato l'RBAC, concedi i ruoli alle entità per consentire loro di eseguire azioni specifiche in un'istanza o in uno spazio dei nomi. Per decidere quali ruoli soddisfano meglio i tuoi requisiti, consulta Ruoli Cloud Data Fusion predefiniti e Suggerimenti per la sicurezza.
Console
Per concedere ruoli Cloud Data Fusion predefiniti alle entità:
Vai alla pagina Autorizzazioni di Cloud Data Fusion.
Fai clic su Aggiungi .
Si apre la finestra di dialogo Aggiungi accesso degli utenti.
Nel campo Nuovi membri, inserisci un elenco di entità (utenti, gruppi o indirizzi email dei account di servizio) a cui concedere i ruoli.
Seleziona la casella accanto a ogni istanza per cui vuoi concedere queste autorizzazioni.

Vai alla colonna Ruolo e seleziona il menu a discesa accanto alle istanze scelte.
Per concedere le autorizzazioni di amministratore di istanze, seleziona Amministratore di istanze.
Per concedere autorizzazioni a livello di spazio dei nomi, seleziona Utente spazio dei nomi.

Se concedi autorizzazioni a livello di namespace, fai clic su Seleziona.
Si apre la finestra di dialogo Aggiungi diritti di accesso.
Seleziona uno spazio dei nomi e il ruolo Cloud Data Fusion predefinito che vuoi concedere per lo spazio dei nomi.
Fai clic su Seleziona per salvare le nuove impostazioni.
(Facoltativo) Per concedere le autorizzazioni per lo spazio dei nomi per altre istanze, ripeti il passaggio 5.
Fai clic su Salva.
Per verificare i ruoli concessi, consulta Verifica i ruoli nella console Google Cloud .
gcloud
Puoi utilizzare Google Cloud CLI per controllare l'accesso in modo programmatico.
Per concedere un ruolo utilizzando gcloud CLI, utilizza un elenco di identificatori dell'utente delimitati da virgole nel seguente formato:
[user|group|serviceAccount][email_address]
Fornisci i seguenti valori:
user:useremail@example.comgroup:groupemail@example.comserviceAccount:serviceaccount@project.
Per altri esempi, consulta Concedi un ruolo.
Concedi il ruolo Instance Accessor (obbligatorio)
Devi prima concedere a un utente l'accesso all'istanza assegnandogli il ruolo Accessor su un'istanza:
Esporta le seguenti variabili con il comando seguente, sostituendo le variabili con i tuoi valori:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export USER_ID=EMAIL export USER_TYPE=USER_TYPESostituisci le seguenti variabili con i tuoi valori:
- PROJECT_ID: il nome del progetto.
- INSTANCE_ID: il nome dell'istanza.
- REGION: la regione a cui appartiene il progetto.
- EMAIL: l'indirizzo email dell'entità.
- USER_TYPE: il tipo di utente può essere uno dei seguenti: user, group o serviceAccount.
Esegui questo comando per assegnare il ruolo:
gcloud beta data-fusion add-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --member="${USER_TYPE}:${USER_ID}" --role="roles/datafusion.accessor"
Concedi i ruoli a uno spazio dei nomi (a seconda del caso d'uso)
A seconda del caso d'uso, concedi i ruoli con i seguenti comandi:
Esporta le seguenti variabili con il comando seguente, sostituendo le variabili con i tuoi valori:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export NAMESPACE=NAMESPACE export USER_ID=EMAIL export USER_TYPE=USER_TYPESostituisci le seguenti variabili con i tuoi valori:
- PROJECT_ID: il nome del progetto.
- INSTANCE_ID: il nome dell'istanza.
- REGION: la regione a cui appartiene il progetto.
- NAMESPACE: il nome dello spazio dei nomi.
- EMAIL: l'indirizzo email dell'entità.
- USER_TYPE: il tipo di utente può essere uno dei seguenti: user, group o serviceAccount.
Esegui questo comando per assegnare un ruolo a un'entità in un determinato namespace:
gcloud beta data-fusion add-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE} --member="${USER_TYPE}:${USER_ID}" --role="roles/ROLE_NAME"Sostituisci ROLE_NAME con uno dei seguenti valori:
- Per il ruolo Editor per uno spazio dei nomi, utilizza
datafusion.editor - Per il ruolo Operator per uno spazio dei nomi, utilizza
datafusion.operator - Per il ruolo Sviluppatore per uno spazio dei nomi, utilizza
datafusion.developer - Per il ruolo di visualizzatore per uno spazio dei nomi, utilizza
datafusion.viewer
- Per il ruolo Editor per uno spazio dei nomi, utilizza
(Facoltativo) Revoca i ruoli dello spazio dei nomi
Per revocare il ruolo concesso a un utente per un determinato namespace, utilizza il seguente comando:
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
export USER_ID=EMAIL
# User type can be one of: user, group, or serviceAccount.
export USER_TYPE=USER_TYPE
export ROLE=ROLE_NAME
gcloud beta data-fusion remove-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE} --member="${USER_TYPE}:${USER_ID}" --role="${ROLE}"
(Facoltativo) Elenca i ruoli concessi in un determinato spazio dei nomi
Per elencare tutti i ruoli concessi per un determinato namespace, utilizza il seguente comando per recuperare la policy IAM:
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE}
API REST
Concedi il ruolo Instance Accessor (obbligatorio)
Devi prima concedere a un utente l'accesso all'istanza assegnandogli il ruolo Accessor su un'istanza.
Vivamente consigliato: utilizza gcloud CLI per concedere il ruolo Accessor.
Concedi il ruolo di accesso su un'istanza:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export USER_ID=EMAIL # User type can be one of: user, group, or serviceAccount. export USER_TYPE=USER_TYPE alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'Recupera l'attuale policy IAM e salvala in un file:
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:getIamPolicy > iam_policy.jsonAggiungi un'associazione per il ruolo e l'utente nella policy. Ad esempio:
{ "policy": { "bindings": [ { "role": "roles/datafusion.accessor", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }Aggiorna la policy IAM dell'istanza:
gcurl \ -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:setIamPolicy
Concedi i ruoli a uno spazio dei nomi (a seconda del caso d'uso)
A seconda del caso d'uso, concedi i ruoli con i seguenti comandi:
Esporta le seguenti variabili con il comando seguente, sostituendo le variabili con i tuoi valori:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export NAMESPACE=NAMESPACE export USER_ID=EMAIL export USER_TYPE=USER_TYPE alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'Sostituisci le seguenti variabili con i tuoi valori:
- PROJECT_ID: il nome del progetto.
- INSTANCE_ID: il nome dell'istanza.
- REGION: la regione a cui appartiene il progetto.
- NAMESPACE: il nome dello spazio dei nomi.
- EMAIL: l'indirizzo email dell'entità.
- USER_TYPE: il tipo di utente può essere uno dei seguenti: user, group o serviceAccount.
Recupera l'attuale policy IAM e salvala in un file:
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:getIamPolicy > iam_policy.jsonSostituisci iam_policy.json con il nome file.
Aggiungi un'associazione per il ruolo e l'utente nel file della policy. Ad esempio, il file della policy potrebbe avere il seguente aspetto:
{ "policy": { "bindings": [ { "role": "roles/ROLE_NAME", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }È possibile specificare più associazioni di ruoli per una determinata policy e più entità nell'elenco members per una determinata associazione di ruoli. Per un determinato principal, sostituisci ROLE_NAME con uno dei seguenti valori:
- Per il ruolo Editor per uno spazio dei nomi, utilizza
datafusion.editor - Per il ruolo Operator per uno spazio dei nomi, utilizza
datafusion.operator - Per il ruolo Sviluppatore per uno spazio dei nomi, utilizza
datafusion.developer - Per il ruolo di visualizzatore per uno spazio dei nomi, utilizza
datafusion.viewer
- Per il ruolo Editor per uno spazio dei nomi, utilizza
Esegui il comando seguente per aggiornare il file della policy:
gcurl -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:setIamPolicySostituisci iam_policy.json con il nome file.
Verifica i ruoli nella console Google Cloud
Esamina e modifica i ruoli esistenti nella pagina Autorizzazioni di Cloud Data Fusion.
Verifica i ruoli con il file delle policy
Verifica che i ruoli siano concessi agli utenti corretti nel file della policy IAM utilizzando gcloud CLI o l'API REST.
Nel seguente esempio di file della policy IAM, l'utente alice@example.com ha il ruolo Sviluppatore Data Fusion:
bindings:
- members:
- user:alice@example.com
role: roles/datafusion.developer
- members:
- user:bob@example.com
- serviceAccount:myserviceaccount@myproject.
role: roles/datafusion.operator
- members:
- user:james@example.com
- user:mike@example.com
- group:mygroup@googlegroups.com
role: roles/datafusion.editor
etag: BwXA8BAHYmw=
Ottieni la policy IAM per un'istanza
gcloud
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION}
cURL
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
curl -H "Authorization: Bearer "$(gcloud auth print-access-token) \
https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:getIamPolicy
Ottieni la policy IAM per uno spazio dei nomi
gcloud
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE}
cURL
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export NAMESPACE=NAMESPACE
export REGION=REGION
curl -H "Authorization: Bearer "$(gcloud auth print-access-token) \
https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/${NAMESPACE}:getIamPolicy
Passaggi successivi
- Scopri di più sul controllo controllo dell'accesso basato su ruoli in Cloud Data Fusion.