Richiesta dell'autorizzazione per collegare gli account di servizio alle risorse

Quando crei determinate risorse Google Cloud, puoi scegliere di associare un account di servizio. L'account di servizio associato funge da identità di qualsiasi job in esecuzione sulla risorsa, consentendo l'autenticazione dei job nelle API Google Cloud.

Per la maggior parte dei servizi Google Cloud, gli utenti devono avere l'autorizzazione per impersonare un account di servizio al fine di collegarlo a una risorsa. Ciò significa che l'utente deve disporre dell'autorizzazione iam.serviceAccounts.actAs per l'account di servizio.

Tuttavia, in passato, alcuni servizi consentivano agli utenti di collegare account di servizio alle risorse anche se gli utenti non avevano l'autorizzazione a impersonare gli account di servizio. Questa configurazione potrebbe aver consentito agli utenti di questi servizi di ottenere autorizzazioni elevate e non ovvie.

La seguente tabella elenca i servizi che avevano questa configurazione, insieme al comportamento precedente di ciascun servizio:

Servizio Comportamento precedente
App Engine Gli utenti potevano eseguire il deployment delle applicazioni App Engine, che utilizzano l'identità dell'account di servizio predefinito di App Engine, anche se non avevano l'autorizzazione per impersonare l'account di servizio predefinito di App Engine.
Cloud Composer Gli utenti possono collegare qualsiasi account di servizio nel progetto a un ambiente Cloud Composer, anche se non disponevano dell'autorizzazione per impersonare nessuno degli account di servizio del progetto.
  • Cloud Data Fusion
  • Dataflow
  • Dataproc
Gli utenti potevano collegare l'account di servizio predefinito di Compute Engine alle risorse, anche se non avevano l'autorizzazione per impersonare l'account di servizio predefinito.

Ora è necessario che questi servizi controllino che gli utenti abbiano l'autorizzazione per impersonare gli account di servizio quando colleghino gli account di servizio alle risorse. Tuttavia, il comportamento precedente esiste ancora per i seguenti tipi di organizzazioni:

  • Organizzazioni con utenti autorizzati a eseguire il deployment di applicazioni App Engine, ma non a impersonare l'account di servizio predefinito di App Engine.
  • Organizzazioni i cui utenti sono autorizzati a eseguire il deployment di ambienti Cloud Composer, ma non dispongono dell'autorizzazione per impersonare alcun account di servizio.
  • Organizzazioni i cui utenti sono autorizzati a eseguire il deployment di risorse Cloud Data Fusion, Dataflow o Dataproc, ma non dispongono dell'autorizzazione necessaria per impersonare l'account di servizio predefinito di Compute Engine.

Se la tua organizzazione è ancora interessata dal comportamento precedente, riceverai una comunicazione che spiega come disattivarla manualmente. Per istruzioni dettagliate, puoi anche consultare le sezioni seguenti.

Protezione di App Engine

Per disabilitare manualmente il comportamento precedente per App Engine, assicurati che gli utenti dispongano dell'autorizzazione per impersonare l'account di servizio App Engine. Quindi, abilita un vincolo del criterio dell'organizzazione per applicare i controlli delle autorizzazioni dell'account di servizio durante il deployment di applicazioni che utilizzano l'identità dell'account di servizio predefinito di App Engine.

  1. (Facoltativo) Utilizza i consigli sui ruoli per eseguire in modo sicuro il downgrade delle autorizzazioni per l'account di servizio predefinito di App Engine.

    All'account di servizio predefinito di App Engine viene concesso automaticamente il ruolo Editor altamente permissivo (roles/editor). Tuttavia, sconsigliamo di utilizzare un ruolo così permissivo nelle configurazioni di produzione.

  2. Assicurati che tutti gli utenti che eseguono il deployment delle applicazioni abbiano la possibilità di rappresentare l'account di servizio predefinito di App Engine.

    Per offrire questa possibilità, concedi agli utenti un ruolo che includa l'autorizzazione iam.serviceAccounts.actAs, ad esempio il ruolo Utente account di servizio (roles/iam.serviceAccountUser). Puoi concedere questo ruolo nel progetto o nell'account di servizio predefinito di App Engine. Per le istruzioni, vedi Gestione dell'impersonificazione degli account di servizio.

  3. Abilita il vincolo dei criteri dell'organizzazione constraints/appengine.enforceServiceAccountActAsCheck per applicare i controlli delle autorizzazioni degli account di servizio durante il deployment delle applicazioni.

  4. (Facoltativo) Utilizza l'applicazione forzata del criterio dell'organizzazione booleano per confermare che il vincolo del criterio dell'organizzazione sia applicato a tutti i progetti.

Protezione di Cloud Composer

