Controllo dell'accesso con un account di servizio dello spazio dei nomi

Questa pagina descrive come configurare un service account Identity and Access Management (IAM) per uno spazio dei nomi in un'istanza Cloud Data Fusion.

Informazioni sugli spazi dei nomi in Cloud Data Fusion

Uno spazio dei nomi è un raggruppamento logico di applicazioni, dati e metadati associati in un'istanza Cloud Data Fusion. Puoi pensare agli spazi dei nomi come a una partizione dell'istanza. Qualsiasi applicazione o dato, indicato qui come entità, può esistere indipendentemente in più spazi dei nomi. In una singola istanza, uno spazio dei nomi archivia i dati e i metadati di un'entità indipendentemente da un altro spazio dei nomi.

Controllo dell'accesso con un account di servizio dello spazio dei nomi

Per controllare l'accesso a risorse e spazi dei nomi in Cloud Data Fusion, viene utilizzato l'agente di servizio API Cloud Data Fusion per impostazione predefinita. Google Cloud

Per un migliore isolamento dei dati, puoi associare un account di servizio IAM personalizzato (noto come service account per spazio dei nomi) a ogni spazio dei nomi. L'account di servizio IAM personalizzato, che può essere diverso per spazi dei nomi diversi, ti consente di controllare l'accesso alle risorseGoogle Cloud tra gli spazi dei nomi per le operazioni di progettazione della pipeline in Cloud Data Fusion, come l'anteprima della pipeline, Wrangler e la convalida della pipeline.

Prima di iniziare

  • I service account per spazio dei nomi sono supportati nelle istanze abilitate al controllo dell'accesso basato sui ruoli (RBAC) nelle versioni 6.10.0 e successive di Cloud Data Fusion.
  • Gli account di servizio per spazio dei nomi vengono utilizzati per controllare e gestire l'accesso alle risorse. Google Cloud

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per personalizzare i service account dello spazio dei nomi e concedere le autorizzazioni utente all'interno di uno spazio dei nomi, chiedi all'amministratore di concederti il ruolo IAM Cloud Data Fusion Admin (roles/datafusion.admin) nell'istanza Cloud Data Fusion nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Gestire le autorizzazioni per gli utenti in uno spazio dei nomi

Per concedere agli utenti le autorizzazioni necessarie in uno spazio dei nomi, assegna loro ruoli Cloud Data Fusion predefiniti. Per saperne di più, consulta i ruoli Cloud Data Fusion predefiniti disponibili per gli utenti nelle istanze abilitate al controllo dell'accesso basato sui ruoli.

Configura un account di servizio dello spazio dei nomi

Console

Per configurare un account di servizio per lo spazio dei nomi:

  1. Se non disponi di un account di servizio esistente per lo spazio dei nomi, creane uno.
  2. Nella console Google Cloud , vai alla pagina Istanze di Cloud Data Fusion e apri un'istanza nell'interfaccia web di Cloud Data Fusion.

    Vai a Istanze

  3. Fai clic su Amministratore di sistema > Configurazione > Spazi dei nomi.

  4. Fai clic sullo spazio dei nomi che vuoi configurare.

  5. Fai clic sulla scheda Account di servizio e poi su Aggiungi account di servizio.

    Pulsante Aggiungi service account.

  6. Concedi il ruolo Utente Workload Identity (roles/iam.workloadIdentityUser).

    Per concedere il ruolo, segui questi passaggi:

    1. Nel campo Account di servizio di progettazione della pipeline, inserisci l'email dell'account di servizio, ad esempio SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.
    2. Segui le istruzioni nella finestra di dialogo visualizzata.
  7. Per completare la configurazione del account di servizio, torna allo spazio dei nomi della tua istanza Cloud Data Fusion e fai clic su Salva.

  8. Ripeti i passaggi per configurare un account di servizio per ogni spazio dei nomi.

