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 un 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 alle Google Cloud risorse, gli spazi dei nomi in Cloud Data Fusion utilizzano per impostazione predefinita il service agent dell'API Data Fusion di 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. Il account di servizio IAM personalizzato, che può essere diverso per spazi dei nomi diversi, ti consente di controllare l'accesso alle Google Cloud risorse 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 con RBAC abilitato nelle versioni di Cloud Data Fusion 6.10.0 e successive.
  • I service account per spazio dei nomi vengono utilizzati per controllare e gestire l'accesso alle Google Cloud risorse.

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 Amministratore Cloud Data Fusion (roles/datafusion.admin) sull'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 di cui hanno bisogno in uno spazio dei nomi, concedi loro i ruoli Cloud Data Fusion predefiniti. Per saperne di più, consulta i ruoli Cloud Data Fusion predefiniti disponibili per gli utenti nelle istanze con RBAC abilitato.

Configurare un account di servizio dello spazio dei nomi

Console

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

  1. Se non hai un account di servizio esistente per lo spazio dei nomi, creane uno.
  2. Nella Google Cloud console, 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 Service account e poi su Aggiungi service account.

    Pulsante Aggiungi service account.

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

    Per concedere il ruolo, segui questi passaggi:

    1. Nel campo Service account di progettazione della pipeline , inserisci l'indirizzo email del service account, 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 dell'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 il 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ù, consulta Dettagli di uno spazio dei nomi.

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

  2. Convalida l'indirizzo email del account di servizio dello spazio dei nomi del passaggio precedente. Imposta environment variables, quindi 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'indirizzo email del account di servizio IAM che vuoi impostare nello spazio dei nomi.
  3. Imposta il account di servizio dello spazio dei nomi. Imposta le environment variables, quindi esegui il seguente 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"}'
    

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 a nome del account di servizio, fai clic su Menu > Modifica.
  4. Segui i passaggi per configurare un service account dello spazio dei nomi.

API REST

Per modificare un account di servizio dello spazio dei nomi:

  1. Imposta le environment variables, quindi 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"}'
    

    Sostituisci quanto segue:

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

Eliminare 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 del 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 le environment variables, quindi esegui il comando seguente:

    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.

Ottenere il account di servizio dello spazio dei nomi

Console

Per ottenere le informazioni del account di servizio per lo spazio dei nomi:

  1. Nella Google Cloud console, 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 del account di servizio dello spazio dei nomi:

  1. Imposta le environment variables, quindi esegui il comando seguente:

    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 ha esito positivo, riceverai l'indirizzo email del account di servizio nella seguente risposta:

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

Passaggi successivi