Questa pagina descrive come iniziare a utilizzare il controllo dell'accesso basato sui ruoli (RBAC) in di Cloud Data Fusion. RBAC è disponibile in Istanze Cloud Data Fusion in esecuzione nelle versioni 6.5 e successive.
Per saperne di più, consulta la panoramica controllo dell'accesso basato sui ruoli (RBAC).
Consigliato:a meno che non sia richiesto per scopi di automazione, usa la console Google Cloud per eseguire le tue attività RBAC.
Abilita RBAC per un'istanza esistente
Puoi abilitare RBAC per una soluzione Cloud Data Fusion esistente in esecuzione nella versione 6.5 o successive.
Console
Per abilitare RBAC su un'istanza Cloud Data Fusion esistente:
- Vai ai dettagli dell'istanza:
Nella console Google Cloud, 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 è precedente alla 6.5, esegui l'upgrade dell'istanza alla versione 6.5 in un secondo momento.
- Fai clic su Abilita RBAC.
- Fai clic su Salva.
- Attendi il completamento dell'operazione di aggiornamento dell'istanza.
gcloud
Abilitare RBAC su un 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
Patch Cloud Data Fusion
tramite Google Cloud CLI
o tramite l'API Compute Engine. Imposta il flag enableRbac
su true
e utilizza il parametro di query updateMask
con 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: disabilita RBAC, se necessario. La disattivazione di RBAC influisce su eventuali pipeline o configurazioni esistenti nell'istanza. Ha semplicemente disabilita l'isolamento della sicurezza negli spazi dei nomi.
Console
Per disabilitare RBAC su un Cloud Data Fusion esistente istanza:
Vai ai dettagli dell'istanza:
Nella console Google Cloud, 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
Patch Cloud Data Fusion
tramite Google Cloud CLI
o tramite l'API Compute Engine. Imposta il flag enableRbac
su false
e utilizza la 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 Cloud Data Fusion con RBAC abilitato:
Vai alla pagina Istanze di Cloud Data Fusion.
Fai clic su Istanze.
Fai clic su Crea un'istanza e inserisci i dettagli dell'istanza.
Seleziona la versione Enterprise. RBAC è supportate nella versione Enterprise.
In Opzioni avanzate, seleziona Attiva controllo dell'accesso granulare basato sui ruoli.
Questa funzionalità è disponibile solo nelle istanze che utilizzano Cloud Data Fusion 6.5 e versioni 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 in
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 abilitato RBAC, concedi i ruoli alle entità per consentire loro eseguire azioni specifiche in un'istanza o in uno spazio dei nomi. Per decidere quali ruoli: soddisfare al meglio le tue esigenze, consulta le Ruoli predefiniti di Cloud Data Fusion e Consigli 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
.La scheda Aggiungi utenti si apre la finestra di dialogo per l'accesso.
Nel campo Nuovi membri, inserisci un elenco di entità (utenti, gruppi, o gli indirizzi email degli account di servizio) per i quali concedere i ruoli.
Seleziona la casella accanto a ciascuna istanza per cui vuoi concedere queste autorizzazioni aggiuntive.
Vai alla colonna Ruolo e seleziona il menu a discesa accanto al le istanze scelte.
Per concedere le autorizzazioni di amministratore dell'istanza, seleziona Istanza Console di amministrazione.
Per concedere autorizzazioni a livello di spazio dei nomi, seleziona Utente spazio dei nomi.
Se stai concedendo le autorizzazioni a livello di spazio dei nomi, fai clic su Seleziona.
Si apre la finestra di dialogo Aggiungi diritti di accesso.
Seleziona uno spazio dei nomi e il valore Ruolo di Cloud Data Fusion che vuoi concedere per lo spazio dei nomi.
Fai clic su Seleziona per salvare le nuove impostazioni.
(Facoltativo) Per concedere le autorizzazioni del nome di spazio 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 identificativi utente delimitati da virgole nel seguente formato:
[user|group|serviceAccount][email_address]
Fornisci i seguenti valori:
user:useremail@example.com
group:groupemail@example.com
serviceAccount:serviceaccount@project.iam.gserviceaccount.com
Per altri esempi, vedi Concedere un ruolo.
Concedi il ruolo di accessore dell'istanza (obbligatorio)
Devi prima concedere a un utente l'accesso all'istanza, concedendogli il Ruolo Funzione di accesso su un'istanza:
Esporta le variabili seguenti con il comando seguente, sostituendo il segnaposto variabili con i tuoi valori:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export USER_ID=EMAIL export USER_TYPE=USER_TYPE
Sostituisci le seguenti variabili con i tuoi valori:
- PROJECT_ID: il nome del tuo 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: utente, 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 ruoli a uno spazio dei nomi (dipende dal caso d'uso)
A seconda del caso d'uso, concedi i ruoli con i seguenti comandi:
Esporta le variabili seguenti con il comando seguente, sostituendo il segnaposto 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
Sostituisci le seguenti variabili con i tuoi valori:
- PROJECT_ID: il nome del tuo 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: utente, o serviceAccount.
Esegui questo comando per assegnare un ruolo a un'entità in un spazio dei nomi:
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 Operatore per uno spazio dei nomi, utilizza
datafusion.operator
- Per il ruolo Sviluppatore relativo a uno spazio dei nomi, utilizza
datafusion.developer
- Per il ruolo 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 spazio dei nomi, 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 per un determinato spazio dei nomi
Per elencare tutti i ruoli concessi per uno spazio dei nomi particolare, utilizza questo comando per recuperare il criterio 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 di Funzione di accesso all'istanza (obbligatorio)
Devi prima concedere a un utente l'accesso all'istanza, concedendogli il Ruolo di accesso in un'istanza.
Vivamente consigliato: utilizza gcloud CLI per concedere Ruolo Funzione di accesso.
Concedi il ruolo di funzione 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 il criterio IAM attuale e salvalo in un file:
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:getIamPolicy > iam_policy.json
Aggiungi un'associazione per il ruolo e l'utente nel criterio. Ad esempio:
{ "policy": { "bindings": [ { "role": "roles/datafusion.accessor", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }
Aggiorna il criterio IAM dell'istanza:
gcurl \ -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:setIamPolicy
Concedi ruoli a uno spazio dei nomi (dipende dal caso d'uso)
A seconda del caso d'uso, concedi i ruoli con i seguenti comandi:
Esporta le variabili seguenti con il comando seguente, sostituendo il segnaposto 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 tuo 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: utente, o serviceAccount.
Recupera il criterio IAM attuale e salvalo in un file:
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:getIamPolicy > iam_policy.json
Sostituisci iam_policy.json con il tuo nome file.
Aggiungi un'associazione per il ruolo e l'utente nel file del criterio. Ad esempio: il file dei criteri potrebbe avere il seguente aspetto:
{ "policy": { "bindings": [ { "role": "roles/ROLE_NAME", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }
È possibile specificare più associazioni di ruoli per un determinato criterio e più Le entità possono essere specificate nell'elenco dei membri per un determinato ruolo associazione. Per un'entità specifica, sostituisci ROLE_NAME con uno dei seguenti valori:
- Per il ruolo Editor di uno spazio dei nomi, utilizza
datafusion.editor
- Per il ruolo Operatore per uno spazio dei nomi, utilizza
datafusion.operator
- Per il ruolo Sviluppatore relativo a uno spazio dei nomi, utilizza
datafusion.developer
- Per il ruolo Visualizzatore per uno spazio dei nomi, utilizza
datafusion.viewer
- Per il ruolo Editor di uno spazio dei nomi, utilizza
Esegui questo comando per aggiornare il file dei criteri:
gcurl -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:setIamPolicy
Sostituisci iam_policy.json con il tuo 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 dei criteri
Verifica che i ruoli siano concessi agli utenti corretti nel File Policy IAM utilizzando gcloud CLI o l'API REST.
Nel seguente esempio di file di criteri 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.iam.gserviceaccount.com
role: roles/datafusion.operator
- members:
- user:james@example.com
- user:mike@example.com
- group:mygroup@googlegroups.com
role: roles/datafusion.editor
etag: BwXA8BAHYmw=
Recupera il criterio 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 il criterio 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.