API REST

  1. Concedi il ruolo Utente Workload Identity (roles/iam.workloadIdentityUser).

    Per concedere il ruolo, segui questi passaggi:

    1. Imposta le seguenti variabili di ambiente:

      export TENANT_PROJECT_ID=TENANT_PROJECT
      export GSA_PROJECT_ID=SERVICE_ACCOUNT_PROJECT
      

      Sostituisci quanto segue:

      • TENANT_PROJECT: l'ID progetto tenant. Per trovarlo, vai alla pagina Istanze e fai clic sul nome dell'istanza. L'ID viene visualizzato nella pagina Dettagli istanza.

        Vai a Istanze

      • SERVICE_ACCOUNT_PROJECT: l'Google Cloud ID progetto in cui si trova l'account di servizio IAM.

    2. Concedi il ruolo Utente Workload Identity:

      gcloud iam service-accounts add-iam-policy-binding \
          --role roles/iam.workloadIdentityUser
          --member "serviceAccount:${TENANT_PROJECT_ID}.svc.id.goog[default/NAMESPACE_IDENTITY]" SERVICE_ACCOUNT_EMAIL \
          --project ${GSA_PROJECT_ID}
      

      Sostituisci quanto segue:

      • NAMESPACE_IDENTITY: l'identità dello spazio dei nomi. Per saperne di più, vedi Dettagli di uno spazio dei nomi.

      • SERVICE_ACCOUNT_EMAIL: l'indirizzo email del account di serviziot, ad esempio SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

  2. Convalida l'email del account di servizio dello spazio dei nomi del passaggio precedente. Imposta environment variables, poi esegui il comando seguente:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity/validate -X POST -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Sostituisci quanto segue:

    • NAMESPACE_NAME: l'ID dello spazio dei nomi.
    • SERVICE_ACCOUNT_EMAIL: l'email del account di servizio IAM che vuoi impostare nello spazio dei nomi.
  3. Imposta il account di servizio dello spazio dei nomi. Imposta environment variables, poi esegui il comando seguente:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

Modificare un account di servizio dello spazio dei nomi

Console

Per modificare un account di servizio dello spazio dei nomi:

  1. Nell'istanza Cloud Data Fusion, fai clic su Amministratore di sistema > Configurazione > Spazi dei nomi.
  2. Fai clic sullo spazio dei nomi che contiene il account di servizio che vuoi modificare.
  3. Per modificare il account di servizio, vai alla scheda Service account. Accanto al nome dell'account di servizio, fai clic su Menu > Modifica.
  4. Segui i passaggi per configurare un account di servizio dello spazio dei nomi.

API REST

Per modificare un account di servizio dello spazio dei nomi:

  1. Imposta environment variables, poi esegui questo comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    Sostituisci quanto segue:

    • NAMESPACE_NAME: l'ID dello spazio dei nomi.
    • SERVICE_ACCOUNT_EMAIL: l'email del account di servizio IAM che vuoi impostare nello spazio dei nomi.

Elimina un account di servizio dello spazio dei nomi

Console

Per eliminare un account di servizio dello spazio dei nomi da uno spazio dei nomi:

  1. Nell'istanza Cloud Data Fusion, fai clic su Amministratore di sistema > Configurazione > Spazi dei nomi.
  2. Fai clic sullo spazio dei nomi che contiene il account di servizio che vuoi eliminare.
  3. Per rimuovere il account di servizio, vai alla scheda Service account. Accanto al nome dell'account di servizio, fai clic su Menu > Elimina.

API REST

Per eliminare un account di servizio dello spazio dei nomi da uno spazio dei nomi:

  1. Imposta environment variables, poi esegui questo comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X DELETE
    

    Sostituisci quanto segue:

    • NAMESPACE_NAME: l'ID dello spazio dei nomi.

Ottieni il account di servizio dello spazio dei nomi

Console

Per ottenere le informazioni sull'account di servizio per lo spazio dei nomi, segui questi passaggi:

  1. Nella console Google Cloud , vai alla pagina Istanze di Cloud Data Fusion e apri un'istanza nell'interfaccia web di Cloud Data Fusion.

    Vai a Istanze

  2. Fai clic su Amministratore di sistema > Configurazione > Spazi dei nomi.

  3. Fai clic sul nome di uno spazio dei nomi per visualizzare i dettagli del account di servizio.

API REST

Per ottenere il nome dell'account di servizio dello spazio dei nomi:

  1. Imposta environment variables, poi esegui questo comando:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X GET
    

    Sostituisci quanto segue:

    • NAMESPACE_NAME: l'ID dello spazio dei nomi.

    Se l'operazione riesce, riceverai l'email del account di servizio nella seguente risposta:

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

Passaggi successivi