Per disabilitare manualmente il comportamento legacy per Cloud Composer, assicurati che gli utenti dispongano dell'autorizzazione per impersonare gli account di servizio che collegano ai nuovi ambienti. Quindi, abilita un vincolo del criterio dell'organizzazione per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio agli ambienti.

  1. Identifica tutti gli account di servizio associati agli ambienti Cloud Composer:

    1. Nella console Google Cloud, vai alla pagina Ambienti di Composer.

      Vai alla pagina Ambienti di Composer

    2. Fai clic sul nome di un ambiente.

    3. Nella scheda Configurazione dell'ambiente, trova il campo Account di servizio e registra il nome dell'account di servizio.

    4. Ripeti i passaggi precedenti per tutti gli ambienti Cloud Composer nel tuo progetto.

  2. Conferma che questi account di servizio seguano il principio del privilegio minimo:

  3. Assicurati che tutti gli utenti che eseguono il deployment o gestiscono gli ambienti Cloud Composer abbiano la possibilità di impersonare gli account di servizio utilizzati dagli ambienti.

    Per offrire questa possibilità, concedi agli utenti un ruolo che includa l'autorizzazione iam.serviceAccounts.actAs, ad esempio il ruolo Utente account di servizio (roles/iam.serviceAccountUser). Puoi concedere questo ruolo nel progetto o in un singolo account di servizio. Per le istruzioni, vedi Gestione dell'impersonificazione degli account di servizio.

  4. Abilita il vincolo dei criteri dell'organizzazione constraints/composer.enforceServiceAccountActAsCheck per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio agli ambienti.

  5. (Facoltativo) Utilizza l'applicazione forzata del criterio dell'organizzazione booleano per confermare che il vincolo del criterio dell'organizzazione sia applicato a tutti i progetti.

Protezione di Dataproc, Dataflow e Cloud Data Fusion

Per disabilitare manualmente il comportamento legacy per Dataproc, Dataflow e Cloud Data Fusion, assicurati che gli utenti abbiano l'autorizzazione a impersonare gli account di servizio che collegano alle nuove risorse. Poi abilita i vincoli dei criteri dell'organizzazione per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio alle risorse.

Segui le istruzioni per il tipo di account di servizio che vuoi collegare alle nuove risorse:

  • Se vuoi interrompere il collegamento dell'account di servizio predefinito di Compute Engine alle nuove risorse, segui questi passaggi:

    1. Crea un nuovo account di servizio e concedi all'account di servizio i ruoli necessari per eseguire i job nella risorsa. Assicurati di seguire il principio del privilegio minimo.

      Per conoscere i ruoli necessari a un account di servizio per eseguire i job sulle risorse Dataproc, Dataflow e Cloud Data Fusion, consulta quanto segue:

    2. Consenti a tutti gli utenti che eseguono il deployment di queste risorse di impersonare il nuovo account di servizio.

      Per offrire questa possibilità, concedi agli utenti un ruolo che includa l'autorizzazione iam.serviceAccounts.actAs, ad esempio il ruolo Utente account di servizio (roles/iam.serviceAccountUser). Puoi concedere questo ruolo nel progetto o nell'account di servizio. Per le istruzioni, vedi Gestione dell'impersonificazione degli account di servizio.

    3. Abilita i seguenti limiti dei criteri dell'organizzazione per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio alle risorse:

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck

      Il vincolo del criterio dell'organizzazione constraints/dataproc.enforceComputeDefaultServiceAccountCheck applica anche controlli delle autorizzazioni per Cloud Data Fusion.

    4. (Facoltativo) Utilizza l'applicazione booleana dei criteri dell'organizzazione per confermare che i vincoli dei criteri dell'organizzazione siano applicati a tutti i progetti.

    5. Quando esegui il deployment di nuove risorse, utilizza il nuovo account di servizio anziché l'account di servizio predefinito di Compute Engine.

  • Se vuoi continuare a collegare l'account di servizio predefinito di Compute Engine alle nuove risorse, segui questi passaggi:

    1. (Facoltativo) Utilizza i consigli sui ruoli per eseguire in modo sicuro il downgrade delle autorizzazioni per l'account di servizio predefinito di Compute Engine.

      All'account di servizio predefinito di Compute Engine viene concesso automaticamente il ruolo Editor altamente permissivo (roles/editor). Tuttavia, sconsigliamo di utilizzare un ruolo così permissivo nelle configurazioni di produzione.

    2. Assicurati che tutti gli utenti che eseguono il deployment di queste risorse abbiano la possibilità di impersonare l'account di servizio predefinito di Compute Engine.

      Per offrire questa possibilità, concedi agli utenti un ruolo che includa l'autorizzazione iam.serviceAccounts.actAs, ad esempio il ruolo Utente account di servizio (roles/iam.serviceAccountUser). Puoi concedere questo ruolo nel progetto o nell'account di servizio predefinito di Compute Engine. Per le istruzioni, vedi Gestione dell'impersonificazione degli account di servizio.

    3. Abilita i seguenti limiti dei criteri dell'organizzazione per applicare i controlli delle autorizzazioni degli account di servizio quando colleghi gli account di servizio alle risorse:

      • constraints/dataflow.enforceComputeDefaultServiceAccountCheck
      • constraints/dataproc.enforceComputeDefaultServiceAccountCheck
    4. (Facoltativo) Utilizza l'applicazione booleana dei criteri dell'organizzazione per confermare che i vincoli dei criteri dell'organizzazione siano applicati a tutti i progetti.