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

Questa pagina descrive come configurare un account di servizio 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 suddivisione dell'istanza. Qualsiasi applicazione o dato, qui definito come entity, possono esistere in modo indipendente in più spazi dei nomi. In una singola istanza, un singolo 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 risorse Google Cloud, gli spazi dei nomi in Cloud Data Fusion utilizzano il Agente di servizio API Cloud Data Fusion per impostazione predefinita.

Per un migliore isolamento dei dati, puoi associare un account IAM personalizzato (noto come account di servizio per spazio dei nomi) con ogni nello spazio dei nomi. L'account di servizio IAM personalizzato, che può essere in modo che sia diversa a seconda dello spazio dei nomi, Risorse Google Cloud tra gli spazi dei nomi per la progettazione della pipeline le operazioni in Cloud Data Fusion, come l'anteprima della pipeline, Wrangler della pipeline.

Prima di iniziare

  • Gli account di servizio per spazio dei nomi sono supportati nelle istanze abilitate per RBAC in Cloud Data Fusion 6.10.0 e versioni successive.
  • Gli account di servizio per spazio dei nomi sono utilizzati per controllare e gestire alle risorse Google Cloud.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per personalizzare gli account di servizio del namespace e concedere autorizzazioni utente all'interno di un namespace, chiedi all'amministratore di concederti il ruolo IAM Amministratore Cloud Data Fusion (roles/datafusion.admin) nell'istanza Cloud Data Fusion del progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

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

Gestisci 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 ai ruoli Cloud Data Fusion. 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 disponi di un account di servizio 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 Amministrazione di sistema > Configurazione > Spazi dei nomi.

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

  5. Fai clic sulla scheda Account di servizio, quindi su Aggiungi servizio. Google Cloud.

    Pulsante Aggiungi account di servizio.

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

    Per concedere il ruolo:

    1. Nel campo Account di servizio per la 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 dell'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 Workload Identity User (roles/iam.workloadIdentityUser).

    Per concedere il ruolo:

    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 del tenant. A individuarla, vai alla pagina Istanze e fai clic sull'istanza nome. L'ID viene visualizzato nella pagina Dettagli istanza.

        Vai a Istanze

      • SERVICE_ACCOUNT_PROJECT: il all'ID progetto Google Cloud in cui in cui trovi l'account di servizio.

    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à nello spazio dei nomi. Per ulteriori informazioni, consulta la sezione Dettagli di un del tuo spazio dei nomi.

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

  2. Convalida l'indirizzo email dell'account di servizio del nome di spazio dal passaggio precedente. Imposta 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/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 dell'account servizio IAM che vuoi impostare nello spazio dei nomi.
  3. Imposta l'account di servizio dello spazio dei nomi. Imposta 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"}'
    

Modifica 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 contenente il service account che vuoi modificare.
  3. Per modificare l'account di servizio, vai alla scheda Account di servizio. Accanto a il nome dell'account di servizio, fai clic su Menu > Modifica.
  4. Segui i passaggi per configurare un account di servizio del namespace.

API REST

Per modificare un account di servizio del namespace:

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

    Sostituisci quanto segue:

    • NAMESPACE_NAME: l'ID dello spazio dei nomi.
    • SERVICE_ACCOUNT_EMAIL: l'indirizzo email dell'account 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 sistema > Configurazione > Spazi dei nomi.
  2. Fai clic sullo spazio dei nomi contenente l'account di servizio che vuoi eliminare.
  3. Per rimuovere l'account di servizio, vai alla scheda Account di servizio. Avanti 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 la environment variables, quindi 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.

Recupera l'account di servizio dello spazio dei nomi

Console

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

  1. Nella console Google Cloud, vai alla pagina Istanze di Cloud Data Fusion e apri un'istanza nel server web di Cloud Data Fusion a riga di comando.

    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 dell'account di servizio.

API REST

Per ottenere il nome dell'account di servizio del namespace:

  1. Imposta environment variables, poi esegui il seguente 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 ha esito positivo, riceverai l'email dell'account di servizio nel seguente risposta:

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

Passaggi successivi